10.20隨筆

來源:互聯網
上載者:User

標籤:this   特點   object   負數   i++   數組   結果   遍曆數組   console   

ES6

ECMAScript是一種由Ecma國際(前身為歐洲電腦製造商協會,英文名稱是European Computer Manufacturers Association)通過ECMA-262標準化的指令碼程式設計語言。

這種語言在全球資訊網上應用廣泛,它往往被稱為JavaScript或JScript,但實際上後兩者是ECMA-262標準的實現和擴充。

 

模板對象 

 

新的文法  $ {NAME},並把它放在反引號裡

 

 

遍曆數組

 

var arr=[‘jack‘,‘rose‘,‘lucy‘,‘lolita‘];console.log(‘ 原始for迴圈:‘);for(var i=0;i<arr.length;i++){console.log(i+‘ ‘+arr[i]);} console.log(‘ ESS[forEach]:‘);arr.forEach(function(value,index){console.log(index+‘ ‘+value);}) console.log(‘ for-in:‘);for(var i in arr){console.log(i+‘ ‘+arr[i]);} console.log(‘ES6 [for-of]:‘);for(var name of arr){console.log(name);}    var arr2=[56,88,100,‘99‘,150,1818]; //過濾數組(filter)arr2=arr2.filter(function(value,index){return value>100;})console.log(arr2); //遍曆的同時修改arr=arr.map(function(value,index){return ‘welcome:‘+value+‘ ‘+index;})console.log(arr);     新的集合 ☆ Arry set map三者的區別?

小結:對比三種儲存介質

Array: 有序集合,下標是唯一的,值是可以重複的

Set   : 無序集合,沒有下標,值就是唯一的

Map : 無序集合,採用索引值對形式儲存資料,鍵(key)是唯一的,值可以重複

 

set

 

 

map

 

 

var myset = new Set("ABCDEAB");//實際儲存的值是:ABCDE,因為會自動過濾重複的值console.log(myset.size);//Set集合的長度:0myset.add("W");//給Set添加一個值myset.delete("A");//從Set中刪除Amyset.clear();//清空整個Set集合console.info(myset.has("X")) // 檢索Set中是否有X這個值console.info(myset[2]) // Set不支援索引,所以這行會報錯Array.from(myset);//Set轉數組
key-value
var maps = new Map();maps.set("username", "小三");//儲存三組資料maps.set("age", 20);maps.set("sex", "男");console.log(maps.get("username"));//通過Key取出console.log(maps.size);//返回長度:3console.log(maps.has("sex"));//是否有該keyconsole.log(maps.delete("age"));//根據key刪除一個值//      console.log(map.clear());//清空console.log(maps);//輸出整個map集合console.info(maps.keys());//返回Key的集合console.info(maps.values());//返回Value的集合     物件導向的方法

Object.create():根據原型建立一個子類對象(繼承的另一種形式)

 

ct.defineProperty(Obj,property,{}); 在一個對象上定義新的屬性

 

Object.defineProperties(對象名,要添加的屬性): 為對象一次定義多個屬性

 

 

 

 

修飾器set和get

 

 

 

 

 

預設參數

 

 

 

 

 

拓展運算子 三個點(...)

將一根數群組轉換為用逗號分隔的參數列表

 

 

 

let 和 var ☆

的區別?

1.定義的變數範圍只是封閉塊,而不是整個函數

2.var定義變數聲明提前,也就是可以在建立前擷取,但結果是undefined;

而let不存在聲明提前,所以如果在建立前擷取,會報錯的

3.var定義的全域變數是屬於window的,可以通過window取出來 (window點的出來);

而let定義的全域不屬於window (window點不出來)

 

 

 

 

const常量 特點 通常全域 局部時等於let效果 1.常量不讓後來修改 2.常量必須有初始值 3.如果將const定義的變數放在塊級範圍中,則與let效果一樣 

 

 

解構1.逗號隔開,用來批量賦值 (按順序去賦值)2.使用解構進行變數的交換 [a,b]=[b,a]

 

 

箭頭函數

首先,我們發現省略了function,用()代替。

其次,{}被=>代替了。

最後,裡面return沒有了,因為它將暗地裡返回單個語句的結果。如果你超過了一行,將需要明確使用return。

最重要的是,在ES6中的內層函數裡,可以瀟洒的使用this,它代表的就是外層函數的 ☆☆

this。因為箭頭函數沒有它自己的this值,箭頭函數內的this值繼承自外圍範圍。

 

新增寫法

String:

 

repeat();重複當前字串多少次 重複多少次

console.log(“ABC".repeat(3));//ABCABCABC

 

includes();檢測當前字串是否包含某個字串,包含返回true ☆ 檢測是否包含

console.log(“ABC".includes("A"));//true

 

startsWith();檢測某字串是否在源字串的頭部,包含返回true ☆ 是不是以啥開頭

console.log(“ABC".startsWith("B"));//false

 

endsWith();檢測某字串是否在源字串的尾部,包含返回true ☆是不是以啥結尾

console.log("ABC".endsWith("C"));//true

 

Math:

 

Math.trunc();不進位的去除小數點

console.log(Math.trunc(3213.5));//3213

 

Math.sign();如果參數數字是正數,返回1;如果是負數,返回-1;如果是0,返回0

console.log(Math.sign(3213.5));//1

console.log(Math.sign(-3213.5));//-1

console.log(Math.sign(0));//0

☆用來判斷當前數位正負數     map和weakmap的區別? ☆ 它兩的結構類似也是用於索引值對的集合區別:weakmap只接受object對象作為鍵名(null)除外,方法只有set(),get(),has(),delete() weakup沒有遍曆方法,size屬性,clear方法 

10.20隨筆

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.