let、const 的用途和 var 相似,都是用來宣告變數,但各自特性並不相同。
let 的特性:
只在 let 所在**塊有效
建立塊級作用域,並只在塊級作用域內有效
沒有變數提公升
不允許在相同作用域重複宣告
const 的特性:
宣告乙個唯讀常量,宣告後就初始化,無法更改,以後也無法賦值
建立塊級作用域,並只在塊級作用域內有效
宣告的常量不提公升
不允許在相同作用域重複宣告
const 實際保證的是宣告的變數的記憶體位址不可改變。
es6 提供了更接近傳統語言的寫法,引入了 class 這個概念。 es6 的類可以看作建構函式的另一種寫法。
class animal
says(say)
}let animal = new animal();
animal.says('hello'); // animal says hello
class cat extends animal
}let cat = new cat();
cat.says('hello'); // cat says hello
上面**首先定義了乙個類,擁有乙個預設的方法 constructor ,這是構造方法,constructor 內定義的方法和屬性是例項物件自己的,外的是所有例項物件可以共享的。
class 之間通過 extends 繼承,繼承父類的所有屬性和方法。
super 指代父類的例項,也就是父類的 this 物件,子類必須在 constructor 方法類呼叫 super 方法,否則報錯。因為子類沒有自己的 this 物件,如果不呼叫,子類得不到 this 物件。
class 注意點:
類的內部定義的方法,都是不可列舉的(和 es5 不同)
必須有 constructor 方法,沒有顯式定義,則預設新增空的 constructor 方法
類的建構函式,必須使用 new 呼叫,普通建構函式不適用也可執行
不存在變數提公升
類的方法內部,this 預設指向類的例項
類的內部,預設是嚴格模式
function(x,y)
(x,y) =>
在箭頭函式中,函式體內的 this 物件,就是定義時所在的物件,而不是在呼叫時的物件。
因為箭頭函式內部沒有自己的 this 物件,它的 this 物件繼承外面的,因此內部的 this 就是外層**塊的 this。
插入大段的 html 內容時使用:
there are$items
in your basket, $
are on sale!
`);用反引號 (``) 來標識起始,用 ${} 來引用變數,並且所有空格和輸出都會儲存在愛輸出之中。
完全解構
let [a, b, c] = [1, 2, 3];
// a = 1; b = 2; c = 3;
解構不成功
let [x, y] = [1];
// x = 1; y = undefined;
不完全解構
let [a, [b], c] = [1, [2,3], 4];
// a = 1; b = 2; c = 4;
物件的解構不同於陣列的解構,物件的解構賦值是先找到同名變數,然後賦值給對應的變數。賦值的是後者,前者用於匹配。
let = ;
foo // "aaa"
bar // "bbb"
let = ;
baz// undefined
const [a, b, c, d, e] = "hello";
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
default是預設值,在 es6 之中可以指定預設值,可以在解構、函式引數之中傳入預設值。
function animal(type = 'cat')
es6 引入 rest 引數(形式為「...變數名」),用於獲取函式的多餘引數,這樣就不需要使用arguments物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。
function add(...values)
retutn sum;
}add(2, 3, 5) // 10
rest 注意點:
rest 引數後不能有其他引數,只能是最後乙個引數
函式的 length 屬性,不包括 rest 引數
擴充套件運算子(spread)是三個點(...)。它好比 rest 引數的逆運算,將乙個陣列轉為用逗號分隔的引數序列。
console.log(...[1, 2, 3])
// 1 2 3
console.log(1, ...[2, 3, 4], 4)
// 1 2 3 4 5
[...document.queryselectorall('div')]
// [, , ]
es6學習總結
一 let和const 1.let宣告的變數只在它所在的 塊有效。2.let宣告的變數僅在塊級作用域內有效。3.不存在變數提公升。4.每個let宣告的變數都有各自的作用域。它所宣告的變數一定要在宣告後使用,否則報錯 5.暫時性死區 只要塊級作用域內存在let命令,它所宣告的變數就 繫結 bindin...
ES6學習總結
1.建立 let x newset 2.特性 對基本資料型別,會自動去重 3.方法 x.add 新增 x.delete 刪除 x.has 刪除是否存在,返回布林 x.clear 清空 x.keys 返回鍵名的遍歷器 x.values 返回鍵值的遍歷器 x.foreach function 遍歷 ar...
es6基礎入門篇
1 let 允許重複賦值,但不允許重複宣告變數 2 const 宣告常量,不允許重複宣告,也不允許重複賦值 3 字串 1 string.fromcharcode 編碼 能讓編碼轉成字元 示例,統計瀏覽器能支援多少個中文字元 let name for let i 0x4e00 i 0x9fa5 i c...