我知道变量声明是一个语句(而不是表达式,因为它无法求值)
let a
我知道分配也是语句和表达式,因为可以在JS中对其求值)
a= 2
我还理解,当我在同一行中声明并赋值时,由于无法对其进行评估,因此它被视为语句而非表达式:
let a = 5
我的问题是:
如果这两行(声明+赋值)在同一行中发生,为什么将其视为声明?
这里需要一个表达式作为参数:
console.log(let a=3)
> Uncaught SyntaxError: missing ) after argument list
但是赋值是一个表达式,因为它确实可以作为参数传递:
console.log(a=3)
3