为什么我可以将某些东西定义为 'let'?
Why can I define something as 'let'?
我正在尝试使用 JS 并开玩笑地尝试重新定义 let
关键字,结果令人惊讶的是它起作用了。
它不适用于 while
、const
、var
等任何其他关键字。
JS 可以正常工作的原因是什么?
let = 'Weird'
console.log(let)
console.log(typeof let)
console.log(let.length)
let = ['Weird','Very Weird']
console.log(let)
console.log(typeof let)
console.log(let.length)
let = 80
console.log(let)
console.log(typeof let)
console.log(let/80)
还有一件奇怪的事情:
var let = 'Even More Weird'
console.log(let)
let = 50
console.log(let)
let = (x)=>x**2
console.log(let(3))
如果您不指定严格模式,您可以重新声明 let :
"use strict"; // firt statement on the script
...
它还取决于执行代码的引擎,在 firefox(spiderMonkey 引擎)引擎中你会看到一个错误:“Uncaught SyntaxError: redeclaration of let i”,但是在V8中在chrome中如果你不指定严格模式,它可以正常工作
我正在尝试使用 JS 并开玩笑地尝试重新定义 let
关键字,结果令人惊讶的是它起作用了。
它不适用于 while
、const
、var
等任何其他关键字。
JS 可以正常工作的原因是什么?
let = 'Weird'
console.log(let)
console.log(typeof let)
console.log(let.length)
let = ['Weird','Very Weird']
console.log(let)
console.log(typeof let)
console.log(let.length)
let = 80
console.log(let)
console.log(typeof let)
console.log(let/80)
还有一件奇怪的事情:
var let = 'Even More Weird'
console.log(let)
let = 50
console.log(let)
let = (x)=>x**2
console.log(let(3))
如果您不指定严格模式,您可以重新声明 let :
"use strict"; // firt statement on the script
...
它还取决于执行代码的引擎,在 firefox(spiderMonkey 引擎)引擎中你会看到一个错误:“Uncaught SyntaxError: redeclaration of let i”,但是在V8中在chrome中如果你不指定严格模式,它可以正常工作