js小技巧(持续更新)

时间:2021-05-01 06:37:33

1、检查变量是否存在

var somevar="";

if(somevar){  //这种情况下,返回false

}

  if(typeof somevar!=="undefined"){ //这种情况下返回true

  //测试变量是否已经被初始化

}

2、逻辑运算符的优先级

   ()>!>&&>||  (尽量使用括号来设定优先级,这样代码才有更好的可读性)

3、惰性求值

   var b=5;

   true||(b=6); //true

   true||"something";   //true

   var c=true&&(b=6) //c=6

  true&&"something" //"something"

  true&&something&&true // true

  如果javascript引擎在一个逻辑表达式中遇到了一个非布尔值的操作数,那么该操作数的值就会成为该表达式所返回的结果

4、js中的6个falsy值

 空字符串""。

 null。

 undefined。

 数字0.

 数字NaN。

 布尔值false;

5、js中能处理的数字范围

 最大值: 1.79e+308 //将1.79的小数点往右移动308位

 最小值: 5e-324 //将5的小数点位往左移动324位

6、使用Object.prototype.toString.call()来判断数据类型

var toString=Object.prototype.toString;

console.log(toString.call([123]));//[object Array]
console.log(toString.call('123'));//[object String]
console.log(toString.call({a: '123'}));//[object Object]

console.log(toString.call(function(){alert("这是个函数")}));//[objectFunction]
console.log(toString.call(/123/));//[object RegExp]
console.log(toString.call(123));//[object Number]
console.log(toString.call(undefined));//[object Undefined]
console.log(toString.call(null));//[object Null]

7、charCodeAt()

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

如果charCodeAt()返回的数字大于255,则表示当前字符是汉字 8、apply()

Function.apply(obj,args)方法能接收两个参数

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

apply可以将一个数组默认的转换为一个参数列表(将[1,2,3]转换为 1,2,3)
示例:将二维数组转换为一维数组

var ary=[[1,2,3],4,5,[6,7,8]]; var v=Array.prototype.concat.apply([],ary); console.log(v);//[1,2,3,4,5,6,7,8]