JS笔记

1.比较小数相等时,切记不要直接使用===,而是使用相减取绝对值的方式
--------------------------
0.1 + 0.2 === 0.3 // false
Math.abs(0.1 + 0.2 - 0.3) <= 1e-10 // true

2.NaN独一无二的特点,就是他不等于他自己,如果一个变量不等于他自己,那么这个变量一定是NaN
--------------------------
NaN === NaN // false
var a = NaN; a === a // false
xxx === NaN // 永远不要这样写

3.除了比较null或undefined,绝不要简单的把非严格相等 == 理解为两者表示的数字一样,它有一套非常复杂的转换规则:它会先将 %%转换为 @@,然后把 !! 转换为 **,如果 %% 是 ?? 类型,还会 xx 一把……具体还是自己差相关文档把

4.new Date(dateString) 注意浏览器时区问题以及浏览器兼容性,建议-都替换成/进行时间转换
--------------------------
new Date('2018-01-01') // => "2018/1/1 08:00:00" 新版浏览器,IE 11
new Date('2018-01-01') // => "2018/1/1 00:00:00" 某些旧版安卓
new Date('2018-01-01') // => "Invalid Date" IE 8(这个忽略。。。)
new Date('2018/01/01') // => "2018/1/1 00:00:00" 包括 IE 8 在内所有浏览器

5.正确使用 parseInt
建议对于数值转换一概使用强制转换函数 Number,如果你JS用6了可以使用 +(正号)。如果需要对某个数字取整,建议使用 Math.trunc。如果你能确定数值在 32 位以内,可以使用 x|0 或 ~~x等方式,可以相对的提高效率

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 您可以在 HTML 文档中放入不限数量的脚本。脚本可位于 HTML 的 或 部分中,或者同时存在于两个部分...
    天涯笑笑生阅读 664评论 0 1
  • js简介 Js是一种基于事件和对象驱动的解释性、松散性的语言。 一切皆对象 javascript 布兰登艾奇 ...
    塔库纳玛哈哈阅读 1,233评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 肾结石是一种常见的泌尿系统疾病,指发生于肾盂、肾盏及肾孟与输尿管连接部的结石,多见于30~60岁人群,且男性发病率...
    大海_f916阅读 515评论 0 0
  • 一句“生活不止眼前的苟且,还有诗和远方的田野”,说进了多少人的内心,给了多少人回避眼前的借口。你真的以为你在苟且着...
    拂景阅读 570评论 0 0