自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

被我忽略的 6 個(gè) JS 開發(fā)小技巧

開發(fā) 前端
分享幾個(gè)實(shí)際開發(fā)中經(jīng)常被忽略 JS 技巧,下面,我們一起來(lái)看。

分享幾個(gè)實(shí)際開發(fā)中經(jīng)常被忽略 JS 技巧,下面,我們一起來(lái)看。

1. typeof 誤解

聲明一個(gè)變量 var a,typeof a 常被誤解是求變量 a 的類型,其實(shí)是求變量 a 中「當(dāng)前值的類型」。如圖所示,當(dāng) a 的值發(fā)生改變時(shí),typeof a 的結(jié)果也在發(fā)生變化。

2. 真假難辨

js 中的「假值」包含 ""、0、-0、NaN,、null、undefined、false,記住空字符串也是「假值」,而空數(shù)組 [] 和空對(duì)象 {} 卻不是假值。通過(guò)下面代碼可以驗(yàn)證一下:

3. == 與 ===

這段代碼的打印結(jié)果是啥?結(jié)果是 a == c,看到這個(gè)結(jié)果我難以置信。== 和 === 的區(qū)別在于,== 檢查「值相等」,而 === 檢查「值和類型」相等。但這么說(shuō)并不精確。正確的說(shuō)法是,== 檢查的是允許類型轉(zhuǎn)換的情況下值的相等性,而 === 檢查不允許類型轉(zhuǎn)換的情況下值的相等性;因此,=== 經(jīng)常被稱為“嚴(yán)格相等”。

4. 類型之間比較

上面的打印結(jié)果是啥?結(jié)果打印的是”我該咋辦“。原因是這樣的, b 在 < 和 > 比較過(guò)程中,b 被轉(zhuǎn)換成了無(wú)效數(shù)字 NaN,「規(guī)范設(shè)定 NaN 即不大于也不小于任何值」。== 比較結(jié)果為假是因?yàn)闊o(wú)論 42 == NaN 還是 "42" == "suyan" 都不可能為真。

5. 自己實(shí)現(xiàn)一個(gè) isNaN 函數(shù)

這里利用了 NaN 值的一個(gè)特性,即 NaN 是整個(gè)語(yǔ)言中唯一和自身不相等的值。因此,NaN 是使得 x != x 為真的唯一值。

6. IIFE

別被上面的函數(shù)搞暈,換個(gè)姿勢(shì):

還不懂?那看 讓 JavaScript 文件代碼相互獨(dú)立 這篇吧。

大家加油!

 

責(zé)任編輯:趙寧寧 來(lái)源: 素燕
相關(guān)推薦

2020-05-17 16:19:59

JavaScript代碼開發(fā)

2021-02-03 10:46:31

SQL數(shù)據(jù)庫(kù)技巧

2017-10-30 17:25:11

javascript

2015-07-27 09:36:09

storyboard

2021-07-23 11:00:18

UI界面設(shè)計(jì)效果

2015-08-10 09:50:21

ios圖片文本

2021-05-29 09:52:15

UI設(shè)計(jì)技巧標(biāo)簽

2021-07-03 08:07:16

UIApp移動(dòng)端

2024-01-03 08:53:35

JavaScrip編程語(yǔ)言NodeJS

2015-03-23 09:44:55

iOS開發(fā)技巧

2022-05-06 13:19:13

JS前端

2021-01-04 09:06:18

Next.js設(shè)計(jì)技巧

2015-02-04 10:32:57

Objective-CSwift

2024-01-30 08:43:26

IF 語(yǔ)句JavaScripJS

2020-10-15 15:09:27

Seaborn圖表數(shù)據(jù)集

2018-11-28 12:30:58

Python命令行編程語(yǔ)言

2019-01-29 15:40:06

云應(yīng)用開發(fā)云環(huán)境

2011-02-21 17:15:14

SilverlightNEY

2024-05-07 07:04:05

前端調(diào)試技巧瀏覽器

2020-08-04 08:30:18

JS數(shù)組技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)