Skip to content

[js] 第299天 根据下面代码:说出执行结果,并解释为何是会是这样的结果?[代码] #1878

Open
@haizhilin2013

Description

@haizhilin2013

第299天 根据下面代码:说出执行结果,并解释为何是会是这样的结果?[代码]

作者:AnsonZnl

我也要出题

var str = 'abc';
console.log(str[1]);

var num = 123;
console.log(num[1]);

Activity

NieShiyi

NieShiyi commented on Feb 9, 2020

@NieShiyi

1.输出b,因为String类型是可迭代类型,可以像数组一样通过for of(es6定义)进行迭代。所以可以通过str[1]获取
2.输出undefined,Number类型不是可迭代类型,num[1],应该是会去找是否定义了num这个数组,发现并没有,所以num[1]是undefined。我也疑惑,为什么不报错?

meteor199

meteor199 commented on Feb 9, 2020

@meteor199

num[1] === num['1']。对象中不存在的属性都是undefined。number是个数字,但是也存在这个特性

ZhaoHongzcyh

ZhaoHongzcyh commented on Feb 9, 2020

@ZhaoHongzcyh

1:输出b
2:输出undefined,楼上已经有答案了,Number类型是不可迭代的类型,这点可以从 Number类型的数据是不存在length这个方法验证,既然length都没有,那答案就显而易见了。

xiaoqiangz

xiaoqiangz commented on Sep 1, 2022

@xiaoqiangz

主要是第2个 输出是 undefined,因为Number类型没有length属性,也不是可迭代类型,所以 Number[x]找不到该属性 即undefined。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@xiaoqiangz@meteor199@ZhaoHongzcyh@NieShiyi

        Issue actions

          [js] 第299天 根据下面代码:说出执行结果,并解释为何是会是这样的结果?[代码] · Issue #1878 · haizlin/fe-interview