ES6--ES6新特性
1.ECMASript 相關(guān)介紹
?(1).什么是 ECMA
? ? ? ECMA中文名稱為歐洲計(jì)算機(jī)制造商協(xié)會(huì),專門制定相關(guān)的 標(biāo)準(zhǔn)1994 年后該組織改名為 Ecma 國際。
(2).什么是 ECMAScript
? ? ? ECMAScript標(biāo)準(zhǔn)化的腳本程序設(shè)計(jì)語言。
(3).為什么需要學(xué)習(xí)ES6
? ? ??ES6 的版本變動(dòng)內(nèi)容最多,具有里程碑意義
? ? ? ES6 加入許多新的語法特性,編程實(shí)現(xiàn)更簡單、高效
? ? ??ES6 是前端發(fā)展趨勢(shì),就業(yè)必備技能
2.ES6新特性--let關(guān)鍵字
? (1).函數(shù)的聲明
? let a;
? let b,c;
? let stu = '張三';
? let name ='李四',age = 12;
? (2).變量聲明的時(shí)候不能夠重復(fù)
? let name = '李四';
? let name = '張三';//這里開始報(bào)錯(cuò),但是再使用var的時(shí)候可以這樣聲明!
? (3).塊級(jí)作用域
? 這里的塊級(jí)作用域可以理解為只要變量在哪一個(gè){}內(nèi)部使用,就在那一個(gè){}內(nèi)才有效果。
? {
? ?let stuAge = 12;
? ?console.log("---" + stu);//正確輸出變量stu,因?yàn)樗窃賩}內(nèi)部
? }
? console.log("---" + stu);//報(bào)錯(cuò),不能夠正確輸出stu,因?yàn)椴辉趝}內(nèi)部
? (4).不存在變量的提升
? 變量提升的現(xiàn)象:可以先使用再說定義
? console.log("---" + test);//這里不報(bào)錯(cuò),可以先使用后定義,等價(jià)于先聲明了一個(gè)變量,然后賦予他一個(gè)初始化值
? var test = 'stu';
? //不存在變量提升就是說使用let聲明變量的時(shí)候,必須先聲明,在使用。
? //這一個(gè)符合我們其他的編程語言的特點(diǎn)。
? (5).不影響作用域鏈
? 作用域鏈:就是如果在一個(gè)較大的范圍之內(nèi)聲明,那么在這一個(gè)范圍之內(nèi)的人都可以取使用
? 這一個(gè)變量。
? {
? ? let stu = '李四';
? ? function fn(){
? ? ? console.log("---" +stu );
? ? }
? ? fn();
? }
? //以后聲明變量,我們就是用let關(guān)鍵字即可。
3.ES6新特性--const聲明常量
? (1).初始化必須賦值
? ?const stu = '張三';//正確?
? ?const name;//報(bào)錯(cuò)?
? (2).常量在定義的時(shí)候一般使用大寫(編程習(xí)慣)。
? (3).常量在賦值結(jié)束之后,就不能夠在修改了。
? ?const stu = '李四';
? ?stu = '張三';//報(bào)錯(cuò),常量不能夠修改
? (4).塊級(jí)作用域
? ?//-----這里操作同let關(guān)鍵字
? (5).使用const聲明的數(shù)組或者是對(duì)象,可以進(jìn)行修改,不算做對(duì)常量的修改,因?yàn)槠涞刂分禌]有改變。
? const arr = ["張三","李四","王五"]
? arr.push("王二麻子");//不報(bào)錯(cuò)