相关疑难解决方法(0)

使用"let"和"var"在JavaScript中声明变量有什么区别?

ECMAScript 6介绍了该let声明.我听说它被描述为"本地"变量,但我仍然不太确定它与var关键字的行为有何不同.

有什么区别?何时应该let使用var

javascript scope var let ecmascript-6

4199
推荐指数
28
解决办法
111万
查看次数

让let语句在全局对象上创建属性吗?

在JavaScript中,var声明在全局对象上创建属性:

var x = 15;
console.log(window.x); // logs 15 in browser
console.log(global.x); // logs 15 in Node.js
Run Code Online (Sandbox Code Playgroud)

ES6引入let了具有块范围的声明的词法作用域.

let x = 15;
{
   let x = 14;
}
console.log(x); // logs 15;
Run Code Online (Sandbox Code Playgroud)

但是,这些声明是否在全局对象上创建属性?

let x = 15;
// what is this supposed to log in the browser according to ES6?
console.log(window.x); // 15 in Firefox
console.log(global.x); // undefined in Node.js with flag
Run Code Online (Sandbox Code Playgroud)

javascript let ecmascript-6

41
推荐指数
3
解决办法
2863
查看次数

与全局'var'不同,javascript'let'全局变量不是'window'的属性

我过去常常检查是否var定义了全局:

if (window['myvar']==null) ...
Run Code Online (Sandbox Code Playgroud)

要么

if (window.myvar==null) ...
Run Code Online (Sandbox Code Playgroud)

它适用于 var myvar

现在我正在尝试切换到let,这不再起作用了.

var myvar='a';
console.log(window.myvar); // gives me a
let mylet='b';
console.log(window.mylet); // gives me undefined
Run Code Online (Sandbox Code Playgroud)

问题:一个全球性的let,没有任何的地方,如果有什么东西被像我可以定义我可以看看varwindow对象?

更普遍的:
var myvar='a'相当于window.myvar='a'
我听到人们说在全球范围内,let并且var/表现相同,但这不是我所看到的.

javascript var let

10
推荐指数
1
解决办法
7570
查看次数

是否可以删除使用const声明的变量?

特定

const localName = "local_name";
delete localName; // true
console.log(localName); // "local_name"
Run Code Online (Sandbox Code Playgroud)

是否可以删除使用声明的变量const

javascript

3
推荐指数
1
解决办法
1321
查看次数

标签 统计

javascript ×4

let ×3

ecmascript-6 ×2

var ×2

scope ×1