ES6常見用法 ECMAScript 6 0

2021-10-12 16:37:35 字數 3023 閱讀 2888

js中作用域有:全域性作用域、函式作用域。沒有塊作用域的概念。ecmascript 6(簡稱es6)中新增了塊級作用域。

塊: 由 構成,if語句和for語句裡面的也屬於塊,物件的大括號內不是乙個塊級作用域, 因為它裡面不能直接宣告變數;

if和for沒有塊級作用域,用var定義的變數可以在外面訪問到.

函式有塊級作用域,通過var定義的變數不能在外面訪問到.

es5的var沒有塊級作用域,塊裡面用var定義的變數可以在外面訪問到。

es6的let有塊級作用域,塊裡面用let定義的變數不能在外面訪問到。用於if和for,間接讓if和for有了塊級作用域.

es6的const有塊級作用域,塊裡面用const定義的常量不能在外面訪問到。

const用於修飾常量,不可以再次賦值.

不用鍵值對的方式

const name = 'pll';

const age = 20;

const obj =

const obj = ,

eat() {}

}

for(let book in books)
for(let book of books)
new例項的時候,會自動呼叫constructor裡的方法

class person 

}let a = new person();

console.log(a); //

let b = new person('張三');

console.log(b); //

class child extends person {}

console.log(new child()); //

重寫constructor,修改name,新增age

class child_a extends person 

}console.log(new child_a()); //

console.log(new child_a('李四', 60)); //

function fn(age=17)

fn(); // 17

fn(18); // 18

使用函式預設引數時,不允許有同名引數。

// 不報錯

function fn(name,name)

fn('pll', 'qq'); //qq

// 報錯

function fn(name,name,age=17)

function fn(...values) 

fn(1, 4);

結果為:

[1,4]

2

const nums = [1, 3, 8]

const [a, b, c] = nums

console.log(a); //1

console.log(b); //3

console.log(c); //8

可巢狀

let [a, [[b], c]] = [1, [[2], 3]];

// a = 1

// b = 2

// c = 3

可忽略

let [a, , b] = [1, 2, 3];

// a = 1

// b = 3

不完全解構

let [a = 1, b] = ;  

// a = 1, b = undefined

剩餘運算子

let [a, ...b] = [1, 2, 3]; 

//a = 1

//b = [2, 3]

字串

let [a, b, c, d, e] = 'hello'; 

// a = 'h' b = 'e' c = 'l' d = 'l' e = 'o'

const obj = 

//賦值變數名必須和目標物件的屬性名一致

const = obj;

console.log(name); //pll

console.log(age); //20

let  = ;

console.log(foo); //ddd

可巢狀可忽略

let obj = ] }; 

let ] } = obj;

// x = 'hello' // y = 'world'

let obj = ] };

let ] } = obj;

// x = 'hello'

不完全解構

let obj = ] }; 

let , x ] } = obj;

// x = undefined // y = 'world'

剩餘運算子

let  = ; 

// a = 10 // b = 20 // rest =

解構預設值

let  = ; 

// a = 3; b = 5;

let = ;

// aa = 3; bb = 5;

ES6常見語法

解構賦值 一.物件的解構賦值 常遇到的場景 export default class list extends purecomponent this handleadd this handleadd.bind this this handlemodify this handlemodify.bind...

es6 基本用法

一 let 命令 基本用法 1 塊及作用域 var d 1 if true console.log d 4 d被覆蓋 let c 2 if true console.log c 2上面的 中 分別用 var 和 let 宣告了兩個變數 var 宣告的即使在作用域的也可以覆蓋之前宣告 let 宣告的變...

es6中reduce的用法 Es6基礎語法

1 this this代表當前正在執行的物件 function fn fn window const obj new fn fn.call 2 箭頭函式 1 箭頭函式的this是在定義的時候就固定不變了 2 箭頭函式 沒有自己的this 3 箭頭函式 不能當類 構造器 使用 不可以 new 4 箭頭...