Object内置类
Object.keys();
语法:Object.keys(对象obj); 获取obj中所有“非Symbol”的”私有”属性{前提:可枚举的} 结果:包含属性名的数组
Object.getOwnPropertySymbols();
语法:Object.getOwnPropertySymbols(对象obj); 获取obj中所有symbol类型的私有属性
Object.prototype.aaa = 'AAA';
let obj = {
name: 'zhufeng',
age: 12,
0: 100,
[Symbol('AA')]: 200
};
let r1=Object.keys(obj);
let r2=Object.getOwnPropertySymbols(obj);
console.log(r1);// ["0", "name", "age"]
console.log(r2);//[Symbol('AA')]
Object.assign()
合并两个对象,让obj2中的信息替换obj1中的信息,返回的是obj1的地址「obj1对象被修改了」
用来合并两个对象
Object.create()
创建一个新对象
Object.defineProperty()
数据劫持
Object.freeze()
数据冻结
Object.getPrototypeOf()
语法:Object.getPrototypeOf(object) 参数:要返回其原型的对象 返回值:给定对象的原型。如果没有继承属性,则返回 null 。
Object.is()
方法判断两个值是否为同一个值。
Object.create()
方法创建一个新对象,使用现有的对象来提供新创建的对象的proto。
Object.create(obj):创建一个空对象,并且把obj作为它的原型「空对象.proto===obj」
- obj必须是一个对象或者null
- Object.create(null) 创建一个空对象,但是没有proto
Array内置类
Array.from([val])
值转换为数组 例子如下 arguments 转换为数组
function fn(){
let arr=Array.from(arguments);
arr.forEach(item=>{
console.log(item);
})
}
fn(1,2,3);
Array.isArray([Val]);
检测val值是否是数组