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 箭頭...