前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript编写高质量的68个有效方法

JavaScript编写高质量的68个有效方法

作者头像
Tiffany_c4df
发布2019-09-04 15:35:38
5240
发布2019-09-04 15:35:38
举报
文章被收录于专栏:前端小课堂

第一条:了解你使用的javascript

  1. 严格模式use strict
  • 不允许重定义arguments变量
  • 只有在脚本或函数的顶部才生效
  • 不要将进行严格模式检查的代码和非严格模式的代码进行打包压缩
  • 可通过立即调用函数隔离严格与非严格区域,单独隔离作用域
  • 编写库时,开启严格检查,兼容性更强
代码语言:javascript
复制
(function () {
	"use strict";
	function f() {
		// code
	}
})();

第二条:理解js浮点数

  1. 位运算会将数字转换为32位大端的2的补码表示的整数,8表示为0000 0000 0000 0000 0000 0000 0000 1000,可通过(8).toString(2) // ‘1000’,指定基数进行转换
  2. 0.1 + 0.2 不等于0.3
  3. 整数运算,计算只适用于$$(-2)^{53} - 2^{53}$$

第三条:隐式转换

  1. 3 + true // 4
  2. “2” + 3 // “23”
  3. 2 + “3” // “23”
  4. 1 + “2” + 3 // “123”
  5. “17” * 3 // 51
  6. x === NaN // false
  7. 对象的隐式转换,会调用自身的toString()转换为字符串或者valueOf()方法转换为数字,问题就在于调用这两个方法的优先级。具有vauleOf方法的对象应该实现toString方法,返回一个valueOf方法产生的数字字符串表示。
    • 存在toString方法,就调用toString方法
    • 存在valueOf方法,就调用valueOf方法
    • 同时存在toString、valueOf方法,优先调用valueOf方法
  8. 真值转换,js中有7个假值:false、0、-0、””、NaN、null、undefined
  9. 检测一个值是否是未定义的值,应该使用typeof或者与undefined进行比较,而不是直接if(!x)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一条:了解你使用的javascript
  • 第二条:理解js浮点数
  • 第三条:隐式转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档