溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript與es6的區別有哪些

發布時間:2022-07-28 17:09:08 來源:億速云 閱讀:280 作者:iii 欄目:web開發

本文小編為大家詳細介紹“javascript與es6的區別有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“javascript與es6的區別有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

javascript與es6的區別:1、JavaScript一種動態類型、弱類型、基于原型的客戶端腳本語言,用來給HTML網頁增加動態功能,es6是JavaScript語言的下一代標準;2、es6是JavaScript的語言規范,JavaScript是es6的一種實現。

本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript與es6的區別

JavaScript是什么

JavaScript一種動態類型、弱類型、基于原型的客戶端腳本語言,用來給HTML網頁增加動態功能

動態:在運行時確定數據類型。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。

弱類:計算時可以不同類型之間對使用者透明地隱式轉換,即使類型不正確,也能通過隱式轉換來得到正確的類型。

原型:新對象繼承對象(作為模版),將自身的屬性共享給新對象,模版對象稱為原型。這樣新對象實例化后不但可以享有自己創建時和運行時定義的屬性,而且可以享有原型對象的屬性。

ES6是什么

ECMAScript 6.0(以下簡稱ES6)是JavaScript語言(現在是遵循ES5標準)的下一代標準,已經在2015年6月正式發布了。它的目標,是使得JavaScript語言可以用來編寫復雜的大型應用程序,成為企業級開發語言。

ES6的新特性

  • ES6中的let命令,聲明變量,用法和var差不多,但是let是為JavaScript新增了塊級作用域,ES5中是沒有塊級作用域的,并且var有變量提升的概念,但是在let中,使用的變量一定要進行聲明。

  • ES6中變量的解構賦值,比如:var [a,b,c] = [0,1,2];

  • ES6中不再像ES5一樣使用原型鏈實現繼承,而是引入Class這個概念,聽起來和Java中的面向對象編程的語法有些像,但是二者是不一樣的。

  • ES6中的函數定義也不再使用關鍵字function,而是利用了=>來進行定義;

  • ES6中可以設置默認函數參數,如function A(x,y=9){};

ECMAScript和JavaScript的關系

由于JavaScript的創造者Netscae公司的版權問題,ECMAScript不能叫Javascript??傊?,ECMAScript和JavaScript的關系是,前者是后者的規格(語言規范),后者是前者的一種實現。

擴展知識

ES6特性如下:

1.塊級作用域 關鍵字let, 常量const

2.對象字面量的屬性賦值簡寫(property value shorthand)

var obj = {
    // __proto__
    __proto__: theProtoObj,
    // Shorthand for ‘handler: handler’
    handler,
    // Method definitions
    toString() {
    // Super calls
    return "d " + super.toString();
    },
    // Computed (dynamic) property names
    [ 'prop_' + (() => 42)() ]: 42
};

3.賦值解構

let singer = { first: "Bob", last: "Dylan" };
let { first: f, last: l } = singer; // 相當于 f = "Bob", l = "Dylan"
let [all, year, month, day] =  /^(dddd)-(dd)-(dd)$/.exec("2015-10-25");
let [x, y] = [1, 2, 3]; // x = 1, y = 2

4.函數參數 - 默認值、參數打包、 數組展開(Default 、Rest 、Spread)

//Default
function findArtist(name='lu', age='26') {
    ...
}
//Rest
function f(x, ...y) {
  // y is an Array
  return x * y.length;
}
f(3, "hello", true) == 6
//Spread
function f(x, y, z) {
  return x + y + z;
}
// Pass each elem of array as argument
f(...[1,2,3]) == 6

讀到這里,這篇“javascript與es6的區別有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女