Object内置类

Object.keys();

语法:Object.keys(对象obj); 获取obj中所有“非Symbol”的”私有”属性{前提:可枚举的} 结果:包含属性名的数组

Object.getOwnPropertySymbols();

语法:Object.getOwnPropertySymbols(对象obj); 获取obj中所有symbol类型的私有属性

  1. Object.prototype.aaa = 'AAA';
  2. let obj = {
  3. name: 'zhufeng',
  4. age: 12,
  5. 0: 100,
  6. [Symbol('AA')]: 200
  7. };
  8. let r1=Object.keys(obj);
  9. let r2=Object.getOwnPropertySymbols(obj);
  10. console.log(r1);// ["0", "name", "age"]
  11. 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 转换为数组

  1. function fn(){
  2. let arr=Array.from(arguments);
  3. arr.forEach(item=>{
  4. console.log(item);
  5. })
  6. }
  7. fn(1,2,3);

Array.isArray([Val]);

检测val值是否是数组