es6中新增的用於宣告變數的關鍵字。
if (true)
console.log(a); //a is not definded
注意:使用let關鍵字宣告的變數才具有塊級作用域,使用var宣告的變數不具備塊級作用域特性。
console.log(a); //a is not definded
let a = 20;
var tmp = 123;
if(true)
if (true)
console.log(a); //a is not definded
const pi; //missing initializer in const declaration
const pi = 3.14;
pi = 100; //assignment to constant variable
const ary = [100,300];
arr[0] = 'a';
arr[1] = 'b';
console.log(ary); //['a','b']
ary = ['a','b']; //assignment to constant variable
使用var宣告的變數,其作用域為該語句所在的函式內,且存在變數提公升現象。使用let宣告的變數,其作用域為該語句所在的**塊內,不存在變數提公升。使用const宣告的是常量,在後面出現的**中,不能再修改該常量的值。
varlet
const
函式級作用域
塊級作用域
塊級作用域
值可更改
不存在變數提公升
不存在變數提公升
值可更改
值可更改
值不可更改
es6中允許從陣列中提取值按照對應位置對變數賦值物件也可以實現解構。
陣列解構
let [a,b,c] = [1,2,3];
console.log(a);
console.log(b);
console.log(c);
如果解構不成功,變數的值為undefined
let [foo] = ;
let [bar,foo] = [1];
物件解構
let person = ;
let = person;
console.log(name); //zhangsan
console.log(age); //20
let = person; //myname myage 屬於別名
console.log(myname); //zhangsan
console.log(myage); //20
剩餘引數語法允許我們將乙個不定數量的引數表示為乙個陣列。
function sum (first,...args)
sum[10,20,30];
剩餘引數和解構配合使用
let students = ['zhangsan','lihua','wangwu'];
let [s1,...s2] = students;
console.log(s1); //'zhangsan'
console.log(s2); // ['lihua','wangwu']
普歌 飛靈團隊 ES9
先讚後看,養成習慣 rest 引數與 spread 擴充套件運算子在 es6 中已經引入,不過 es6 中只針對於陣列,在 es9 中為物件提供了像陣列一樣的 rest 引數和擴充套件運算子 rest 引數 物件合併 const skillone const skilltwo const skill...
普歌 飛靈團隊 Ajax基礎symbol
symbol特點 symbol 的值是唯一的,用來 解決命名衝突的問題 值不能與其他資料進行運算 symbol 定義 的 物件屬 性 不能 使 用 for in 循 環遍 歷 但 是可 以 使 用 reflect.ownkeys 來獲取物件的所有鍵名 建立symbol let s1 symbol c...
普歌 飛靈團隊 Ajax基礎class
知識點 class 宣告類 constructor 定義建構函式初始化 extends 繼承父類 super 呼叫父級構造方法 static 定義靜態方法和屬性 父類方法可以重寫 父類 class phone 物件方法 call 子類 class smartphone extends phone 子...