javascript與es6的區(qū)別:1、JavaScript一種動態(tài)類型、弱類型、基于原型的客戶端腳本語言,用來給HTML網頁增加動態(tài)功能,es6是JavaScript語言的下一代標準;2、es6是JavaScript的語言規(guī)范,JavaScript是es6的一種實現。
本教程操作環(huán)境:windows10系統、javascript1.8.5版、Dell G3電腦。
javascript與es6的區(qū)別是什么
JavaScript是什么
JavaScript一種動態(tài)類型、弱類型、基于原型的客戶端腳本語言,用來給HTML網頁增加動態(tài)功能
動態(tài):在運行時確定數據類型。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。
弱類:計算時可以不同類型之間對使用者透明地隱式轉換,即使類型不正確,也能通過隱式轉換來得到正確的類型。
原型:新對象繼承對象(作為模版),將自身的屬性共享給新對象,模版對象稱為原型。這樣新對象實例化后不但可以享有自己創(chuàng)建時和運行時定義的屬性,而且可以享有原型對象的屬性。
ES6是什么
ECMAScript 6.0(以下簡稱ES6)是JavaScript語言(現在是遵循ES5標準)的下一代標準,已經在2015年6月正式發(fā)布了。它的目標,是使得JavaScript語言可以用來編寫復雜的大型應用程序,成為企業(yè)級開發(fā)語言。
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的創(chuàng)造者Netscae公司的版權問題,ECMAScript不能叫Javascript??傊?,ECMAScript和JavaScript的關系是,前者是后者的規(guī)格(語言規(guī)范),后者是前者的一種實現。
擴展知識
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
【