所谓 hacker 方法,就是一种不断改进和迭代的构建方法。有着 hacker 精神的程序员相信事物总有改进的余地,没有什么是完美的存在。每一段代码都有进一步优化的空间,每一个操作都有更便捷的技巧。

下面列举一些 hacker 技巧

1. Replace All

我们知道 String.Replace()函数只会替换第一个匹配的项目。
你可以在这个正则表达式的末尾添加/g 来替换所有内容。

  1. var str = 'phone phone';
  2. console.log(str.replace(/pho/, 'go')); // gone phone
  3. console.log(str.replace(/pho/g, 'go')); // gone gone

2. 提取唯一值

我们使用 Set 和 Spread(拓展)运算符,创建一个剔除重复值的新数组。

  1. var entries = [1, 2, 3, 2, 4, 1];
  2. var temp = [...new Set(entries)];
  3. console.log(temp); // [1, 2, 3, 4]

3. 将数字转换成字符串

我们可以利用 javaScript 的隐式转换来实现数字快捷转换成字符串

  1. var num = 5;
  2. var temp = num + '';
  3. console.log(temp, typeof temp); // 5 string

4.将字符串转换成数字

我们可以使用 javaScript 的隐式类型转换,+value => Number(value), 我们列举一下常见数据 类型的转换规则:

  1. // Boolean
  2. console.log(+true); // 1
  3. console.log(+false); // 0
  4. // Number
  5. console.log(+2); // 2
  6. // null || undefined
  7. console.log(+undefined); // NaN
  8. console.log(+null);
  9. 0;
  10. // String
  11. console.log(+''); // 0
  12. console.log(+'111'); // 111
  13. console.log(+'asdasdas'); // NaN
  14. console.log(+'12.3aaaa'); // NaN
  15. // Object || Array
  16. console.log(+[]); // 0
  17. console.log(+{}); // NaN
  18. console.log(+function() {}); //NaN

这里主要解释一下字符串类型的转换,+运算符会将字符串转换成十进制数,忽略前面的 0(16 进制除外),空字符串返回 0,浮点数返回浮点数值。其他格式字符串一律返回 NaN(包含数字也如此)。

5. 随机排列数组中的元素

利用数组方法 sort 进行随机数排列

  1. var arr = [1, 2, 3, 4, 5, 6, 7, 8];
  2. console.log(
  3. arr.sort(function() {
  4. return Math.random() - 0.5;
  5. })
  6. ); // [4, 6, 3, 2, 8, 7, 5, 1] 数组内容随机

6. 展开多维数组

只需使用 Spread(拓展)运算符

  1. var temp = [1, [2, 1], [5, 7]];
  2. var _arr = [].concat(...temp);
  3. console.log(_arr); // [1, 2, 1, 5, 7]

7. 短路条件

当我们的 if 判断语句比较多时,代码看起来有点冗余,哪有啥方法可以优美一点操作呢?

  1. if (true) {
  2. console.log(1);
  3. }
  4. // 丢掉麻烦的if语句
  5. true && console.log(1);

8. 动态属性名称

我一直以为必须先声明一个对象,然后才能分配一个动态属性,其实还可以通过变量操作。

  1. var dynamic = 'age';
  2. var person = { name: 'Jake', [dynamic]: '22' };
  3. console.log(person); // {name: 'Jake', age: 22 };

9. 使用 length 调整大小 / 清空数组

如果要调整数组的大小或者清空数组,只需要操作数组的 length 属性即可

  1. var array = [1, 2, 3, 4, 5, 6];
  2. array.length = 4;
  3. console.log(array);
  4. array.length = 0;
  5. console.log(array);

这只是一些简单的 hacker 技巧,希望对您有帮助,后续我还会发掘和新增更多的 hacker 9 个超级强大的 javaScript 技巧 - 图1

参考内容