快速了解ES6

一、es6簡(jiǎn)介

????ECMAScript??是一個(gè)標(biāo)準(zhǔn)

????ECMAScript??5.1??es5??2011年發(fā)布

????es6就是es5的下一個(gè)版本

????????2015.6發(fā)布es6的第一版 es2015 ; 2016.6發(fā)布es6的第二個(gè)版本??es2016??; 2017發(fā)布es6的第三個(gè)版本??es2017

????????es6是涵蓋了es2015,es2016,es2017等版本

????????es6是嚴(yán)格版的es5

????????html5 和 xhtml1.0

????????"use strict";

嚴(yán)格模式下:

1.嚴(yán)格模式下不允許使用沒(méi)有經(jīng)過(guò)var聲明的變量

?? ??? ??? ?2.this指向的是undefined,因?yàn)闆](méi)有所有者,

?? ??? ??? ??? ??? ?好處:避免在函數(shù)內(nèi)容訪問(wèn)全局作用域

3.delete

?? ??? ??? ??? ?? ??1).delete不能刪除var定義的變量,2.沒(méi)有在嚴(yán)格模式下 delete可以刪除var聲明的變量或函數(shù)

?? ??? ??? ??? ??? ?2).沒(méi)有寫嚴(yán)格模式的時(shí)候形參名字一樣的時(shí)候打印形參會(huì)是后面的實(shí)參2.在嚴(yán)格模式下,參數(shù)名不能相同

?? ??? ??? ??? ?? ? 3).嚴(yán)格模式下,不接受系統(tǒng)保留字或者關(guān)鍵字

二。es6基礎(chǔ)語(yǔ)法

????1.let

????????es6新增的聲明變量的關(guān)鍵字

????????類似于var 但有所不同:

????????不同:

????????????1)作用域不同

????????????????var 聲明的變量可以在大括號(hào)外調(diào)用,let聲明的變量只能在代碼塊內(nèi)部有效

????????????????代碼塊:我們認(rèn)為一個(gè)大括號(hào)可以封閉一個(gè)代碼塊

????????????2)沒(méi)有變量提升(只提升聲明部分,不提升賦值部分)

????????????3)暫時(shí)性死區(qū)

????????????????使用let聲明之前的變量都是不可用的

????????????4)不允許重復(fù)聲明

????????????????let不允許在相同作用域內(nèi)部重復(fù)聲明同一個(gè)變量,所以也是不允許在函數(shù)中重新聲明參數(shù)

????2.塊級(jí)作用域

????????1)es5??只有兩個(gè)作用域??全局作用域和函數(shù)作用域,沒(méi)有塊級(jí)作用域

????????2)let??為js增加了塊級(jí)作用域

????????3)es6??允許塊級(jí)作用域嵌套

????????4)外層作用域無(wú)法讀取內(nèi)層作用域的變量

????????5)內(nèi)層作用域可以定義與外層作用域的同名變量

????????6)IIFE被拋棄

????????7)塊級(jí)作用域與函數(shù)聲明

????????????es5 只允許在頂層作用域或函數(shù)作用域中聲明函數(shù),不能在塊級(jí)作用域中聲明函數(shù)

????????????es6 引入了塊級(jí)作用域,明確允許在塊級(jí)作用域中聲明函數(shù)

????????????es6 中在塊級(jí)作用域中聲明函數(shù)相當(dāng)于使用了let,在塊級(jí)作用域以外是不能調(diào)用的

????????8)do??表達(dá)式(暫時(shí)不能用)

????????????塊級(jí)作用域是一個(gè)語(yǔ)句,將多個(gè)操作封裝在一起,沒(méi)有返回值

????????????在塊級(jí)作用域以外,沒(méi)有辦法得到內(nèi)部的值,除非是全局變量

????????????一個(gè)提案,使塊級(jí)作用域可以變?yōu)楸磉_(dá)式,也就是說(shuō)可以返回值,就是使用do

????3.const常量

????????1)const??聲明一個(gè)常量,一旦聲明,就不能被改變

????????2)常量一旦聲明,必須立即初始化,不能留到以后賦值

????????3)const本質(zhì)

????????????const本質(zhì)并不是值不讓改變而是變量指向的內(nèi)存地址不得改動(dòng),對(duì)于基本數(shù)據(jù)類型,值就保存在變量指向的內(nèi)存地址,所以不能被改變,但是對(duì)于對(duì)象類型,變量存儲(chǔ)的只是一個(gè)指針,const能保證這個(gè)指針不變,但是數(shù)據(jù)結(jié)構(gòu)是可以改變的

????????????如果const定義一個(gè)數(shù)組,數(shù)組本身是可寫的,但是要想將一個(gè)新的數(shù)組賦值給這個(gè)arr,就會(huì)報(bào)錯(cuò)

????4.頂層對(duì)象

????????es5中頂層對(duì)象是window,頂層對(duì)象的屬性與全局變量是等價(jià)的

????????es6規(guī)定,var 和??function命令是全局變量,依舊是頂層對(duì)象的屬性,但是let和const,class命令的全局變量不屬于頂層對(duì)象的屬性,也就是說(shuō)es6開始,全局變量逐漸與頂層對(duì)象的屬性脫鉤

??????es6??兼容瀏覽器

??????1)允許塊級(jí)作用域聲明函數(shù)

??????2)函數(shù)聲明類似于var,會(huì)將函數(shù)聲明提升到全局作用域或函數(shù)作用域的頭部

??????3)函數(shù)聲明會(huì)提升到塊級(jí)作用域的頭部

??????這三條規(guī)則在瀏覽器的es6環(huán)境下使用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • let 和 const 命令 let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 gl...
    安小明閱讀 1,039評(píng)論 0 0
  • let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 global 對(duì)象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice閱讀 1,692評(píng)論 0 2
  • let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 global 對(duì)象 let 命令 基本用法 ES6 新...
    卞卞村長(zhǎng)L閱讀 680評(píng)論 0 0
  • 本文屬個(gè)人筆記,不做詳解,僅供參考! let命令 基本用法 ES6 新增了let命令,用來(lái)聲明變量。它的用法類似于...
    R_yan閱讀 29,295評(píng)論 6 18
  • 南京鄉(xiāng)土樹種有四十多種,大規(guī)模作為行道樹樹種的,包括法國(guó)梧桐、櫸樹、榆樹、樸樹、女貞、銀杏、雪松、欒樹、水杉等10...
    天行健志強(qiáng)閱讀 663評(píng)論 1 1

友情鏈接更多精彩內(nèi)容