为了账号安全,请及时绑定邮箱和手机立即绑定

今天在工作中碰到一个JS中 for ...in 的问题

今天在工作中碰到一个JS中 for ...in 的问题

PIPIONE 2018-09-08 19:14:27
var s = [     {name: 'arron'},     {name: 'arron'} ]var t = {    name: 'arron',    age: 23}for( x in s ) {    console.log(typeof x) }for( x in t ) {    console.log(typeof x) }// 结果输出的类型都是string.不是很理解这个类型为何是string,之前一直以为是Number类型的,特别是数组遍历的时候,求教
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

第一,你在遍历数组使用的是in,遍历出的是数据的索引,1,2,而且,JavaScript中规定,数组和对象的键名都是字符串,因此你遍历出的索引1,2都是字符串,也就是"1","2",所以输出的类型都是string。

第二,你在遍历对象也是一样,遍历出的是对象的属性名,属性名也是字符串,所以输出的类型也是string,应该typeof t[x]才是你想要的结果。

第三,数组遍历推荐使用普通的for
因为数组是内建对象,in操作符会遍历数组的其他属性,如

var arr = [1,2,3];
arr.a = "str";for(i in arr){  console.log(arr[i]);    // 1,2,3,str}


查看完整回答
反对 回复 2018-10-29
  • 1 回答
  • 0 关注
  • 506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号