javascript
JavaScript数据类型和变量学习小记
? 今天,天氣不晴朗。
?
? 閑來無事隨便看了看廖大的JavaScript教程,本人愚鈍,作此隨筆摘錄幾點(diǎn)以便日后學(xué)習(xí)。
?
比較運(yùn)算符
先看個簡單例子:
? ? ??
在上圖中我們很容易看出對于JS來說“==”和“===”并不相同,那么區(qū)別在何處呢?我們接著往下看。
? ?
?原來是這樣的:
JavaScript在設(shè)計時,有兩種比較運(yùn)算符:
第一種是==比較,它會自動轉(zhuǎn)換數(shù)據(jù)類型再比較,很多時候,會得到非常詭異的結(jié)果;
第二種是===比較,它不會自動轉(zhuǎn)換數(shù)據(jù)類型,如果數(shù)據(jù)類型不一致,返回false,如果一致,再比較。
?
由于JavaScript這個設(shè)計缺陷,不要使用==比較,始終堅持使用===比較。【切記切記!!】
?
同樣的,浮點(diǎn)型數(shù)據(jù)的相等比較同樣需要注意,比如:
why?因?yàn)?#xff1a;
這樣就很容易理解了。
?
當(dāng)然,這并不是JavaScript的設(shè)計缺陷,而是計算機(jī)的缺陷,畢竟圖樣嘿嘿嘿。
?
浮點(diǎn)數(shù)在運(yùn)算過程中會產(chǎn)生誤差,因?yàn)橛嬎銠C(jī)無法精確表示無限循環(huán)小數(shù)。那么我們該如何比較兩個浮點(diǎn)數(shù)?
廖老師在教程里告訴我:
要比較兩個浮點(diǎn)數(shù)是否相等,只能計算它們之差的絕對值,看是否小于某個閾值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true ?
這個閥值并不能過于精確。
?
看來做人也要向計算機(jī)學(xué)習(xí),是不能斤斤計較的啊。
?
END , thanks.
轉(zhuǎn)載于:https://www.cnblogs.com/maoguy/p/5405114.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript数据类型和变量学习小记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT 1055
- 下一篇: POJ-1067取石子游戏,威佐夫博弈范