函式預設引數:
在es5中,我們給函式傳引數,然後在函式體內設定預設值,如下面這種方式。
而在es6中,我們使用新的預設值寫法:function a(num, callback)
callback(num * num)
}a() //es5: 49,不傳參輸出預設值
使用es6的預設值寫法可以讓函式體內部的**更加簡潔優雅function a(num = 6, callback = function (data) )
a() //es6: 36, 不傳參輸出預設值
塊級函式
嚴格模式下:在es6中,你可以在塊級作用域內宣告函式,該函式的作用域只限於當前塊,不能在塊的外部訪問。
非嚴格模式:即使在es6中,非嚴格模式下的塊級函式,它的作用域也會被提公升到父級函式的頂部。建議盡量使用嚴格模式。"use strict";
if(true)
}
箭頭函式(=>)
箭頭函式提供了一種更加簡潔的函式書寫方式;當箭頭函式沒有引數或者有多個引數,要用 () 括起來。const arr = [5, 10]
const s = arr.reduce((sum, item) => sum + item)
console.log(s) // 15
當箭頭函式函式體有多行語句,用 {} 包裹起來,表示**塊,當只有一行語句,並且需要返回結果時,可以省略 {} , 結果會自動返回。
當箭頭函式要返回物件的時候,為了區分於**塊,要用 () 將物件包裹起來var f = (a,b) =>
f(6,2); // 8
注意點:沒有 this、super、arguments 和 new.target 繫結。// 報錯
var f = (id,name) => ;
f(6,2); // syntaxerror: unexpected token :
// 不報錯
var f = (id,name) => ();
f(6,2); //
箭頭函式和普通函式的區別是:var func = () =>
func(55) // window
var func = () =>
func(55); // referenceerror: arguments is not defined
1、箭頭函式沒有this,函式內部的this來自於父級最近的非箭頭函式,並且不能改變this的指向。
2、箭頭函式沒有super
3、箭頭函式沒有arguments
4、箭頭函式沒有new.target繫結。
5、不能使用new
6、沒有原型
7、不支援重複的命名引數。
培訓ES6筆記
1 剩餘操作符 let rest function a,rest rest 1,2,3,4,5 傳入引數 let print function a,b,c print 1,2,3 print 1,2,3 var m2 math.max 8,9,4,1 可以替代concat var arr1 1,3 ...
ES6筆記 物件
依據阮一峰教程摘取的自己可能用到的特性 屬性的簡潔表示法 function f x,y 等同於 function f x,y f 1,2 object方法簡寫 const o 等同於 const o object.assign 可列舉物件的合併 同名屬性的合併 淺拷貝const target con...
ES6筆記(解構)
1 解構 解構通俗點說,就是通過一種特定格式,快捷的讀取物件 陣列中的資料的方法 基本用法 如果右邊是物件,左邊也要用物件的格式,解構出來就是變數了,再也不是屬性了 解構物件 var ouser es5讀資料的方法 console.log ouser name ouser age aaa 20 le...