Javascript Api及常用方法

Javascript 有很多原生的Api以及很多简便操作就可以得到想要的结果,下面列出部分Api,新Api内容后续不断更新。

& (按位与)

判断一个数是否为2的n次幂。

1
2
var number = 8;
(number & number -1) === 0// true

^ (按位异或)

不用第三个变量,就可以实现两个变量的值交换,是不是觉得很方便。

1
2
3
4
var a = 100,b = 50;
a = a ^ b; // 86
b = a ^ b; // 50
a = b ^ a; // 100

<< >> (位移计算)

<< 左位移相乘,>> 右位移相除,在做右位移的时候,前面的数不能为1,因为1右位移除0外的任何数为0。

1
2
3
4
5
1<<2;    //1*2的2次方
4<<2;    //4*2的2次方

8>>2; //8/2的2次方
16>>3; //16/2的3次方

Date 操作

格式化当前时间。

1
2
3
4
var temp = new Date();
var regex = /\//g;
(temp.toLocaleDateString() + ' ' + temp.toLocaleTimeString().slice(2)).replace(regex,'-');
// "2015-7-28 17:00:10"

将格式化后的时间转成时间对象。

1
2
new Date("2015-7-28 17:00:10");
//Tue Jul 28 2015 17:00:10 GMT+0800 (中国标准时间)

将时间对象转成时间戳,使用valueOf()。

1
2
3
4
5
6
(new Date).valueOf();

+new Date;

+new Date("2015-7-28 17:00:10");
//1438074010000

+ (一元加)

将字符串数字转成数字型数字。

1
2
3
var number = "100";
typeof number; // string
typeof +number; // number

快速转成字符串类型。

1
2
3
var number = 100;
number = number +'';
typeof number; //string

!! Boolean 类型转换

1
2
var num = 3.14;
!!num; //true

小数点保留 (toFixed)

参数范围为0-20,不写默认0。

1
2
3
number.toFixed();  // "12346"
number.toFixed(3); // "12345.679"
number.toFixed(6); // "12345.678900"

去除小数点(Math)

1
2
3
4
var num = 3.14;
Math.ceil(num);//4 取最大整数
Math.floor(num);//3 取最小整数
Math.round(num);//3 四舍五入

清空数组(length)

1
2
3
var arr = [1,2,3];
arr.length = 0;
console.log(arr);//[]