-
1、设置属性值时,如果当前对象没有这个属性,则会通过原型链向上查找这个属性。 2、如果原型上是通过get/set方法来定义的这个属性,那么读写都只会通过get/set方法;这种情况下只能通过Object.defineProperty来为当前对象添加这个属性。 3、如果原型上就是普通的属性赋值,那么会给当前对象增加一个属性 4、在原型链上使用 defineProperty() 方法添加属性后,实例如果需要添加同名属性则也要用 defineProperty() 方法。查看全部
-
比较查看全部
-
给对象赋值时,仅在该对象内查找,有则覆盖,无则创建。并不会去查找原型链, 如果想继续使用原型链上的z ,需要delete obj.z 。 obj.hasOwnProperty('z');判断z属性是否是原型上的属性; obj.z = undefined; 并不一定代表 obj 上没有z属性,可能是有,其值为undefined。查看全部
-
prototype 是对象自带的属性对象 对象构造: 除了本身被赋予的值之外,对象还有几个隐藏标签: proto:对象的对象属性prototype上的赋值 class:对象的种类 extensible:是否允许该对象继续增加新的属性 另外对象的值(如 x=1),也有对应的属性或方法,提供一些访问权限的控制 writable:是否可写 enumerable:是否能被删除 configurable:是否能够枚举 value:值 get/set:查看全部
-
数组和一般对象的相同点: 1.都可以继承 2.数组是对象,对象不一定是数组 3.都可以当做对象添加和删除属性 常见的如push(),unshift(),pop(),shift()等。 不同点: 1.数组自动更新length 2.按索引访问数组常比访问一般对象的属性明显迅速 3.数组对象继承Array.prototype上的大量数组操作方法。查看全部
-
indexOf 数组的检索 indexOf(a,b);a 是查找的元素 b是开始查找的位置 正数从左数的位置 负数从右数的位置 indexOf(元素); 返回的是元素的下标 不存在返回-1 lastIndexOf 从右往左查 判断是否是数组有 1. Array.isArray(arr) 2. arr instanceof Array 3. Object.prototype.toString.apply(arr) 4. arr.constructor === Array查看全部
-
every ,some 数组判断 every全部满足条件 some任意一个满足条件查看全部
-
filter查看全部
-
map查看全部
-
forEach查看全部
-
数组拼接: 原数组被改变 arr.splice(2); 2表示数组索引,从索引2到末尾的元素被删除。 arr.splice(2,3);2表示数组索引,3表示数组元素个数(从索引2开始,删除3个元素) arr.splice(1,1,'a','b'); a,b表示添加到数组的元素 ,添加在被删除元素的位置上查看全部
-
返回部分数组元素: 不改变原数组 arr.slice(1,3); arr.slice(从这个索引开始,到这个索引序号结束(不包括这个元素)) arr.slice(1); 从这个索引开始到末尾 arr.slice(1,-1); 从这个索引开始 ,-1表示数组元素的最后一个(不包含); arr.slice(-4,-3); 不包含第二个索引的元素查看全部
-
Array.prototype.concat数组合并,不会改变原数组。 var arr=[1,2,3] arr.concat(4,[5,6]); // [1,2,3,4,5,6] 其中参数为数组的[5,6]会被拉平(去掉大括号) arr.concat([4,[5,6]]);// [1,2,3,4,[5,6]] 但是参数数组不会被拉平两次查看全部
-
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。 现在有 arr=[1,15,8,9,85] 1-15 值为负,位置不变 15-8 值为正,互换位置 15-9 值为正,互换位置 15-85 值为负,位置不变 输出为[1,8,9,15,85]查看全部
举报
0/150
提交
取消