加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一个合格的中级前端工程师必须要掌握的28个JavaScript技巧

发布时间:2019-06-04 20:54:51 所属栏目:优化 来源:yeyan1996
导读:副标题#e# 1.判断对象的数据类型 使用 Object.prototype.toString 配合闭包,通过传入不同的判断类型来返回不同的判断函数,一行代码,简洁优雅灵活(注意传入 type 参数时首字母大写) 不推荐将这个函数用来检测可能会产生包装类型的基本数据类型上,因为 cal

无需每次使用 async/await 都包裹一层 try/catch ,更加的优雅,这里提供另外一个思路,如果使用了 webpack 可以编写一个 loader,分析 AST 语法树,遇到 await 语法,自动注入 try/catch,这样连辅助函数都不需要使用

28. 发布订阅 EventEmitter

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

通过 on 方法注册事件,trigger 方法触发事件,来达到事件之间的松散解耦,并且额外添加了 once 和 off 辅助函数用于注册只触发一次的事件以及注销事件

29. 实现 JSON.stringify(附加)

使用 JSON.stringify 将对象转为 JSON 字符串时,一些非法的数据类型会失真,主要表现如下

  • 如果对象含有 toJSON 方法会调用 toJSON
  • 当属性的值是 NaN,正负Inifinty,会变成字符串 null
  • 在数组中
  1. 存在 Undefined/Symbol/Function 数据类型时会变为 null
  2. 存在 Infinity/NaN 也会变成 null
  • 在对象中
  1. 属性值为 Undefined/Symbol/Function 数据类型时,属性和值都不会转为字符串
  2. 属性值为 Infinity/NaN ,属性值会变为 null
  • 日期数据类型的值会调用 toISOString
  • 非数组/对象/函数/日期的复杂数据类型会变成一个空对象
  • 循环引用会抛出错误

另外 JSON.stringify 还可以传入第二第三个可选参数,有兴趣的朋友可以深入了解

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!