let和var区别

2023-06-01 0 934

let和var区别

在JavaScript中,letvar 都是新闻稿表达式的URL,但它有许多差别。

表达式返回值相同

采用 var 新闻稿的表达式是表达式级返回值,而采用 let 新闻稿的表达式是块级返回值。

var 新闻稿表达式为例:

function test() { var x = 1; if (true) { var x = 2; console.log(x); // 输入 2 } console.log(x); // 输入 2 }

在下面的范例中,采用 var 新闻稿的表达式 x 在表达式外部的任何人地方性都是由此可见的。在 if 句子块中表述的表达式 x 与表达式外部表述的表达式 x 十分,在控制面板中输入了2。

再上看呵呵 let 的范例:

function test() { let x = 1; if (true) { let x = 2; console.log(x); // 输入 2 } console.log(x); // 输入 1 }

由于采用了 let 新闻稿表达式, xif句子块中和表达式外部都是相同的表达式,这两个表达式的返回值相同。在控制台上输入了2和1。

表达式新闻稿提升相同

JavaScript 中的表达式提升是指表达式可以在新闻稿之前采用。

采用 var 新闻稿的表达式会被提升到表达式开头的位置,所以在表达式外部的任何人地方性都可以采用该表达式。

采用 let新闻稿的表达式不会被提升,所以在新闻稿之前采用该表达式会导致ReferenceError 错误。

例如:

console.log(testVar); // 输入 undefined var testVar = 1; console.log(testLet); // Uncaught ReferenceError: testLet is not defined let testLet = 1;

由于表达式 testVar 会被提升, console.log 句子可以执行,但其值为 undefined。而采用 let 新闻稿的表达式 testLet 在新闻稿之前采用会导致 ReferenceError 错误。

同一返回值内同名表达式处理

在同一返回值内采用 varlet 新闻稿同名表达式会产生相同的结果。

采用 var 新闻稿同名表达式会覆盖之前新闻稿的同名表达式,说明表达式可以被重复新闻稿和赋值,而采用 let 新闻稿的同名表达式会被视为语法错误。

例如:

var x = “Hello”; var x = “World”; // 不会报错 console.log(x); // 输入 “World” let y = “Hello”; let y = “World”; // 会报错:Uncaught SyntaxError: Identifier y has already been declared console.log(y);

由于表达式 x 是采用 var 新闻稿的,重复新闻稿会被视为合法的,因此这段代码能够正常执行。而采用 let新闻稿表达式y 时,在同一返回值内再次新闻稿同名表达式会被视为错误。

总之,采用 letvar 新闻稿表达式的差异在于:表达式的返回值,表达式新闻稿提升和同一返回值内同名表达式的处理方式相同。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务