您的位置:首页 > Web前端 > JavaScript

JS学习笔记-几个有趣的东西

2016-06-21 10:12 441 查看
最近比较详细地翻阅了一下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函数将参数从数组过滤掉。

后面会持续更新,同时欢迎大家补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: