JS标准-内置对象基本对象
Object
创建对象Object.assign
- Object.assign(obj1,obj2…)
- 说明:将obj1复制到obj2…重属性名的被后面的覆盖;
- 作用:对象的浅拷贝
转数组Object.keys
- Object.keys(obj)
- 说明: 将属性名转数组
- Object.values(obj)
- 将属性值转数组
常用于判断是否有error,如果满足条件给对象添加属性值,最后判断Object.values(resultObj)后的length是否>0;则提示错误
- 将属性值转数组
比较Object.is
- Object.is(val1,val2)
- 说明:判断两个值是否为同一个值。大部分情况等同于‘===’
- 特殊情况
- Object(+0,-0)返回false,因为在存储上两个值的符号位不同
- Object.is(NaN,NaN)返回ture,NaN === NaN返回false
与Map类型的转换
// Map转对象?
let map = new Map([['a','one'],['b','two'],['c','three']]);
//希望得到{a: 'one',b: 'two', c: 'three'} 怎么做?
// Object.fromEntries是Object.entries的逆操作
let obj = Object.fromEntries(map);
//对象怎么转为Map?
//Object.entries对象转换为键值对数组
let obj = {a: 'one',b: 'two', c: 'three'};
let map = new Map(Object.entries(obj));
Function
函数调用相关:cal,apply,bind
- Function.prototype.apply() 调用函数,指定this,参数为数组
var arr = [3,6,3,7,10]; Math.max.apply(this,arr); - Function.prototype.bind() 绑定this,返回原函数,参数为列表
- Function.prototype.call() 调用函数,参数为列表
Boolean
- 是一个函数
- 常用: Array.filter(Boolean)
//移除所有的 ”false“ 类型元素 (false, null, undefined, 0, NaN or an empty string):
b = a.filter(Boolean);
//等价于
b = a.filter(x => return Boolean(x))
Array.isArray(arr) ? arr.filter(Boolean) : []
Symbol
- 描述:
- symbol基本数据类型
- Symbol创建唯一的属性名
- 方法
- Symbol.for()
从全局注册表设置和获取symbol
- Symbol.for()
Map对象
描述:
- 用来保存键值对的集合(键值对数组),任何类型都可以作为属性或值
- 设置键值
- 使用for of进行遍历
// 方法一:使用May set get方法
let myMap = new Map();
myMap.set(0,function(){});
myMap.set(1,{a:"a"});
myMap.set(3,'string');
// 获取值
myMap.get(0)
// 方法二:
let myMap = new Map([
['a', {key:'001', placeholder:'请输入', initProps:{}}],
['b', {key:'002', placeholder:'请输入', initProps:{}}]
]);
myMap.get('a') //获取值:
迭代
let myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
for (let [key, value] of myMap) {
console.log(key + " = " + value);
}
- 与对象的区别:
- Map在默认情况下没有任何键,对象原型链上继承了键
- Map键的类型是任意类型
- Map键是有序的,不过现在obj也是有序的
- Map的个数Size用方法可以获取
- Map可以直接迭代
- Map频繁增减键值时性能好些
- Map转对象
let map = new Map([['a','one'],['b','two'],['c','three']]);
//希望得到{a: 'one',b: 'two', c: 'three'} 怎么做?
let obj = Object.fromEntries(map);
//那么对象怎么转为Map?