您好,登錄后才能下訂單哦!
這篇文章主要介紹了ecmascript5和6有哪些區別的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇ecmascript5和6有哪些區別文章都會有所收獲,下面我們一起來看看吧。
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的機制,所以指向的是一個非箭頭函數的函數的作用域。
箭頭函數與普通函數的區別
普通function的聲明在變量提升中是最高的,箭頭函數沒有函數提升
箭頭函數沒有this,函數體內部的this對象就是定義的時候所在的對象而不是使用時所在的對象
箭頭函數沒有arguments對象,該對象在函數體內不存在,如果要用,可以使用rest參數
箭頭函數不能作為構造函數,不能被new,沒有property
call和apply方法只有參數,沒有作用域
不可以使用yield命令,因此箭頭函數不能做Generator函數
塊級作用域
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有哪些區別”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“ecmascript5和6有哪些區別”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。