您现在的位置:首页 --> JavaScript --> javascript运算/转换技巧
javascript运算/转换技巧
浏览:3156次 出处信息
1、字符串转换为数值
常规方法:
varvar1 = parseInt("2");
varvar2 = parseFloat("2");
varvar3 = Number("2");
varvar3 = newNumber("2");简便方法:
varvar1 = +("2");
console.log(arr);//Number2、将其他类型转换为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表达式注入漏洞分析 (阅读:9828)
- PHP数据类型隐性转换的陷阱 (阅读:3614)
- 编写安全代码:再论整数类型转换 (阅读:3470)
- JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] ) (阅读:3082)
- 弱类型?C语言参数提升带来的一个陷阱 (阅读:2730)
- PHP类型转换相关的一个Bug (阅读:2444)
- 当类型转换表达式遇上自定义转换操作 (阅读:2149)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:使用 SourceMap 来进行前端代码调试
后一篇:IE BUG相关文章集合 >>
文章信息
- 作者:九监九介 来源: 深海博客
- 标签: 类型转换
- 发布时间:2012-12-18 23:20:19
建议继续学习
近3天十大热文
-
[917] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[54] 整理了一份招PHP高级工程师的面试题 -
[52] Innodb分表太多或者表分区太多,会导致内 -
[52] 海量小文件存储 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[51] 全站换域名时利用nginx和javascri -
[50] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[48] jQuery性能优化指南

