JavaScript实用小技巧

时间:2021-11-05 16:05:09

JavaScript的几个小技巧

1.String转换数字

//String 转换数字
var oString = + "2134443";
console.log(typeof oString);  //number

2.取整数的几种办法

var oNb1 = ~~3.1415926;     //取整数
console.log(oNb1);          //3 var oNb2 = 3.1415926>>0;    //取整数
console.log(oNb2);          //3 var oNb3 = 3.1415926^0;     //取整数
console.log(oNb3);          //3  
var oNb4 = 3.1415926|0;     //取整数
console.log(oNb4);          //3

 3.new Date() 时间转数字(时间戳)

//时间转数字(时间戳)
var oTime = + new Date();
console.log(oTime);  //1492664825138

4.强制转换布尔类型

//转换布尔类型 true
var oBoolean = "a";
console.log(!!oBoolean);  //true

5.setTime中获取其作用域外的变量

//setTimeout 中获取其作用域外的变量
for(var i = 0; i < 10; i++) {
    (function(i){
        setTimeout(function(){
            console.log(i);  //0-9
        },100);
    })(i)
}

6.从数组中随机获取一个值

var arr = [11, 875 , 'as' , ggf , 512 , 'foo' , 3221, , '222' , rec , 119];
var mathArr = arr[Math.floor(Math.random() * arr.length)];

7.获取指定范围的随机数

var x = Math.floor(Math.random() * (max – min + 1)) + min;

8.获取数组中的最大值和最小值

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
var maxInNumbers = Math.max.apply(Math, numbers);
var minInNumbers = Math.min.apply(Math, numbers);

9.用json序列化和反序列化

var person = {name :'Saad', age : 26, department : {ID : 15, name : "R&D"} };
var stringFromPerson = JSON.stringify(person);
/* stringFromPerson 结果为 "{"name":"Saad","age":26,"department":{"ID":15,"name":"R&D"}}" */
var personFromString = JSON.parse(stringFromPerson);
/* personFromString 的值与 person 对象相同 */

10.使用switch/case代替一大叠的if/else

当判断有超过两个分支的时候使用switch/case要更快一些,而且也更优雅,更利于代码的组织,当然,如果有超过10个分支,就不要使用switch/case了。