1.結構賦值
解構賦值主要是針對於陣列和物件的:真實專案中,一般常用於把從伺服器獲取的json資料進行快速解構,賦值給對應的變數,幫助我們快速拿到對應的結果
let arr = [100, 200, 300, 400,500];
let [a, b, c, d] = arr;
console.log(a, b, c, d); // 100 200 300 400 500
let arr = [100, 200, 300, 400,500];
let [a, , , , b] = arr;
console.log(a, b); //100 500
let arr = [100, 200, 300, 400,500];
let [a] = arr;
console.log(a); //100;
let arr = [100, 200, 300, 400,500];
let [a, ...b] = arr;
console.log(a); //100
console.log(b); //[200, 300, 400, 500];
let arr = [100, 200, 300, 400,500];
let [a] = arr.reverse();
console.log(a); //500
// 賦值預設值
let ary = [100];
let [a, b = 0] = arr;
console.log(a, b); //100 0
// a/b互換值
l et a = 10,
b = 20;
let c = a;
a = b;
b = c;
console.log(a, b);//20 10
a = a + b;
b = a - b;
a = a - b;
console.log(a, b);//10 20
[b, a] = [a, b];
console.log(a, b); //20 10
//物件解構賦值,建立的變數名需要和屬性名保持一致
let obj = ;
//let = obj;
console.log(id, name, ***); // 1 "張三丰" undefined
2.運算子
let arr = [10, 20, 30, 40];
擴充套件運算子 let […arr]=[10,20,30,40];
剩餘運算子 函式的形參賦值上
展開運算子 展開陣列或者物件中的每一項
let fn = (n, ...m) => ;
fn(10, 20, 30, 40);
// 陣列轉殖 (展開運算子)
let obj={}
let arr1 = [10, 20, 30];
let arr2 = [...arr1];
fn.call(obj,...arr1);
// fn(10,20,30)
3.陣列新增方法
// array.from() 把乙個類陣列集合(set集合)轉換為陣列
// array.of() 把一組值轉換為陣列
// es5中array常用的乙個方法:array.isarray()驗證是否為陣列
// array.prototype新增的方法
// new array(3).fill(null) 建立集合長度為3,每一項都填充為null
// includes
// flat() 陣列扁平化
// entries(),keys(),values()
// find / findindex =>陣列的遍歷迭代方法 foreach/map/filter/find/some/every/reduce...
// object.assign([obj1],[obj2]) 合併物件,把[obj2]的資訊替換[obj1]
// object.create([obj]) 建立乙個空物件,讓其__proto__指向[obj]
// object.defineproperty([obj],[key],[options]) 監聽乙個物件某個屬性的處理操作
// object.entries([obj]) 獲取乙個物件所有的鍵值對
// object.keys([obj])
// object.values([obj])
// object.freeze([obj]) 凍結物件,讓其所有操作都不能進行
// object.is([value1],[value2]) 比較兩個值是否相等,比==/===更準確
// const建立的變數不能更改變數的指標指向,但是對於物件來說可以操作其堆記憶體中的資訊
// const obj = ;
// obj.id = 2;
// console.log(obj);//
4.new set用法
set資料結構中的每一項都是唯一的(類陣列)
let arr = array.from(new set([1, 1, 1, 2, 3, 2, 3, 4, 5, 3, 2, 1]));
console.log(arr);//1 2 3 4 5
5.map支援屬性名是物件
let n = ;
let obj = new map();
obj.set(n, 10);
es6中reduce的用法 Es6基礎語法
1 this this代表當前正在執行的物件 function fn fn window const obj new fn fn.call 2 箭頭函式 1 箭頭函式的this是在定義的時候就固定不變了 2 箭頭函式 沒有自己的this 3 箭頭函式 不能當類 構造器 使用 不可以 new 4 箭頭...
ES6語法 JS中 和 的區別及用法
js中 的用法是比較靈活的,它除了做邏輯運算常常會用!做型別判斷,可以用!與上物件來求得乙個布林值,1 可將變數轉換成boolean型別,null undefined和空字串取反都為false,其餘都為true。null true undefined true true 100 false abc ...
es6 基本語法
es6規定暫時性死區和let const語句不出現變數提公升,主要是為了減少執行時錯誤,防止在變數宣告前就使用這個變數,從而導致意料之外的行為。這樣的錯誤在 es5 是很常見的,現在有了這種規定,避免此類錯誤就很容易了。總之,暫時性死區的本質就是,只要一進入當前作用域,所要使用的變數就已經存在了,但...