fe-interview
fe-interview copied to clipboard
[js] 第299天 根据下面代码:说出执行结果,并解释为何是会是这样的结果?[代码]
第299天 根据下面代码:说出执行结果,并解释为何是会是这样的结果?[代码]
作者:AnsonZnl
var str = 'abc';
console.log(str[1]);
var num = 123;
console.log(num[1]);
1.输出b,因为String类型是可迭代类型,可以像数组一样通过for of(es6定义)进行迭代。所以可以通过str[1]获取 2.输出undefined,Number类型不是可迭代类型,num[1],应该是会去找是否定义了num这个数组,发现并没有,所以num[1]是undefined。我也疑惑,为什么不报错?
num[1] === num['1']。对象中不存在的属性都是undefined。number是个数字,但是也存在这个特性
1:输出b 2:输出undefined,楼上已经有答案了,Number类型是不可迭代的类型,这点可以从 Number类型的数据是不存在length这个方法验证,既然length都没有,那答案就显而易见了。
主要是第2个 输出是 undefined,因为Number类型没有length属性,也不是可迭代类型,所以 Number[x]找不到该属性 即undefined。