← 返回博客列表

JavaScript小技巧(1)

Vic.Wang2017/04/27625 阅读0 喜欢最近更新 2026/07/09 12:50:45

本文写于 2017 年,距今已有 9 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。

分享一些 JavaScript 小技巧,可以用来装逼装深沉哟!

1、数值边界判断简化

//判断 index 是否小于0,小于则赋值为 0
var index = 0;

//简化前
index--;
if (index < 0) {
    index = 0;
}

//简化后
index = Math.max(0, --index);
//判断 index 是否大于 len,大于则赋值为 len 的值
var imgs = [1, 2, 3];
var index = 0,
    len = imgs.length;

//简化前
index++;
if (index > len) {
    index = len;
}

//简化后
index = Math.min(len, ++index);

2、JS对象深拷贝

newObj = JSON.parse(JSON.stringify(obj));

3、运行耗时计时

console.time('Timer'); //Timer是计时器名称,随便起
var arr = [];
for (var i = 0; i < 50; i++) {
    arr.push(i);
}
console.timeEnd('Timer');

4、取随机字符串

Math.random().toString(16).substring(2) // 13位
Math.random().toString(36).substring(2) // 11位

5、匿名函数自执行

( function() {}() );
( function() {} )();
[ function() {}() ];

~ function() {}();
! function() {}();
+ function() {}();
- function() {}();

delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};

var f = function() {}();

1, function() {}();
1 ^ function() {}();
1 > function() {}();

6、取整

~~2.33;  //2
2.33 | 0; //2
2.33 >> 0; //2

7、两个整数交换数值

var a = 1, b = 2;
a ^= b;
b ^= a;
a -= b;

8、数组去重

[...new Set([1, "1", 2, 1, 1, 3])];  //[1, "1", 2, 3]

9、取出一个数组中的最大值和最小值

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; 
Math.max.apply(Math, numbers);  //122205
Math.min.apply(Math, numbers);  //-85411


若有共鸣,不妨点个喜欢

本文地址:https://www.mingsixue.com/blog/detail/JS-technique-1

分享:微博QQ空间X