IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

javascript运算/转换技巧

深海博客 2012-12-18 23:20:19 累计浏览 3,513 次
本机暂存

1、字符串转换为数值

常规方法:

varvar1 = parseInt("2");
varvar2 = parseFloat("2");
varvar3 = Number("2");
varvar3 = newNumber("2");

简便方法:

varvar1 = +("2");
console.log(arr);//Number


2、将其他类型转换为boolean类型

在JavaScript中,所有值都能隐式的转化为Boolean类型:

Javascript数据转换
举例:

0 == false; // true
1 == true; // true
''== false// true
null== false// true

我们也可以显示转化为Boolean类型:

vara = Boolean("Hello"); //true

更简单的方法:

vara = "Hello";
varb = !!a;
console.log(b);//true

3、阻止别人在iframe中加载你的页面

防止把你的网页通过iframe嵌入它自己的网页,这段代码应该放在每个页面的head中。

if(top !== window) {
   top.location.href = window.location.href;
}

4、将arguments参数对象转换为数组

在JavaScript中,函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象。 它具有length属性,但是没有数组对象的slice, push, sort等函数,而这些有时我们经常在函数里用到,所以我们需要把参数转换为真正的数组:

functionchangeArgu() {
    vararr = Array.prototype.slice.call(arguments, 0);
    returnarr;
}

5、获取数字数组中的最大值

常规方法:

vararr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
varmax = arr[0];
for(vari inarr) {
    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);

简便方法:

vararr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
varmax = Math.max.apply(null, arr);
console.log(max);

6、修正类似于0.1+0.2 != 0.3的错误

在JavaScript中,数字是基于IEEE754的数值,所以会出现浮点运算误差的情况,这是使用IEEE754的通病,不是语言本身的问题:

varnum = 0.1 + 0.2; // 0.30000000000000004
console.log(num == 0.3); // false

修正方法:

varnum = 0.1 + 0.2; // 0.30000000000000004
console.log(num);
/*你可以通过toFixed方法指定四舍五入的小数位数:*/
console.log(num.toFixed()); // "0"
console.log(num.toFixed(1)); // "0.3"

7、整数前补0

普通方法:

/*注意,这里的n表示数字num补0后的位数*/
functionaddZero(num, n) {
  varlen = num.toString().length;
  while(len < n){
    num = "0"+ num;
    len++;
  }
  returnnum;
}
console.log(addZero(5,8)); //00000005

简单方法:

functionaddZero(num, n) {
   y='00000000000000000000000000000'+num;
 /*
这里0的数目可调整
*/
   returny.substr(y.length-n);
}
console.log(addZero(5,8)); //00000005

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,349)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,849)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,762)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
  8. 什么是全栈工程师? (累计阅读 14,038)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)
  10. 7 天打造前端性能监控系统 (累计阅读 11,187)