Object

  • assign(target, ...sources),复制sources的自有可枚举属性到target,并返回target,复制过程用的是sources的[[Get]]与target的[[Set]];
  • create(proto, propertiesObject),使用指定的原型对象和自有可枚举属性创建一个对象;
  • defineProperty(target, propName, descriptor),给target添加或修改名为propName的属性,并指定属性描述符;
  • entries(target)返回target的自有可枚举属性的键值对数组,形如[ ['propA', '1'], ['propB', 2] ]
  • keys(target)返回target的自有可枚举属性的名称数组,形如['propA', 'propB']
  • values(target)返回target的自有可枚举属性的值数组,形如['1', '2']
  • preventExtensions(target)将target变为不可扩展;
  • freeze(target)冻结target;
  • seal(target)密封target;
  • is(a, b)比较a和b是否相等;
  • isExtensible(target),对象是否可扩展,frozen或sealed对象都不可扩展;
  • isFrozen(target),对象是否已冻结;
  • isSealed(target),对象是否已密封;
  • getOwnPropertyDescriptor(target, propName)返回指定属性名的descriptor;
  • getOwnPropertyNames(target)返回string类型的自有属性名数组,无关属性是否可枚举;
  • getOwnPropertySymbols(target)返回symbol类型的自有属性名数组,无关属性是否可枚举;
  • getPrototypeOf(target)返回target的原型对象;
  • setPrototypeOf(target, prototype)将target的原型对象设为prototype;
  • fromEntries
  • prototype.hasOwnProperty(propName),实例是否具有指定属性;
  • prototype.isPrototypeOf(target),实例是否在target的原型链上;
  • prototype.propertyIsEnumerable(propName),实例的propName属性是否是可枚举的;

注1:可借助new Map(Object.entries())快速便捷地构造一个Map;

注2:带有OwnProperty的方法,操作的都是自有属性;

注3:

  • 不可扩展(non-extensible):不能再添加新属性;
  • 密封(sealed):不能再添加新属性,已有属性标记为不可配置;
  • 冻结(frozen):不能再添加新属性,已有属性标记为不可配置,属性值不可写;

注4:is()不同于==:is不做强制转换;is()不同于===:is认为NaN等于NaN+0不等于-0

注5:Object.prototype, window, location的原型都是不可变的,无法通过setPrototypeOf修改;

Function

  • arguments,函数实参组成的类数组对象;
  • length,函数形参数量,不包括剩余参数和有默认值的参数;
  • prototype.bind(thisArg,arg1, arg2, ...),返回一个新函数,调用新函数时将this指向thisArg,并将arg1,arg2等作为参数传入新函数;
  • prototype.call(thisArg, arg1, arg2, ...),调用函数,将this指向thisArg,将arg1,arg2等作为参数传入;
  • prototype.apply(thisArg,argsArray),调用函数,将this指向thisArg,以数组或类数组形式传入参数argsArray;
  • Symbol
  • for(key)找到并返回全局symbol表中键为key的symbol,若不存在则新建一个再返回;
  • keyFor(sym)找到并返回全局symbol表中sym的key;
  • 其他还包含各种内置对象的方法名的Symbol版本,它们各自标识的方法或属性,将被内置对象的方法调用时(此处断句)调用,例如obj的自定义方法obj[Symbol.split] = function () {...}会被String.prototype.split(obj)调用,简单来说,某些Symbol版本的方法将覆盖同名方法;

注:new Function("...")只能创建全局作用域下的函数,函数内只能访问全局作用域或自身作用域,即使被封装进某个function funcA,也无法访问到funcA的作用域,例如:

1
2
3
4
5
6
var x = 10;

function createFunction1() {
var x = 20;
return new Function('return x;'); // 这里的 x 指向最上面全局作用域内的 x
}

Array

  • prototype.at(index),返回index索引处的元素;
  • prototype.indexOf(item),按索引的低到高顺序,查找并返回指定数组元素的索引;
  • prototype.lastIndexOf(item),按索引的高到低顺序,查找并返回指定数组元素的索引;
  • prototype.find((element, index) => {}),按索引的低到高顺序,返回第一个使给定函数返回true的元素;
  • prototype.findIndex((element, index) => {}),按索引的低到高顺序,返回第一个使给定函数返回true的元素索引;
  • prototype.findLast((element, index) => {}),按索引的高到低顺序,返回第一个使给定函数返回true的元素;
  • prototype.findLastIndex((element, index) => {}),按索引的高到低顺序,返回第一个使给定函数返回true的元素索引;
  • prototype.fill(item, start, end)修改原数组,从start(包含start)到end的元素被填充为item;
  • prototype.concat(arr1,arr2,...),返回实例与参数合并后的新数组,无参数则返回一个实例的浅拷贝;
  • prototype.every((element, index) => {}),每个数组元素都会调用给定函数,返回值都为true,则该方法返回true;
  • prototype.some((element, index) => {}),每个数组元素都会调用给定函数,返回值有一个为true,则该方法返回true;
  • prototype.includes(searchElement, fromIndex),从fromIndex开始查找,如果数组中存在searchElement,则返回true;
  • prototype.sort((a,b)=>{})原地操作,调用给定函数,按返回值排序(大于0则b在前,小于0则a在前),没有给定函数,则该方法将元素按Unicode字符序排序;
  • prototype.splice(start, deleteCount, item1, ...)修改原数组,从start开始(不包含start),删除deleteCount个元素,填入item1等参数;
  • prototype.slice(start, end)不修改原数组,返回从start到end(不包含end)的子数组;
  • prototype.filter((element, index) => {}),每个数组元素都会调用给定函数,返回使给定函数为true的元素组成的子数组;
  • prototype.map((element, index) => {}),每个数组元素都会调用给定函数,返回以给定函数返回值为元素的新数组;
  • prototype.push(item1, ...),将参数添加到数组尾;
  • prototype.pop(),删除并返回尾元素;
  • prototype.unshift(item1, ...),将参数添加到数组头;
  • prototype.shift(),删除并返回首元素;
  • prototype.reverse(),颠倒数组元素;
  • prototype.flat(depth),将嵌套深度为depth的数组元素提取到一维数组中并返回这个新数组;
  • prototype.reduce((pre, cur, curInx), initialValue),调用给定函数将元素减少到一个,initialValue有值,则初始时,pre取initialValue,cur取第一个,否则初始时pre取第一个,cur取第二个,初始执行后,给定函数返回值作pre,下一个元素做cur;
  • prototype.join(separator),返回以separator连接起来的所有元素组成的字符串;

String

Promise

RegExp