betway必威-betway必威官方网站
做最好的网站

【必威官方网站】JS权威指南

DOM.map(callback(index,domElement));

这篇博文主要针对js原生api做一个学习记录的过程,希望对js有进一步的认识,可以更高效的使用。

JS权威指南

  • 书中错误
    • p161,isArray 函数中的 Function.isArray => Array.isArray

对匹配元素执行函数对象。

1.Array

concat函数 : 将多个数组组合成新的数组;
copywithin函数:将数组指定位置元素复制到另一指定位置元素;
entries函数:返回数组对应的键值对的迭代器;
every函数:检查数组所有元素是否都满足条件;
fill函数:将数组元素值重置为一个固定值;
filter函数:返回数组内所有符合条件的元素组成新数组;
find函数:返回数组内符合条件的第一条数据;
findIndex函数:返回数组内符合条件的第一条数据的位置;
foreach函数:数组做一次迭代循环;
indexOf函数:检索元素在数组内的位置;
includes函数:判断数组中是否包含某元素;
join函数:连接数组所有元素组成字符串;
keys函数:返回数组的迭代器对象,包含数组的所有键;
map函数: 根据自定义函数创建新数组;
pop函数:删除数组的最后一个元素并返回该元素;
push函数:在数组末尾添加元素并返回数组的新长度;
reduce函数:运用累加器的原理汇总数组的所有数据;
reverse函数:将数组序列进行倒排;
shift函数:删除元素的第一个元素,并返回该元素;
slice函数:根据起始位置和结束位置复制数组并返回新数组;
some函数:判断数组是否存在一个元素满足条件;
sort函数:通过自定义排序规则将数组进行重新排序;
splice函数:对数组进行删除元素或添加新元素的操作;
unshift函数:在数组头部添加多个元素并返回数组新长度;

--- 对象 ---

返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以得到基础的数组。

2.Object

对象属性

  1. constructor

constructor 指代创建这个对象的构造函数;

返回数据类型是object。 

静态方法API:

  • assign:将所有可枚举的属性值从源对象拷贝到目标对象;
  • create:通过原型对象及其属性创建新对象;
  • defineProperties:给对象添加多个属性并分别指定它们的配置;
  • defineProperty:给对象添加一个属性并指定该属性的配置;
  • entries:返回一个属性键值对数组;
  • freeze:冻结对象,使其不可修改;
  • getOwnPropertyDescriptor:返回对象指定的属性配置;
  • getOwnPropertyDescriptors:返回对象所有属性配置;
  • getOwnPropertyNames:返回对象所有属性名数组;
  • getOwnPropertySymbols:返回对象所有 symbol 属性键;
  • getPrototypeOf:返回指定对象的原型对象;
  • is:判断两个值是否严格相等;
  • isExtensible:判断对象是否可扩展;
  • isFrozen:判断对象是否已冻结;
  • isSealed:判断对象是否已密封;
  • keys:返回对象所有自由可遍历属性名称;
  • preventExtensions:阻止对象扩展;
  • seal:密封对象,以防删除;
  • setPrototypeOf:设置对象原型;
  • values:返回对象属性值数组;

对象方法

  1. obj.hasOwnProperty('x')

检测指定的名字是否为对象的自有属性

  1. Object.keys(o)

keys() 返回对象 o 所有自有属性的名称组成的数组

  1. Object.getOwnPropertyNames(o)

返回对象 o 所有自有属性的名称(包括不可枚举属性)组成的数组

  1. Object.getOwnPropertyDescriptor({x: 1}, 'x')

返回对象特定属性的属性描述符

  1. Object.defineProperty(o, 'x', {get: function () { return 2 } } )

设置属性的特性

  1. Object.create()

创建一个拥有指定原型和若干个指定属性的对象

  1. Object.prototype.isPrototypeOf(o)

检测一个对象是否是另一个对象的原型

  1. Object.isExtensible(o)

判断对象是否可以扩展

  1. Object.preventExtensions(o)

可将对象设置为不可扩展

  1. Object.seal(o)

将当前已有的 configurable 设置为 false(不可删除,但可写,也可转换为只读)

  1. Object.freeze(o)

将当前对象冻结(configurable、writable 都会被设置为 false

  1. getPrototypeOf(o)

返回指定对象的原型

 

实例方法API:

  • hasOwnProperty:判断对象是否自有该属性;
  • isPrototypeOf:判断属性是否在对象原型链上;
  • propertyIsEnumerable:判断属性是否可吗,枚举;
  • toString:返回对象的字符串表示;
  • valueOf:返回对象原始值;

三类javascript对象

  • 内置对象(数组,函数,日期和正则)是由 ECMAscript 定义的对象或类;
  • 宿主对象是由js解释器所嵌入的宿主环境定义的;
  • 自定义对象是由运行中的 js 代码创建的对象;

判断对象的类型

var toString = Object.prototype.toString;
function getType(obj){
    return toString.call(obj).slice(8, -1);
}
// ---eg---: 
var o = {};
getType(o);     //"Object"

//简便方式
[].toString.call(5).slice(8, -1)      // 'Number'

对象特性

  1. 对象的原型指向另外一个对象,本对象的属性继承自它的原型对象;
  2. 对象的类 class 是一个标识对象类型的字符串;
  3. 对象的扩展标记指明了是否可以向该对象添加新属性;

对象的三个属性

  • 原型 prototype:原型属性是用来继承属性的
  • class
  • 可扩展性 extensible attribute
var p = {x: 1};
var o = Object.create(p);
Object.prototype.isPrototypeOf(o);

两类属性

  • 自有属性是直接在对象中定义的属性;
  • 继承属性是在对象的原型对象中定义的属性;

对象属性特性

  1. 可写 writable attribute,表明是否可以设置该属性的值;
  2. 可枚举 enumerable attribute,表明是否可以通过 for/in 循环返回该属性。当值为 false 时,Object.keys(obj),该属性不会被列出。
  3. 可配置 configurable attribute,表明是否可以删除或修改该属性;

本文由betway必威发布于网页设计,转载请注明出处:【必威官方网站】JS权威指南

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。