相关疑难解决方法(0)

声明的变量和定义的变量之间是否有区别

我尝试在控制台中一一写入以下行

let x = y //throws error "Uncaught ReferenceError: y is not defined"
console.log(x) //throws error "ReferenceError: x is not defined"
let x = 3; //gives error "Uncaught SyntaxError: Identifier 'x' has already been declared"
x = 3 //ReferenceError: x is not defined
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如何不能定义变量并同时对其进行声明。两者之间有什么区别。

javascript variables

6
推荐指数
1
解决办法
155
查看次数

当为它们分配抛出错误的函数的返回值时,导致"var"和"let"之间的不同行为的原因

请在下图中找到代码.1.将函数的返回值(实际上抛出一个错误)分配给使用关键字"let"声明的变量'withLet'.2.调用'withLet',发生错误:'withLet未定义'.3.尝试使用'let'断言'withLet',错误显示已经声明'withLet'.

但是'var'不存在悖论(请参见下图).

我很好奇是什么导致了这两种情况之间的不同行为.它是非常有线的,"未定义","已经声明"描述了一个相同的变量.

let withLet = (function() {throw 'error!'})()
var withVar = (function() {throw 'error!'})()
//VM2470:1 Uncaught error!
//(anonymous) @ VM2470:1
//(anonymous) @ VM2470:1
withLet
//VM2484:1 Uncaught ReferenceError: withLet is not defined at 
//<anonymous>:1:1
//(anonymous) @ VM2484:1
withVar
//undefined
let withLet = 'sth'
//VM2520:1 Uncaught SyntaxError: Identifier 'withLet' has already been 
//declared
//at <anonymous>:1:1
//(anonymous) @ VM2520:1
withVar = 'sth'
//"sth"
Run Code Online (Sandbox Code Playgroud)

截图:

javascript var let throw

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

标签 统计

javascript ×2

let ×1

throw ×1

var ×1

variables ×1