gpt4 book ai didi

JavaScript block 作用域与 let

转载 作者:行者123 更新时间:2023-12-02 16:15:06 24 4
gpt4 key购买 nike

我修改了MDN website中的原始脚本下面给出。

  1. var 的类型是什么?仅在将值分配给变量后才分配类型。

  2. var b = 1 是否会覆盖之前的语句 var b = 10?或者只是变量 b?

  3. let 是非标准语言功能吗?我读过here ECMAScript 6 支持它。

var a = 5;
var b = 10;

if (a === 5) {
let a = 4; // The scope is inside the if-block
var b = 1; // The scope is inside the function

alert(a); // 4
alert(b); // 1
}

alert(a); // 5
alert(b); // 1

最佳答案

What is the type of var?

var 没有类型。这是keyword用于声明变量。

Is the type assigned only after a value is assigned to a variable?

当你声明一个变量但没有给它赋值时,它的值将是 undefined ,其类型为 Undefined .

Does var b = 1 overwrite the previous statement var b = 10? Or just the variable b?

变量语句被提升到顶部。这意味着它们是等效的:

// ...
var b = 10;
if(cond) var b = 1;
var b;
// ...
b = 10;
if(cond) b = 1;

因此,由于 b 已经声明,var b = 1 将等同于 b = 1

Is let a non-standard language feature? I read here that it is supported in ECMAScript 6.

let 是在 JavaScript 1.7 中引入的,并且当时不属于任何 ECMA-262 标准的一部分。

现在 ECMAScript 6 已经对其进行了标准化(与 JS 1.7 的方式略有不同)。但是,请注意 ECMAScript 6 仍然是一个草案。

关于JavaScript block 作用域与 let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com