javascript一些小技巧

作者:互联网   出处:控件中国网   2014-11-05 19:06:17   阅读:1

 字符串转换为数值

 
常规方法:
 
var var1 = parseInt("2");
var var2 = parseFloat("2");
var var3 = Number("2");
var var3 = new Number("2");
简便方法:
 
var var1 = +("2");
将其他类型转换为boolean类型
在JavaScript中,所有值都能隐式的转化为Boolean类型:
 
数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零数字值(包括无穷大) 0、NaN
Object 任何对象 null
Undefined (不适用) undefined
举例:
 
0 == false; // true
1 == true; // true
'' == false // true
null == false // true
我们也可以显示转化为Boolean类型:
 
var a = Boolean("Hello"); //true
更简单的方法:
 
var a = "Hello";
var b = !!a;
创建多维数组
一般方法:
 
 
var arr = new Array(2);
arr[0] = new Array(2);
arr[1] = new Array(2);
arr[0][0] = 1;
arr[0][1] = 2;
arr[1][0] = 3;
arr[1][1] = 4;
 
简便方法:
 
var arr = {};
arr[[0, 0]] = 1;
arr[[0, 1]] = 2;
arr[[1, 0]] = 3;
arr[[1, 1]] = 4;
阻止别人在iframe中加载你的页面
防止把你的网页通过iframe嵌入它自己的网页:
 
if(top !== window) {
   top.location.href = window.location.href;
}
这段代码应该放在每个页面的head中。
 
将arguments参数对象转换为数组
在JavaScript中,函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象。 它具有length属性,但是没有数组对象的slice, push, sort等函数,而这些有时我们经常在函数里用到,所以我们需要把参数转换为真正的数组:
 
function func() {
    var arr = Array.prototype.slice.call(arguments, 0);
    return arr;
}
遍历得到的正则结果
常规方法:
 
 
var str = "132ada5d6g3j";
var match = str.match(/\d/g, str);
var arr = [];
var j;
for(var i = 0, j = match.length; i < j; i++) {
    arr.push(match[i]);
}
console.log(arr);
 
快捷方法:
 
var str = "132ada5d6g3j"; 
var arr = []; 
str.replace(/\d/g, function() {
    arr.push(arguments[0]); 
}); 
console.log(arr);
另一快捷方法:
 
var str = "132ada5d6g3j"; 
var arr = str.replace(/\D/g,' ').split(' '); 
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];
    }
}
/*
 循环也可能是:
for(var i = 0 ,j = arr.length; i < j; i++) {
    if(arr[i] > max) {
        max = arr[i];
    }
}
 
*/
console.log(max);
 
简便方法:
 
var arr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
var max = Math.max.apply(null, arr);
console.log(max);
数字取整
常规方法:
 
var num = 5.63;
console.log(Math.floor(num));
其他方法1(只可用于不小于0的数):
 
var num = 5.63;
console.log(num>>>0);
其他方法2(正负数都可用,推荐):
 
var num = 5.63;
console.log(~~num);
修正类似于0.1+0.2 != 0.3的错误
在JavaScript中,数字是基于IEEE754的数值,所以会出现浮点运算误差的情况,这是使用IEEE754的通病,不是语言本身的问题:
 
var num = 0.1 + 0.2; // 0.30000000000000004
console.log(num == 0.3); // false
修正方法:
 
var num = 0.1 + 0.2; // 0.30000000000000004
console.log(num);
/*你可以通过toFixed方法指定四舍五入的小数位数:*/
console.log(num.toFixed()); // "0"
console.log(num.toFixed(1)); // "0.3"
整数前补0
普通方法:
 
 
 /*注意,这里的n表示数字num补0后的位数*/
function addZero(num, n) {
  var len = num.toString().length;
  while(len < n){
    num = "0" + num;
    len++;
  }
  return num;
}
console.log(addZero(5,8)); //00000005
 
简单方法:
 
 
function addZero(num, n) {
   y='00000000000000000000000000000'+num;
 /*
这里0的数目可调整
*/
   return y.substr(y.length-n);
}
console.log(addZero(5,8)); //00000005
 
-------------------------------------------------------------------
 
字符串连接的性能问题应该很经典了,就不详细介绍了。
Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat