被我忽略的 6 个 JS 开发小技巧

开发 前端
分享几个实际开发中经常被忽略 JS 技巧,下面,我们一起来看。

分享几个实际开发中经常被忽略 JS 技巧,下面,我们一起来看。

1. typeof 误解

声明一个变量 var a,typeof a 常被误解是求变量 a 的类型,其实是求变量 a 中「当前值的类型」。如图所示,当 a 的值发生改变时,typeof a 的结果也在发生变化。

2. 真假难辨

js 中的「假值」包含 ""、0、-0、NaN,、null、undefined、false,记住空字符串也是「假值」,而空数组 [] 和空对象 {} 却不是假值。通过下面代码可以验证一下:

3. == 与 ===

这段代码的打印结果是啥?结果是 a == c,看到这个结果我难以置信。== 和 === 的区别在于,== 检查「值相等」,而 === 检查「值和类型」相等。但这么说并不精确。正确的说法是,== 检查的是允许类型转换的情况下值的相等性,而 === 检查不允许类型转换的情况下值的相等性;因此,=== 经常被称为“严格相等”。

4. 类型之间比较

上面的打印结果是啥?结果打印的是”我该咋办“。原因是这样的, b 在 < 和 > 比较过程中,b 被转换成了无效数字 NaN,「规范设定 NaN 即不大于也不小于任何值」。== 比较结果为假是因为无论 42 == NaN 还是 "42" == "suyan" 都不可能为真。

5. 自己实现一个 isNaN 函数

这里利用了 NaN 值的一个特性,即 NaN 是整个语言中唯一和自身不相等的值。因此,NaN 是使得 x != x 为真的唯一值。

6. IIFE

别被上面的函数搞晕,换个姿势:

还不懂?那看 让 JavaScript 文件代码相互独立 这篇吧。

大家加油!

 

责任编辑:赵宁宁 来源: 素燕
相关推荐

2020-05-17 16:19:59

JavaScript代码开发

2021-02-03 10:46:31

SQL数据库技巧

2017-10-30 17:25:11

javascript

2015-07-27 09:36:09

storyboard

2015-08-10 09:50:21

ios图片文本

2021-07-23 11:00:18

UI界面设计效果

2021-07-03 08:07:16

UIApp移动端

2021-05-29 09:52:15

UI设计技巧标签

2015-03-23 09:44:55

iOS开发技巧

2024-01-03 08:53:35

JavaScrip编程语言NodeJS

2022-05-06 13:19:13

JS前端

2021-01-04 09:06:18

Next.js设计技巧

2015-02-04 10:32:57

Objective-CSwift

2018-11-28 12:30:58

Python命令行编程语言

2024-01-30 08:43:26

IF 语句JavaScripJS

2020-10-15 15:09:27

Seaborn图表数据集

2019-01-29 15:40:06

云应用开发云环境

2024-05-07 07:04:05

前端调试技巧浏览器

2011-02-21 17:15:14

SilverlightNEY

2020-08-04 08:30:18

JS数组技巧
点赞
收藏

51CTO技术栈公众号