个人收集的JS知识点

1.js计时器  console.time(name)和console.timeEnd("同一name")

console.time('计时');for(var i=0; i<100000; i++){}console.timeEnd('计时');

可以用来统计一段代码运行时间。

2.Object.keys()方法 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,常用来遍历对象的属性或者判断一个map是否有值。

Object.keys(def["oneofs"]).forEach(function(name) {                                obj.addChild(oneofs[name] = new Reflect.Message.OneOf(this, obj, name));                            }, this);
let v2n: { [key: string]: number } = multV2n[0]        if (!v2n || Object.keys(v2n).length == 0) {            return null        }

3.array.map()  返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

let r = res.map(item => {    return {        title: item.name,        sex: item.sex === 1? '男':item.sex === 0?'女':'保密',        age: item.age,        avatar: item.img    }})

4.typeof 和instanceof 区别 

    4.1 typeof返回结果是该类型的字符串形式表示(number、string、undefined、boolean、function、object)

    4.2 instanceof是用来判断 A 是否为 B 的实例

5.将数组清空的另外一种方法Array.length = 0

6.call()方法和apply()    每个函数都包含两个非继承来的方法:call方法和apply方法,这两个方法的作用是一样的,都是在特定的作用域中调用函数。

    6.1 区别 接收参数的方式的不同。call可以传多个参数,apply的第二个参数是一个数组。

 function add(c,d) {        return this.a+this.b+c+d    }    var s={a:1,b:2}    console.log(add.call(s,3,4)) //1+2+3+4 = 10    console.log(add.apply(s,[5,6])) //1+2+5+6 = 14

7.function属性prototype的作用  function.prototype返回funciton原型,可以用来方便扩展function对象

    //定义一个函数    function say(){        }    //给函数的属性prototype赋予一个方法get    say.prototype.get=function(value){        return value;    }

8.判断某个对象是否为空

if(a){            //do something        }

注意:当a为整数时且a为0时,if(a) ==false,要注意这个雷区

9.splice()  这个方法不仅可以删除元素、数组也可以向数组插入元素和数组

for (let index = 0; index < this.clubRoomInfoArr.length; index++) {                const element = this.clubRoomInfoArr[index];                if (element.roominfo.roomKey == roomid) {                    for (let j = 0; j < element.userArr.length; j++) {                        const usrinfo = element.userArr[j];                        if (usrinfo.id == playerId) {                            element.userArr.splice(j, 1) //删除一个元素                            break;                        }                    }                    break;                }            }
 splice(start: number, deleteCount: number, ...items: T[]): T[]; //deleteCount传入0时就会添加元素 if (cardType == CardType.zhadan) {      replaceCardIdArr.splice(0, 0, replaceCards) //插入牌  } else {      replaceCardIdArr.push(replaceCards)  }

10.slice() 和contact()

    10.1 slice()的作用是提取数组一部分组成一个新的数组或截取一部分字符串 注意返回的是新数组或新字符串

var arr = new Array(3)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"console.log(arr)console.log(arr.slice(1))console.log(arr)输出:George,John,ThomasJohn,ThomasGeorge,John,Thomas

    10.2contact()连接数组或字符串

var str1 = "Hello ";var str2 = "world!";var n = str1.concat(str2);

温故而知新!

好了,今天就分享这么多,喜欢我的朋友请关注公众号!

猜你喜欢

转载自blog.csdn.net/lily19891000/article/details/106438133