JS: 常用方法
一些常用的 JS 内容方法.
Object
const data = {
name: 'Linux',
age: 99
}
console.log(Object.keys()) // ['name', 'age']
console.log(Object.values()) // ['Linux', 99']
console.log(Object.entries()) // [ ['name', 'Linux'], ['age', 99] ]
some
- 如果要不断使用逻辑运算符号判断,这一定很让人难受 (最起码是我).
if(d === "dark" || d === "light" || d === 'green") {
console.log('good')
}
但是可以利用 数组的内置对象方法 Array.prototype.some
const checker = ['dark', 'light', 'green'];
const d = 'dark';
if (checker.some((item) => item === d)) {
console.log('goods');
} else {
console.log('nothing');
}
Array.prototype.some()
[1] 方法第一个参数是一个 callbackFn, 第二个函数 thisArg 不常用 (修改 this 指向).
数组不属于基本类型,是一个特殊的 Array 对象.
所有的 builtin 复制操作 (展开语法,Array.from, Array.prototype.slice Array.prototype.concat) 都会创建浅拷贝.
Array.from
- 这是一个静态方法。第一个参数是 arrayLike, 第二个参数就是 mapFn,
// array
const array = [1, 2, 3]
const newarray = Array.from(array, item => item * 2);
console.log(newarray) // output: [2, 4, 6]
// arrayLike
const arrayLike = {
0: 'apple', 1: 'banana', length: 2
}
console.log(Array.from(arrayLike))
// array with object
const aobj = [
{name: 'apple'}
]
console.log(Array.from(aobj, (item) => item.name + ' is bad'))
// output is : ['apple is abd']
Map
Map()
是一个构造函数
const map = new Map()
// 类似于 localstorage 的用法 getItem, setItem, 只是不支持直接访问
// set value
map.set('name', 'apple')
// get value
map.get('name')
// 类似于 删除对象的某个属性 delete obj.name
// instance method: delete
map.delete('name')
map.has('name')
// instance method: empty map
map.clear()
// return a new MapIterator Object include all kv
// 类似于 Object.entries()
map.entries()
map.keys()
map.values()
> 虽然设置对象属性的方法同样适用于Map 对象, 但是Map 的数据结构没有被改变, 所以查询不到.
Tips
Array.prototype.include() // ES7 语义更明确相比 findIndex find indexof, 使用 samevaluezero()
Object.assign() // ES6(2015)