ecmascript5和6的區別:1、ecmascript6中新增加了區塊級作用域,而ecmascript5中則沒有;2、ecmascript6可以設定預設函數參數,而ecmascript5則不可以設定;3、ecmascript6中可以使用箭頭函數,而ecmascript5中沒有箭頭函數。
本教學操作環境:windows10系統、ECMAScript 6.0&&ECMAScript 5.0版本、Dell G3電腦。
ECMAScripts5,即ES5,是ECMAScripts的第五次修訂,於2009年完成標準化ECMAScripts6,即ES6,是ECMAScripts的第六次修訂,於2025年完成,也稱ES2015ES6是繼ES5之後的一次改進,相對於ES5更加簡潔,提高了開發效率ES6新增的一些特性:
1)let聲明變數和const聲明常數,兩個都有區塊級作用域ES5中是沒有區塊級作用域的,且var有變數提升,在let中,使用的變數一定要進行宣告
2)箭頭函數ES6中的函數定義不再使用關鍵字function(),而是利用了()=>來進行定義
3)模板字串模板字串是增強版的字串,用反引號(`)標識,可以當作普通字串使用,也可以用來定義多行字串
4)解構賦值ES6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值
5 )... 展開運算子可以將陣列或物件裡面的值展開;也可以將多個值收集為一個變數
#具體如下:
##新增箭頭函數
簡化了寫法。箭頭函數適用於函數體只有一行的情況;當有多行時,可用普通函數增加可讀性。少打程式碼,結構清晰明確了this。傳統JS的this是在運行的時候確定的,而不是在定義的時候確定的;而箭頭函數的this是在定義時就確定的,不能被改變,也不能被call,apply,bind這些方法修改。明確運行時候this指向誰,不用運行時判斷this指向註:箭頭函數沒有自己的this,他的this就是外層的this,指向上一個不是箭頭函數的函數的this。因為js的機制,所以指向的是一個非箭頭函數的函數的作用域。 箭頭函數與普通函數的差異區塊級作用域
ES6中的let指令,宣告變量,用法和var差不多,但是let是為JavaScript新增了區塊級作用域,ES5中是沒有區塊級作用域的,且var有變數提升的概念,但是在let中,使用的變數一定要進行宣告;const宣告常數ES6中變數的結構賦值,例如:var [a,b,c] = [0 ,1,2];類別繼承
ES6中不再像ES5一樣使用原型鏈實作繼承,而是引入Class這個概念,聽起來和Java中的物件導向程式設計的語法有些像,但是二者是不一樣的。擴展知識:
var、let、const的區別var聲明變數可以重複聲明,而let不可以重複聲明var是不受限於區塊級的,而let是受限於區塊級var會與window相映射(會掛一個屬性),而let不與window相映射
var可以在宣告的上面存取變量,而let有暫存死區,在聲明的上面存取變數會報錯const宣告之後必須賦值,否則會報錯const定義不可變的量,改變了就會報錯const和let一樣不會與window相映射、支援區塊級作用域、在宣告的上面存取變數會報錯【相關推薦:
以上是ecmascript5和6有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!