let变量是否等于var变量?

时间:2015-09-24 14:00:02

标签: javascript ecmascript-6

如果我有类似的话:

let x = 20;
var z = 20;

x === z

2 个答案:

答案 0 :(得分:6)

===不会比较变量 - 它会比较值。假设两个变量都保持相同的值(20),它们将“相等”。

对于等式how those variables were declared并不重要,只是它们都在范围内并且在评估===操作时分配了该值。您的示例代码段就是这种情况。

答案 1 :(得分:3)

尝试一下,亲眼看看......

(如果没有显示任何内容,因为你是using a browser that doesn't support let。)

"use strict";

let x = 20;
var z = 20;

document.write(x === z);

阅读this answer,了解有关letvar之间差异的详细信息:

  

区别在于范围界定。 var的范围限定为最近的功能块(如果在功能块之外,则为全局功能块),let的范围限定为最近的封闭块(如果在任何块之外,则为全局),可以小于a {}功能块。