让他们一同变为更快的后端,那时给他们撷取两个复试必问。let const var二者的差别。那个也是两个较为最高级的难题,答不出大体上百分百就挂了哈!
es5这时候多于var表述表达式,多于自上而下返回值和函数返回值。
es6追加 let和const,存有块级返回值
let:块级返回值
var:自上而下返回值
const:经常表述自变量 也是块级返回值
let const表述表达式不存有表达式会员费,var存有新闻稿提早。
let 和const表述表达式要先表述再采用,不然会收起。
const表述表达式无法间接修正表达式,如:
const a =1;
a=2
VM194:2 Uncaught TypeError: Assignment to constant variable.
如上图,间接收起,let也一样收起。
那么如果const表述为表达式,可以修正表达式的属性名吗?
const obj = {a:1,b:2}
obj.a=”hello”
此时obj1的值就为:
{a:”hello”,b:2}
所以,const表述为对象可以修正属性值,但是无法修正其本身。
let和const无法重复表述。
let a =1;
let a=2
会报如下错误:
VM315:3 Uncaught SyntaxError: Identifier a has already been declared
var可以重复表述。
var a=1;
var a=2;
最后a的值就为2。
如下情况是可以的:
let bh=1;
{
let bh=2;
conaole.log(bh) //2
}
上面虽然重复,但是没有再两个块级返回值。块级返回值主要就是看{}。{}就是一块的标志。
欢迎他们讨论,如有难题,欢迎纠正。