您现在的位置:首页 --> JavaScript --> javascript运算/转换技巧
javascript运算/转换技巧
浏览:2709次 出处信息
1、字符串转换为数值
常规方法:
varvar1 = parseInt("2"); varvar2 = parseFloat("2"); varvar3 = Number("2"); varvar3 = newNumber("2");
简便方法:
varvar1 = +("2"); console.log(arr);//Number
2、将其他类型转换为boolean类型
在JavaScript中,所有值都能隐式的转化为Boolean类型:
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
建议继续学习:
- STRUTS2类型转换错误导致OGNL表达式注入漏洞分析 (阅读:9119)
- PHP数据类型隐性转换的陷阱 (阅读:2951)
- 编写安全代码:再论整数类型转换 (阅读:2620)
- JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] ) (阅读:2590)
- 弱类型?C语言参数提升带来的一个陷阱 (阅读:2151)
- PHP类型转换相关的一个Bug (阅读:1967)
- 当类型转换表达式遇上自定义转换操作 (阅读:1507)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:使用 SourceMap 来进行前端代码调试
后一篇:IE BUG相关文章集合 >>
文章信息
- 作者:九监九介 来源: 深海博客
- 标签: 类型转换
- 发布时间:2012-12-18 23:20:19
建议继续学习
近3天十大热文
- [66] Oracle MTS模式下 进程地址与会话信
- [65] Go Reflect 性能
- [64] 如何拿下简短的域名
- [59] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [58] IOS安全–浅谈关于IOS加固的几种方法
- [52] 视觉调整-设计师 vs. 逻辑
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 界面设计速成