JavaScript編程中容易出BUG的幾點(diǎn)小知識
JavaScript是如今最受歡迎的編程語言之一,但受歡迎同時就是該語言自身的各種特性帶來的副作用,無論該語言多美妙,每天還是有成千上萬的程序員弄出一堆bug。先不要嘲笑別人,或許你也是其中之一。
給你一個例子,下面是幾個簡短的完全有效的JS片段(你可以在你的控制臺上試驗(yàn)一下):
typeof NaN === 'number' // true
Infinity === 1/0 // true
0.1 + 0.2 === 0.3 // false,前面加括號也一樣
"3" + 1 // '31'
"3" - 1 // 2
你還相信自己的JavaScript嗎?
1、JS最小的值
Number.MIN_VALUE > 0; //true
Number.MIN_VALUE用于JavaScript可以表達(dá)的最小值,為5e-324,然而是JS中最接近0的一個數(shù)
2、字符串連接
("foo" + + "bar") === "fooNaN" //true
"why I am " + typeof + "" // why I am number
JS解析成“foo” + (+ “bar”), 這將會把 “bar” 轉(zhuǎn)成一個數(shù)字
3、parseInt 函數(shù)
parseInt('06'); // 6
parseInt('08'); // 0 注意,谷歌新版已修正
parseInt(null, 24) === 23 // true
4、null是不是object
typeof null // object
null instanceof Object // false
5、return返回內(nèi)容
function myjson()
{
return
[
2
]
}
myjson(); // undefined
return返回的內(nèi)容必須和return在同一行
6、奇怪的數(shù)字
012 == 12 // false
'012' == 12 // true
"3" + 1 // '31'
"3" - 1 // 2
0.1 + 0.2 == 0.3 // false
0.1 + 0.7 == 0.8 // false
0.2 + 0.7 == 0.9 // false
9999999999999999 // 10000000000000000
9999999999999999-1 //10000000000000000
111111111111111111111 // 111111111111111110000
7、詭異的參數(shù)
function hello(what) {
alert(arguments[0]); //vicky
what = "world";
return "Hello, " + arguments[0] + "!";
}
hello("vicky"); //"Hello, world!"
8、讓人頭大的等號
NaN === NaN; // false
[] == false; // true
"" == false; // true
null == false; // false
[] == ![] // true
window.window == window // true
window.window === window // false,有些瀏覽器是true
window == document // true,有些瀏覽器是false
("0" && {}) == 0 // false
(0 && {}) == 0 // true
0 == "0" // true
[] == 0 // true
相關(guān)文章
小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題
本文主要介紹了小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Javascript下拉刷新的簡單實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Javascript下拉刷新的簡單實(shí)現(xiàn)過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
JavaScript Event學(xué)習(xí)第十一章 按鍵的檢測
檢測用戶的按鍵是事件處理程序的一個很特別的環(huán)節(jié)。這一章我們著力解決一些非常棘手的問題,并且制定一個完備的表格。2010-02-02
利用js讀取動態(tài)網(wǎng)站從服務(wù)器端返回的數(shù)據(jù)
這篇文章主要介紹了利用js讀取動態(tài)網(wǎng)站從服務(wù)器端返回的數(shù)據(jù),需要的朋友可以參考下2014-02-02
echarts tooltip自適應(yīng)寬高讓提示框適應(yīng)不同屏幕尺寸demo
這篇文章主要為大家介紹了echarts tooltip自適應(yīng)寬高讓提示框適應(yīng)不同屏幕尺寸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
layui從數(shù)據(jù)庫中獲取復(fù)選框的值并默認(rèn)選中方法
今天小編就為大家分享一篇layui從數(shù)據(jù)庫中獲取復(fù)選框的值并默認(rèn)選中方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
javascript游戲開發(fā)之《三國志曹操傳》零部件開發(fā)(四)用地圖塊拼成大地圖
小時候我們玩過拼圖游戲,是用自己的手去拼的。今天我們來研究研究用javascript來拼圖感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01
JS實(shí)現(xiàn)點(diǎn)擊按鈕可實(shí)現(xiàn)編輯功能
本文通過一段實(shí)例代碼給大家介紹了基于js實(shí)現(xiàn)點(diǎn)擊按鈕可編輯效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的的朋友參考下吧2018-07-07

