我已经玩ES6一段时间了,我注意到虽然声明的变量var按预期提升了......
console.log(typeof name); // undefined
var name = "John";
Run Code Online (Sandbox Code Playgroud)
... 用吊装声明let或const似乎有一些问题的变量:
console.log(typeof name); // ReferenceError
let name = "John";
Run Code Online (Sandbox Code Playgroud)
和
console.log(typeof name); // ReferenceError
const name = "John";
Run Code Online (Sandbox Code Playgroud)
这是否意味着变量声明let或未声明const?这是怎么回事?这个问题let和const这个问题有什么区别吗?
我正在学习Javascript并在Chrome浏览器控制台上运行一些小实验.我遇到了如下问题.
let obj = {a:1, b:2}
let obj2 = {...obj, [b]:8}
Run Code Online (Sandbox Code Playgroud)
未捕获的ReferenceError:b未定义
由于我还没有定义,所以预计这个未被捕获的引用错误b.
然后我试过obj2 = 3,我收到了一个错误
未捕获的ReferenceError:未定义obj2
当我尝试时let obj2 = 3,我收到了一个错误
未捕获的SyntaxError:已声明标识符'obj2'
我真的很困惑.是否obj2已声明,为什么会出现此类错误?