[TOC]數組
//聲明 var str = ``; //嵌入變量 var str = `${變量}`; // username + "___" + password // `${username} ---- ${password}`
var username = 'jack'; var age = 18; console.info(`你的姓名是${username} , 你的年齡是${age}`);
const people = { name: 'lux', age: 20 } const name = people.name; //ES5寫法 const age = people.age; console.log(name + ' ‐‐‐ ' + age)
let {變量1,變量2,...} = 對象; //例如: {} = {}
let student = { name : "張三", age : 21, course : { en : 100, math : 99 } }; let {name,age} = student; console.info(name + "_" + age); let {course : {en , math }} = student; console.info(en + "_" + math );
let [變量1,變量2,...] = 數組; //例如: [] = []
let arr = ['安徽','滁州']; let [province,city] = arr; //arr[0]賦值給province,arr[1]賦值給city console.info(province); console.info(city); let [pro,cit,cou = '全椒'] = arr; //arr[3]若是不存在,就使用默認值’全椒’ console.info(province); console.info(city); console.info(province); console.info(cou);
[x, y] = [y, x];
var map = new Map(); map.set('first', 'hello'); map.set('second', 'world'); for (let [key, value] of map) { console.log(key + " is " + value); } // first is hello // second is world
const { SourceMapConsumer, SourceNode } = require("source-map");
function 函數名(參數名 = 默認值){ }
function fun1({x = "x1" , y } = {y : "y2"}){ return [x , y] ; } console.info( fun1() ); //[ 'x1', 'y2' ] console.info( fun1({}) ); //[ 'x1', undefined ] , //{} 覆蓋 {y:"y2"} ,解構默認值,x=x1,y=undefined
function fun2(args = new Error("參數必須填寫")){ console.info(args); } fun2(); fun2("abc");
對象簡寫瀏覽器
//屬性名和屬性值(變量)相同時,能夠簡寫成一個。注意:不能使用雙引號 //匿名函數,能夠省略function關鍵字 var user = { username, // "username" : username password, show () { } }
(參數1, ….) => { //語句 return 返回值; }
var fn = function(a,b){ //ES5定義匿名函數的方式 return a+b; } var fn2 = (a,b) =>{ //ES6箭頭函數匿名函數 return a + b; }
var fn2_1 = () => { console.info("沒有參數"); } var fn2_2 = (a) => { console.info("一個參數"); } var fn2_1 = (a,b) => { console.info("多個參數"); } var fn2_3 = a => { //省略寫法 console.info("一個參數"); }
var fn3_1 = (a,b) => {//普通語句 console.info("普通語句"); } var fn3_2 = (a,b) => { return a+b;//return語句 } var fn3_3 = (a,b) => console.info("普通語句"); //普通語句的省略寫法 var fn3_4 = (a,b) => a+b; //return語句的省略寫法,必須省略return
var name = "rose"; var person = { name : 'jack', show : function(){ console.info( this.name ); }, show2 : () => { console.info( this.name ); } }; person.show(); //輸出jack person.show2(); //輸出undefined,在Node.js中沒有window對象,沒法得到對應值 //若是但願得到jack,必須經過person.name方式得到
建立 new Map(); 設置數據 map.set(k,v); 得到數據 let v = map.get(k) 是否存在 let b = map.has(k) 刪除數據 map.delete(k)
//Set集合:存儲惟一數據 建立 new Set() 添加數據 set.add(val)
var arr = [2, 3, 5, 4, 5, 2, 2]; //方式1 var set2 = new Set(); // 1) 遍歷數組,將數據添加到set arr.map( s => set2.add(s) ); // 2) 遍歷set集合,添加到新數組 var arr2 = []; set2.forEach( v => arr2.push(v) ); console.info( arr2 ); //[ 2, 3, 5, 4 ] //方式2 var arr3 = [ ... new Set(arr) ] console.info( arr3 ); //[ 2, 3, 5, 4 ]
//遍歷數組 for(let a of arr4){ console.info(a); } //遍歷Map,for…of與解構結合遍歷Map for(let [k,v] of map4){ console.info(`輸出的數據鍵是${k}值是${v}`); } //遍歷Set for(let s of set4){ console.info(s); } //自定義對象不能遍歷,須要藉助keys轉換成「鍵數組」 for(let key of Object.keys(obj4)){ console.info(`對象的鍵是${key},值是${obj4[key]}`); } //也能夠藉助entries轉換成「鍵值對」 for(let [k,v] of Object.entries(obj4)){ console.info(`entries : 對象的鍵是${k},值是${v}`); }
遍歷方式 | 描述 | 實例 |
---|---|---|
for循環遍歷 | 普通循環,經常使用於處理數組 | for (let i = 0;i < array.length;i++){ |
map() | 數組鏈式操做函數 | array.map( fn ).xxx() |
forEach() | 簡化數組、Map、Set的遍歷 | xxx.forEach( fn ) |
for…in | 任意順序遍歷一個對象的可枚舉屬性 | for(let xx in obj) {} |
for…of | 不一樣的數據結構提供統一的訪問機制 | for(let xx of obj) {} |
函數名(參數1, 參數2, …可變) function add(...num){ //可變參數num,就是一個數組,運行時存放了全部的實參 var sum = 0 ; num.forEach( i => sum += i); return sum; } console.info( add(1,2,3) ); function count(args,...other){ console.info(arguments.length); //雖有參數的個數,僞數組,不能使用forEach進行遍歷 console.info(other.length); //可變參數的個數,真數組,可使用forEach進行遍歷 } count(1,2,3);
擴展運算符(spread)是三個點(...)。它比如rest參數的逆運算,數據結構
操做數據是數組,將一個數組轉爲用逗號分隔的參數序列。函數
操做數據是對象,取出參數對象的全部可遍歷屬性,拷貝到當前對象之中學習
擴展運算符ui
//將對象或數組徹底拆分 ...數組 --> 多個元素 ...對象 --> 多個屬性對 var arr = ['a','b','c']; function fun3(x,y,z){ console.info( [x,y,z] ); } fun3( arr ); //[ [ 'a', 'b', 'c' ], undefined, undefined ] fun3( ...arr ); //[ 'a', 'b', 'c' ] let z = { a: 3, b: 4 }; let n = { ...z }; // { a: 3, b: 4 }
var arr1 = ['a', 'b']; var arr2 = ['c']; var arr3 = ['d', 'e']; //經過 concat函數合併 console.info( arr1.concat(arr2 ,arr3 ) ); //經過擴展運算符合並 console.info( [...arr1 ,...arr2 ,...arr3] );
//經過split拆分字符串 console.info( "abc".split("") ); //經過擴展運算符拆分 console.info( [..."abc"] );
平常學習的總結,主要是爲了本身之後看,固然你們有什麼好的建議,歡迎評論留言。this