国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript最讓人費解的十件事

開發 前端
JavaScript可算是世界上最流行的編程語言,如今也越來越被開發者們所重視,雖則如此,但JavaScript仍然擁有很多讓人費解的東西,文章將分析這些難把握的細微之處。

JavaScript是一種廣泛用于客戶端Web開發的腳本語言,其可算是世界上***的編程語言,它曾被Web開發設計師貼上噩夢的標簽,雖然真正的噩夢其實是DOM API,也曾經有人認為JavaScript語法中有很多陷阱,同時其也有很多讓人費解的東西。

1. 它以Java命名,但并不是Java

它最初叫Mocha, 接著改名為 LiveScript,***才確定命名為JavaScript,根據歷史記錄,Java 的命名與 Netscape 和 Sun 之間的合作有關,作為交換條件,Netscape 在他們備受歡迎的瀏覽器中創建了 Java 運行時。值得一提的是,這個名字的出臺幾近一個玩笑,要知道,LiveScript 和 Java 在客戶端腳本方面存在敵對關系,不管怎么說,人們后來不得不一再澄清的一件事就是,JavaScript 和 Java 毫無關系。

2. Null 是個對象?

看看這段代碼,它返回的是object。

返回是object

這實在令人費解,假如 null 表示空值,它怎么可以是對象?簡單說,它是JavaScript 最初版本的錯誤,這個錯誤甚至被微軟的 JScript 直接借用。

3. NaN !== NaN

NaN,表示一個非數字的值,然而問題是,NaN不等于任何東西,甚至不等于它自己。

NaN表示一個非數字值

這顯然不對,事實上,如果要判斷一個值確實是 NaN,你需要用 isNaN() 函數。

4. 全局變量

對全局變量的依賴一直被視為 JavaScript 最壞的部分(ECMA 的 JavaScript 5 已經去掉了全局變量,請參閱 ECMA 推出 JavaScript 5 - 譯者注)。對簡單的頁面,這無所謂,但復雜的頁面,如果包含大量 JavaScript 腳本,你很難知道某個全局變量是在哪里聲明的,如果幾個全局變量不小心重名,就會引發錯誤。

5. 那些統統被探測為Mozilla User-Agent 的瀏覽器

必須承認,事實上,這不是JavaScript 的錯,是各個瀏覽器有意為之。比如,以下是用JavaScript 探測Safari 時得到的結果:

用JavaScript 探測Safari

是否注意到其中的***個單詞 Mozilla/5.0,為什么 Safari 會被探測為 Mozilla,盡管 Safari 后來已經糾正這一問題,但仍然不能解釋為什么它們要這樣誤導開發者。事實上,你會發現,絕大多數瀏覽器把他們的 User Agent 設置為 Mozilla,答案要回到10年前,這更多是一種策略。User Agent 是一段用來標識當前瀏覽器身份的字符串,世界上***個瀏覽器Mosaic,曾這樣標志自己:

瀏覽器Mosaic這樣標志自己

這很合理,因此當 Netscape 出來的時候,它保留了Mosaic這個傳統,還在后面添加了一個加密方式部分。

Mosaic加密方式

到目前為止,一切安好,直到 IE3 發布,當 IE3 發布的時候,Netscape 正如日中天,那時,很多服務器和程序已經部署了客戶端探測機制,以便認出 Netscape,雖然現在看來,這很值得爭議,但當時并沒什么。當IE初次推出它們的User Agent 標志的時候,是這個樣子:

最初的User Agent 標志

這讓 IE 很被動,因為 Netscape 已經能被很多服務器識別,因此,開發者們干脆希望 IE 被誤認為 Mozilla,然后,再單獨加一個IE的標簽。

IE標簽

如今,幾乎所有瀏覽器都步 IE 后塵,將自己標識為 Mozilla,這大概是一種連鎖反應。 #p#

6. 不一致的函數范圍

參看以下代碼:

不一致的函數范圍

foo(bar.method) 返回結果不同原因是,method 函數是被當作 windows 對象,而不是 bar 下的對象調用的。要解決這個問題,我們必須從傳遞的匿名函數中調用 bar.method() 。

7. 位操作符

JavaScript 和 Java 有不少共同之處,如位操作:

  1. ◦& - and  
  2. ◦| - or  
  3. ◦^ - xor  
  4. ◦~ - not  
  5. >> - signed right shift  
  6. ◦??? - unsigned right shift  
  7. << - left shift 

看看***個 & 操作符,使用 && 應該更有效,因為 JavaScript 和 Java 不一樣,JavaScript 沒有整數,需要來回轉換,因此,轉換操作花的時間更長。

8. 太多的空值類型

諸如 null, false, undefined 一類的值幾乎表示同樣的意思,它們之間的不同又讓人很迷惑。

9. 算術問題

雖然JavaScript包含很多算術操作,但你不妨運行一下下面的算式,".2+.4" 應該等于 ".6" 是不是,然而返回的確是 "0.6000000000000001"。JavaScript 在小數計算訪問存在一些小問題。

JavaScript算術操作

為什么會這樣?簡單說,因為 JavaScript 使用 IEEE 標準進行二進制浮點運算,不過,對整數計算是沒問題的。 #p#

10. 莫名其妙的代碼錯誤

看看以下兩段代碼:

它們應該是一樣的,只是 { 位置不同而已,是吧。然而我們再看下面的代碼:

莫名其妙的代碼錯誤

如果我們把其中的:

代碼實例

換成:

代碼實例

就會引發錯誤,這是因為 JavaScript 有一個功能,會糾正它認為錯誤的代碼書寫,它會自作聰明地在 return 這個詞后面插入一個 ";" ,錯誤因此而生。

代碼實例

【編輯推薦】

  1. 詳解Javascript中checkbox樹的功能
  2. 詳解Javascript事件驅動的來龍去脈
  3. Javascript的this關鍵字與scope詳解
  4. 淺析利用Javascript獲取隨機顏色
  5. 詳解Javascript中的Array擴展
責任編輯:王曉東 來源: comsharp
相關推薦

2025-02-10 08:59:54

2009-05-26 09:48:34

2009-04-24 08:17:15

MySpaceCEO社交網站

2022-10-28 08:37:03

UbuntuLinux

2016-12-26 11:34:23

2020-08-10 15:30:24

XDR網絡安全網絡威脅

2009-06-26 09:36:06

2015-10-26 16:34:08

安裝Ubuntu 15.1Linux

2017-05-02 11:36:00

Java

2012-09-29 10:56:37

Google技術先驅

2013-01-21 09:58:41

vSphere網絡設置VMware vSph

2023-05-18 15:50:59

Arch Linux命令

2015-03-04 14:54:47

DockerIT管理基礎設施

2025-04-10 07:00:00

GenAIChatGPT人工智能

2010-07-28 16:12:41

2018-06-19 07:58:35

區塊鏈比特幣專利申請

2012-04-27 09:24:39

Google Driv云存儲

2014-08-12 09:22:05

程序員

2013-11-13 11:05:41

2023-11-28 11:24:51

點贊
收藏

51CTO技術棧公眾號

97se亚洲综合在线| 日韩精品一二| 亚洲欧洲精品一区| 超碰97人人在线| 国产91在线亚洲| 日韩一级片一区二区| 91九色鹿精品国产综合久久香蕉| 人人精品人人爱| 亚洲色图欧美激情| 日韩无一区二区| 亚洲国产精品久久久久久女王| 成人久久久久久久| 羞羞在线视频| 豆花视频一区二区| 亚洲福利电影网| 日韩一区二区三区在线| 奇米精品在线| 亚洲欧洲日本精品| 久草热久草在线频| 澳门av一区二区三区| 精品免费一区二区| 国产成人在线观看免费网站| 欧美午夜片欧美片在线观看| 亚洲成人av在线播放| 九九热这里只有精品6| 国产精品一区一区三区| 欧美亚洲激情| 欧美激情五月| 亚洲国产日韩a在线播放性色| 在线观看一区日韩| 日本黄色a视频| 蜜桃在线视频| 久久久久久久有限公司| 大量国产精品视频| 欧美日韩国产中文| 久久久久久久国产精品影院| 国产字幕视频一区二区| 麻豆一区在线| 超碰porn在线| 91在线网站| 成 年 人 黄 色 大 片大 全| 国产精品二区在线观看| 欧美激情亚洲国产| 亚洲国产精品热久久| 欧美小视频在线观看| 国产日韩欧美不卡| 久久国产精品露脸对白| 在线观看免费一区二区| 韩国精品福利一区二区三区| 蜜桃视频www网站在线观看| 久久这里精品| 97视频免费| heyzo亚洲| 亚洲欧洲精品一区二区| 91精品综合久久| 91精品国产色综合| 伊人久久综合97精品| 欧美三级日本三级少妇99| ...xxx性欧美| 91在线播放网址| 久久99国产精品久久99| 欧美成人中文| 九九久久精品| 欧美日韩午夜电影网| 欧美另类老肥妇| 欧美69xxxx| 视频一区二区三区在线看免费看| 色总=综合色| 国产 福利 在线| 三上悠亚免费在线观看| 日韩av电影免费在线观看| 51成人做爰www免费看网站| 国产成人拍精品视频午夜网站| 久久久精品视频成人| 亚洲欧美999| 亚洲成人av资源网| 6080日韩午夜伦伦午夜伦| 色偷偷88欧美精品久久久| 一区二区三区不卡视频在线观看| 国产丝袜在线精品| 91在线高清观看| 成人丝袜高跟foot| 国产久卡久卡久卡久卡视频精品| 日日骚欧美日韩| 亚洲另类自拍| 精品二区久久| 午夜精品网站| 综合一区av| 亚洲色图二区| 97欧美在线视频| 欧美色蜜桃97| jiujiure精品视频播放| 国产一区二区三区不卡视频网站| 欧美男人操女人视频| 久草精品视频| 免费看成人人体视频| 日韩av字幕| 国产不卡av一区二区| 美女亚洲一区| 久久av资源| 欧美久久精品一级c片| 欧美精选一区二区三区| 精品一区二区三区的国产在线观看| 精品在线手机视频| 大色综合视频网站在线播放| 欧美一区二区三区激情视频| 综合综合综合综合综合网| 精品产国自在拍| 日韩中文首页| 国产精品hd| 亚洲欧洲另类| 久久久亚洲人| 久久福利视频一区二区| 国产乱码精品一区二区三区忘忧草| 国产成人丝袜美腿| 久久久久99精品一区| 中文字幕一区av| 亚洲国产美国国产综合一区二区| 亚洲丶国产丶欧美一区二区三区| 欧美视频中文字幕在线| 欧美日本韩国一区二区三区视频| 欧美一区二区三区思思人| 亚洲激情视频网| 一个人www欧美| 欧美日韩不卡合集视频| 日韩美女视频中文字幕| 亚洲一区中文字幕在线观看| 麻豆久久久av免费| 青青草影院在线观看| 人妻熟女一二三区夜夜爱| eeuss在线播放| 在线国产中文字幕| 粗大黑人巨茎大战欧美成人| 一个人www视频在线免费观看| 日本黄色成人| 国产99久久精品一区二区300| 欧美日韩视频| 精品一区二区三区视频在线观看| 91视频www| 午夜欧美大尺度福利影院在线看| 欧美日韩国产天堂| 亚洲欧美在线x视频| 久久久久久久色| 91久久国产精品91久久性色| 免费中文日韩| 国产白丝袜美女久久久久| 日本女优北野望在线电影| 在线看av的网址| 日韩不卡免费高清视频| 国产主播性色av福利精品一区| 在线看片不卡| 国产在线精品免费av| 国产精品人成在线观看免费 | 亚洲成人免费影院| 欧美日韩激情一区二区三区| 亚洲欧美另类中文字幕| 97久久精品人人澡人人爽缅北| 91精品国产自产在线老师啪| 日韩电影免费观看高清完整| 熟女性饥渴一区二区三区| julia中文字幕久久亚洲蜜臀| 欧美另类极品| 日韩毛片网站| 性欧美69xoxoxoxo| 国产综合成人久久大片91| 国产精品久久久久9999吃药| 日本国产一区二区| 尤物yw午夜国产精品视频| 国产精品久久综合av爱欲tv| 丝袜美腿玉足3d专区一区| 亚州精品一二三区| 香蕉视频网站在线观看| 久久婷婷五月综合色丁香| 色喇叭免费久久综合| 久草精品在线观看| 樱花草国产18久久久久| 日韩久久精品一区| 91精品国产乱码久久久久久久久| 麻豆av福利av久久av| 黄色国产小视频| 日韩精品黄色| 无码国模国产在线观看| 在线观看一区| 国产午夜精品在线观看| 欧美日韩成人激情| 欧美激情中文字幕乱码免费| 久久精品日产第一区二区三区乱码| 国产h视频在线播放| 成人在线播放视频| 91精品丝袜国产高跟在线| 香蕉久久夜色精品| 亚洲视频一二区| 亚洲精品成人久久久| 国产精品视频99| 日韩精品在线观看av| 番号集在线观看| 精品成人自拍视频| 黄一区二区三区| 欧美中文字幕不卡| 91成人国产在线观看|