常用的javascript小技巧
-
字符串转换为数值
常规方法:
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
-------------------------------------------------------------------
字符串连接的性能问题应该很经典了,就不详细介绍了。
欢迎大家补充!
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · JavaScript 开发者都应该知道的十个概念
- · JAVASCRIPT随机数
- · JavaScript面向对象编程
- · 你不得不知道的10个JS框架
- · 最流行JavaScript库是什么?
- · 小程序可以绑定其它小程序吗?
- · vue3+vite+多环境发面到二级目录配置
- · 微信小程序防止事件穿透防止事件冒泡
- · 普通链接二维码跳转小程序
- · 解决flex-direction: column 之后元素宽度自动变为100%
- · vue/react/node/vite/npm/yarn build自动更新版本号
- · getVisitDistribution 访问来源定义(访问来源 key 对应关系)