最近比较详细地翻阅了一下js资料,发现以下几个有趣的知识点
1、string类型不能改变单个字符值
如 var mystr ="BOb",如果你想改变mystr第一个字符的值,使用mystr[0]='j' 会报错
2、shift()分割数组:方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
如var ourArray = ["one","two","three"];myArray = ourArray.shift();得到myArray:"one",ourArray:["two","three"]
3、object对象删除prop属性:delete.obj.prop
4、对象声明方式
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
5、使用map遍历数组
如:将数组 var oldArray = [1,2,3,4,5]的每个数加3
var newArray = oldArray.map(function(val){
return val+3;
});
6、使用reduce计算数组总和
var array = [4,5,6,7,8];
var singleVal = array.reduce(function(a,b){
return previousVal+currentVal;
},0);
其中reduce的第二个参数0表示初始值,若不写则初始值默认为数组第一个数的值
7、使用filter过滤数组
var oldArray = [1,2,3,4,5,6,7,8,9,10];
var newArray = oldArray.filter(function(val){
return val<6;
});
得到的newArray=[1,2,3,4,5]
8、使用sort排序
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return a<b;
});
上面的a<b也可以用b-a代替
9、其他数组函数
reverse():倒置
split():将字符串按照某一分隔符分隔成数组
join:将数组按照某一连接符连接成字符串
10、js 参数对象
function destroyer(arr) {
var arrFilter = Array.prototype.slice.call(arguments, 1);
return arr.filter(function(val){
for(var i = 0; i<arrFilter.length;i++){
if(val===arrFilter[i]){
return false;
}
}
return true;
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);//return [1,1]
上面这个函数实现了从数组中去掉其他参数的功能,那么这是怎么实现的呢?
我们先来看看方法声明destroyer(arr)和方法调用destroyer([1, 2, 3, 1, 2, 3], 2, 3),由于js可省略参数声明,故我们可知arr代表[1,2,3,1,2,3]
然后观察方法体, Array.prototype.slice.call(arguments, 1)表示将参数从1开始取出并放到数组中
最后通过调用filter函数将参数从数组过滤掉。
后面会持续更新,同时欢迎大家补充