迭代方法array.map,filter,some,forEach...函數(shù)中接受一個回調(diào)函數(shù),函數(shù)參數(shù)都是function (當前項梆暖,當前項下標补疑,原數(shù)組)
array.some()方法返回布爾值 用于判斷數(shù)組中任意一個符合條件則返回true实昨,類似一個or,||運算
array.every()相反犀变,類似與&& ,and運算 必須每一項都返回條件則為true秋柄,
map 為根據(jù)回調(diào)函數(shù)中的返回值映射到新數(shù)組中获枝。
reduce()和reduceRight()相反
js中使用String的方法js會在運行時后臺做處理,自動隱式的生成調(diào)用一個String類型的實例在實例上調(diào)用方法华匾,最后再銷毀實例映琳。對應實例會立即銷毀。
js引擎會依賴作用域去找東西如果function是第一個詞就是函數(shù)聲明蜘拉,否則就是一個表達式 js引擎會在解釋之前進行js編譯 萨西,變量提升在js執(zhí)行前,函數(shù)提升優(yōu)先級比變量高旭旭,出現(xiàn)在后面的函數(shù)聲明會覆蓋前面的谎脯。
var a=2 不提升,只提升a對聲明持寄,賦值不提升 源梭,a=2 對執(zhí)行順序不會改變,留在原地稍味,函數(shù)聲明會被提升废麻。但是函數(shù)表達式不會被提升。千萬不要在if for...等代碼塊內(nèi)聲明函數(shù)Object.defineProperty()定義某對象屬性描述符
定義是否可枚舉模庐、是否可配置烛愧、是否可寫、value
get set 必須成對同時定義,get 操作會查找原型鏈hasOwnProperty針對對象檢查屬性 怜姿,for in循環(huán)檢查原型鏈遍歷key值慎冤,for of 可便利數(shù)組項
10.js其實沒有類的概念 ,class 中的super表示父類沧卢,祖先類蚁堤、類的繼承就是復制
prototype原型對象是在調(diào)用new時創(chuàng)建的對象,new 為構造函數(shù)調(diào)用 但狭,Object.create(null)會創(chuàng)建一個沒有原型鏈的對象披诗,所以非常適合存儲數(shù)據(jù)
undefined不是is not defined
Array.from()和slice方法類似,可拷貝一個數(shù)組熟空,可轉換類數(shù)組藤巢,字符串String能進行concat();字符串類型不可突變mutation
小數(shù)中0.可以省略成 .
數(shù)值精確 number.toFixed(1),Number.isInteger檢測是否是整數(shù)息罗。null指曾賦過值掂咒,但是目前沒有值。
-0 === 0 迈喉。 Object.is(A,B)判斷兩個值是否相等 ,Array .length = 0 清空數(shù)組
數(shù)組的toString()方法可返回“a,b,c,d”
, Number("") == 0 . Number.([1,2,3]) == NaN . Number([]) == 0 ;
強制轉換布爾值 !!反轉
a||b 如為true返回a 绍刮,第一個 否則返回b。a&&b正好相反 如true返回b挨摸。&&先執(zhí)行孩革,然后才是||
==隱式轉換優(yōu)先把非數(shù)字轉換為數(shù)字,把全部轉換為數(shù)字
得运,逗號優(yōu)先級最低
Promise.resolve().then永遠是個promise對象
promise的then回調(diào)中能return一個promise對象來執(zhí)行promise任務膝蜈,會以對象形式傳遞到下一個then,then 可接受正常值或一個promise對象 熔掺。promise.all類似并且饱搏、and、&&的關系置逻。promise.race是或者推沸、or、||券坞,promise.race([...,setTimeout])能實現(xiàn)超時鬓催。then和catch都會返回一個全新的promise
const方式定義一個數(shù)組 可以對該數(shù)組進行修改
ES6參數(shù)默認值對null會轉換成0
解構賦值可以嵌套
生成器可暫停自身
import會提升
Object對象只能接受字符串作為鍵值
Set
.size .add()可鏈式 .clear() .delect() .has()
數(shù)組去重:
function xx(arr){
return arr.filter((item,idx,array)=>arr.indexOf(item) === idx) ;
}