對象
Object.assign()
方法用於對象的合併,將源對象(source)的所有可枚舉屬性,複製到目標對象(target)
常用於引用值淺拷貝Object.assign({}, obj)
給對象新增屬性Object.assign(obj, obj1)
Object.keys()/Object.values()/Object.entries()
只能遍歷 可遍歷(enumerable)的屬性
let {keys, values, entries} = Object;
let obj = { a: 1, b: 2, c: 3 };
for (let key of keys(obj)) {
console.log(key); // 'a', 'b', 'c'
}
for (let value of values(obj)) {
console.log(value); // 1, 2, 3
}
for (let [key, value] of entries(obj)) {
console.log([key, value]); // ['a', 1], ['b', 2], ['c', 3]
}
Object.create()
Object.defineProperty
數組
arr.find()
用於找出第一個符合條件的數組成員。它的參數是一個回調函數,所有數組成員依次執行該回調函數,直到找出第一個返回值爲true
的成員,然後返回該成員。如果沒有符合條件的成員,則返回undefined
。
[1, 4, -5, 10].find((n) => n < 0)
// -5
Array.reduce()
reduce() 方法接收一個函數作爲累加器,數組中的每個值(從左到右)開始縮減,最終計算爲一個值。對空數組是不會執行回調函數的。
const arr = [1,2,3,4,5];
const total = arr.reduce(function(sum,item){
return sum + item
}, 0);
console.log('======total',total); //15
字符串
str.padStart() /padEnd()
如果某個字符串不夠指定長度,會在頭部或尾部補全。padStart()
用於頭部補全,padEnd()
用於尾部補全。
'x'.padStart(4, 'ab') // 'abax'
padStart()
的常見用途是爲數值補全指定位數
'123456'.padStart(10, '0') // "0000123456"
String.raw()
用來處理模板字符串,它會將所有變量替換,而且對斜槓進行轉義(即再加一個\),方便下一步作爲字符串來使用。
String.raw`Hi\n${2+3}!`
// 實際返回 "Hi\\n5!",顯示的是轉義後的結果 "Hi\n5!"
for in 與 for of
JSON.stringify() 與 Json.parse()
JSON.stringify() javascript值 ----> 字符串
Json.parse() 字符串 ---> javascript值
常用於引用值深拷貝 JSON.parse(JSON.stringify(obj))