就像所有其他编程语言一样,JavaScript具有许多技巧来完成简单和困难的任务。 一些技巧已广为人知,而另一些技巧足以使您震惊。 让我们来看看您今天可以开始使用的七个JavaScript技巧!

数组去重

这个比较简单,在很多地方都可以看到如下代码:

const j = [...new Set([1, 2, 3, 3])]// [1, 2, 3]

主要使用扩展运算符 ... 和 Set 构造函数来完成。

过滤假值

需要从数组中过滤出转换为布尔值为false的选项(false, '', 0, NaN, null, undefined)

[false, '', 0, NaN, null, undefined, 1, 2].filter(Boolean)// [1, 2]

filter 的第一个参数是函数,通过将 Boolean 构造函数作为过滤条件,转换为布尔值为 true 的会保留下来。

创建空对象

您可以使用 {} 创建一个看似空的对象,但是该对象仍然具有 __proto__ 以及通常的 hasOwnProperty 和其他对象方法。 但是,有一种方法可以创建一个纯对象:

let dict = Object.create(null);// dict.__proto__ === "undefined"

这个对象上没有任何的属性和方法,也没原型。

合并对象

在JavaScript中合并多个对象的需求一直存在,你可以使用 assign 和扩展运算符。

const person = { name: 'Marc Yule', gender: 'Male' };
const tools = { computer: 'Mac', editor: 'Atom' };const summary = {...person, ...tools};

合并对象有很多种方式,这两种方式只适合浅拷贝对象。

验证参数

函数参数默认值在验证参数为必传项时对我们很有用,比如下面代码的写法:

const isRequired = () => { throw new Error('param is required'); };
const hello = (name = isRequired()) => { console.log(`hello ${name}`) };// 如果参数不传就报错
hello();

这是参数验证的有效方法。

解构赋值

对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。

const obj = { x: 1 };
const { x } = obj;// 指定别名
const { x: otherName } = obj;

指定别名有助于避免与现有变量的命名冲突!

解析地址

前几年,我们总是编写正则表达式来获取查询字符串值,但是那一天已经过去了-现在可以借助-URLSearchParams API:

//  "?post=1234&action=edit"var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true

常用的就两个方法,get() 获取指定搜索参数的第一个值。has() 返回 Boolean 判断是否存在此搜索参数。

7个有用的JavaScript技巧相关推荐

  1. 12 个非常有用的 JavaScript 技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  2. 45个有用的JavaScript技巧,窍门和最佳实践

    作者 | kovlento 链接 | https://juejin.im/post/5cd24b59e51d453a8f348bca 1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得 ...

  3. 45个有用的JavaScript技巧,值得你学习

    来源 | https://juejin.im/post/5cd24b59e51d453a8f348bca 1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变 ...

  4. javascript获取系统时间时区_5个JavaScript技巧让你成为更好的开发者

    英文 | https://levelup.gitconnected.com/5-javascript-tricks-that-are-good-to-know-78045dea6678翻译 | web ...

  5. 12个常用的JavaScript技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  6. 21个值得收藏的Javascript技巧

    在本文中列出了21个值得收藏的Javascript技巧,在实际工作中,如果能适当运用,则大大提高工作效率. 1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscri ...

  7. 12 个非常有用的 JavaScript Hacks

    12 个非常有用的 JavaScript Hacks http://webres.wang/12-extremely-useful-hacks-for-javascript/ 本文为大家分享 12 个 ...

  8. php程序xml有必要学习吗,对初学者非常有用的PHP技巧

    对初学者非常有用的PHP技巧 echo "I is : $i '; } echo print_footer(); 那么,为什么你应该做输出缓冲呢: 你可以在将输出发送给浏览器之前更改它,如果 ...

  9. 12个JavaScript技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

最新文章

  1. docker redis 多个实例
  2. ROC(receiver operating characteristic curve)曲线与ROC分析
  3. [入门向选讲] 插头DP:从零概念到入门 (例题:HDU1693 COGS1283 BZOJ2310 BZOJ2331)
  4. 即将消失的十大热门技术---竟然有java,还是学asp.net去吧.跟微软混没错!
  5. 图例符号居中显示_R可视化08|ggplot2图层-标度图层(scale layer)-图例篇
  6. SPOJ- QTREE+HDU 3966(树链剖分裸题
  7. 利用位运算解决 N 皇后问题
  8. LeetCode 261. 以图判树(全部连通+边数=V-1)
  9. nacicat for mysql查询_navicat for mysql怎么用
  10. 远程访问数据库出错的解决办法
  11. python模块调用的用法_python模块怎么使用
  12. 《统计学习方法》读书笔记——感知机(原理+代码实现)
  13. nyoj349 poj1094 Sorting It All Out(拓扑排序)
  14. 货币转换程序(双符号)python代码,Python-将货币代码转换为其符号
  15. DB2 SQLCODE 异常大全编辑(五)
  16. Linux ALSA声卡驱动之二:声卡的创建
  17. 线性分类器和非线性分类器总结
  18. 2018第九届蓝桥杯B组决赛题解第四题 调手表(BFS)
  19. Java实现仿win10计算器
  20. 人民币对美元汇率中间价报6.7025元 上调318个基点

热门文章

  1. 做数据中心,腾讯是认真的!
  2. 一行代码如何隐藏 Linux 进程?
  3. 数据分析师 vs 算法工程师,Python 出身的程序员如何抉择?
  4. 流行于机器学习竞赛的Boosting,一文讲透足够了
  5. 沙迦美国大学科研副校长赵伟:揭秘工业 4.0 核心技术 CPS 的前世今生 | 人物志...
  6. 程序员该如何利用“有状态的服务”升级打怪?
  7. 电信、联通合建 5G,将会碰出怎样的火花?
  8. 看完这篇,终于知道自己会不会 C# 泛型了!
  9. 火速拿来用!对比 12,000 个 Vue.js 开源项目发现最实用的 TOP45!
  10. BAT 七年经验,却抵不过外企面试的两道算法题?