选择题1556/1603输出是什么?

1(() => { 2 let x = (y = 10); 3})(); 4 5console.log(typeof x); 6console.log(typeof y);
难度:
2021-07-02 创建

本题为"单选题"

参考答案:

正确选项:A:"undefined", "number"

let x = y = 10; 是下面这个表达式的缩写:

1y = 10; 2let x = y;

我们设定y等于10时,我们实际上增加了一个属性y给全局对象(浏览器里的window, Nodejs里的global)。在浏览器中, window.y等于10. 然后我们声明了变量x等于y,也是10.但变量是使用 let声明的,它只作用于 块级作用域, 仅在声明它的块中有效;就是案例中的立即调用表达式(IIFE)。使用typeof操作符时, 操作值 x没有被定义:因为我们在x声明块的外部,无法调用它。这就意味着x未定义。未分配或是未声明的变量类型为"undefined". console.log(typeof x)返回"undefined". 而我们创建了全局变量y,并且设定y等于10.这个值在我们的代码各处都访问的到。 y已经被定义了,而且有一个"number"类型的值。 console.log(typeof y)返回"number".

最近更新时间:2021-07-03

赞赏支持

题库维护不易,您的支持就是我们最大的动力!