via http://www.cnblogs.com/chenguangyin/archive/2012/12/10/2812122.html 代码略有改动。

正确的代码说明一切问题。

代码时间

转换字符串为数字。

var str = '3.14';

//强制转换
Number(str);
//隐式转换
+str;
//故意与数字计算
str - 0;

//使用函数
parseInt(str);		//取整
parseFloat(str);	//转换浮点

关于各种数据隐式转换Boolean,给一个测试例子吧。

//测试数据
var testData = [true, false, 'soulteary', '', 123, Infinity, 0, NaN, {}, null, undefined];

for(var oo in testData){
		console.log(!!testData[oo],typeof testData[oo], testData[oo]);
}

//或者直接强制转换
Boolean("你的变量");
//双否运算直接强制转换你懂的
!!testData

创建多维数组

//创建定长的数组
var arr = new Array(2);
	arr[0] = new Array(2);
	arr[1] = new Array(2);
	arr[0][0] = 0.0;
	arr[0][1] = 0.1;
	arr[1][0] = 1.0;
	arr[1][1] = 1.1;

//创建不定长的数组
var arr = new Array();
	arr[0] = new Array();
	arr[1] = new Array();
	arr[0][0] = 0.0;
	arr[0][1] = 0.1;
	arr[1][0] = 1.0;
	arr[1][1] = 1.1;

//创建索引不连续的
//PS.不连续的数组大小算你的最后索引加一
var arr = new Array();
	arr[0] = new Array();
	arr[1] = new Array();
	arr[0][0] = 0.0;
	arr[0][6] = 0.1;	//arr[0].length 为 7
	arr[1][0] = 1.0;
	arr[1][1] = 1.1;

//简写
var arr =[[],[]];
	arr[0][0] = 0.0;
	arr[0][1] = 0.1;
	arr[1][0] = 1.0;
	arr[1][1] = 1.1;

//再简写
var arr =[[0.0, 0.1],[1.0, 1.1]];

防止被iframe

//防止被iframe
if(top !== window) {
	top.location.href = window.location.href;
}

正则对象结果转数组的思路

var testStr = '12a3@4!d5ff6gg7hh890';
var rule = /\d/g;
var regexp = testStr.match(rule, testStr);

var arr = [];

for(var i = 0, len = regexp.length; i < len; i++) {
	arr.push(regexp[i]);
}

console.log(arr);

第二种思路

var testStr = '12a3@4!d5ff6gg7hh890';
var rule = /\d/g;
var arr = [];
testStr.replace(rule, function(){
	arr.push(arguments[0]);
})

console.log(arr);

第三种思路

var testStr = '12a3@4!d5ff6gg7hh890';
var rule = /\D/g;
var arr = [];
var delimiter = '::';
arr = testStr.replace(rule, delimiter).split(delimiter);
console.log(arr);

第四种思路

var testStr = '12a3@4!d5ff6gg7hh890';
var rule = /(\d)/g;
var arr = [];
while(rule.test(testStr)){
	arr.push(RegExp.$1);
}

console.log(arr);

数据寻找最大值(直接比较)

var arr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
var max = arr[0];

for(var i in arr) {
	if(arr[i] > max) {
		max = arr[i];
	}
}

console.log(max);

内置Math函数方法

var arr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
var max = Math.max.apply(this, arr);

console.log(max);

数字取整

var data = 3.14;

var theMethod = [];
//常规方法
theMethod.push( Math.floor(data) );
//常规方法
theMethod.push( parseInt(data) );
//常规方法
theMethod.push( data.toFixed(0) );

//只可用于不小于0的数
theMethod.push( data>>>0 );
//正负数都可用
theMethod.push( ~~data );

console.log(theMethod)

避免精度问题 如:0.1+0.2 != 0.3

var a = 0.1;
var b = 0.2;
var c = 0.3;

console.log( a+b == c );

console.log( (a+b).toFixed(1) == c );

整数前补0 一般方法:

var addZero = function(num, n) {
	var len = num.toString().length;
	while(len < n) {
		num = "0" + num;
		len++;
	}
	return num;
}
console.log(addZero(5, 8));//输出 00000005

简洁方法:

var addZero = function(num, n) {
	y = '00000000000000000000000000000' + num;
	return y.substr(y.length - n);
}
console.log(addZero(5, 8));//输出 00000005

动态添加:

var addZero = function(num, n) {
	return new Array(Math.max(0,n + 1 -num.toString().length)).join("0") + num;
}
console.log(addZero(5, 8));//输出 00000005