-
数组拼接:
arr.splice();原数组会被修改;方法的如果有一个参数表示从参数开始位置到结尾删除,改方法返回删除的数组;
如果有两个参数表示,参数开始的位置,截取第二个参数长度返回;
如果有很多参数,参数一开始删除参数二的长度,从删除的位置添加参数三,参数四...;
查看全部 -
返回部分数组(会修改原数组):
arr.slice(a,b);a,b分别是索引,需要截取的开始和结束,如果为负则则从后往前开始截取
查看全部 -
数组合并:
arr.concat();(不会改变原数组)
详见下图:
查看全部 -
将数组转为字符串
join(),如果不写,默认逗号隔开,写分隔符,用分隔符隔开;
特殊应用:
function repeatString(str,n){
return new Array(n+1).join(str);
};
repeatString('a',3);
将数组逆序:arr.reverse();原数组会被修改
arr.sort();数组排序,数组元素会被转为字符串排序,而且数组本身会被修改;如果里面传入比较函数,会按比较函数排序,负数排在前面,等号原位置不变,正数排在后面
查看全部 -
数组的方法
查看全部 -
二维数组遍历
查看全部 -
数组迭代,数组的原型链Array.prototype添加属性会影响最后的结果,因此数组里面加判断arr.hasOwnProperty(i);
查看全部 -
数组元素增删:
arr.unshift(value); 在数组的开头添加一个元素(添加的元素就是里面的值)arr.push(value): 在数组的结尾添加一个元素(添加的元素就是里面的值)
delete可以删除元素,原本位置的值变为undefined;
arr.length -= 1; 删除最后一个元素;
arr.pop();删除最后一个元素;
arr.shift();删除第一个元素;
查看全部 -
函数声明会被预先处理,所以如果在声明之前调用函数也是可以的。
for in 遍历:
顺序不确定
enumerable为false时不会出现
for in 对象属性受原型链影响
查看全部 -
javascript没有块级作用域
var a=b=1 会隐式的吧 b转换为全局变量
查看全部 -
Mark查看全部
-
typeof
instanceof
Object.protootype.toString
constructor
duck type
查看全部 -
自定义序列化:
对象里定义toJSON方法返回数据
查看全部 -
对象序列化:
JSON.stringify(obj);
注意点:
如果值为underfined,不会出现在序列化里面,如果为NaN,infinity:会转化为null,如果是new Date()会转化为UTC的时间格式;
对象格式化:
JSON.parse('{"key":value}')
查看全部 -
extensible标签表示对象是否可以扩展(对象是否可以添加);
Object.isExtensible(obj):返回true表示对象可扩展;
Object.preventExtensible(obj);对象将不可扩展;
Object.seal(obj);对象上的属性都不可修改
Object.isSealed(obj); 判断对象是否被隐藏,隐藏返回true;
Object.freeze(obj);冻结对象的所有属性(不可写,不可更改)
Object.isFrozen(obj):查看对象是否被冻结,是返回true;
查看全部
举报