成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JS中所有對象隱式轉換都是True?除了他...

開發 前端
document.all會返回一個HTMLAllCollection集合,包含document下所有節點。可以理解為是一個「包含頁面中所有DOM節點的集合」

[[437695]]

大家好,我卡頌。

根據ES規范[1]規定,所有非原始類型的對象轉化為Boolean都為true:

但是這里有個特例:document.all

本文就來聊聊這個冷知識。

document.all的作用

document.all會返回一個HTMLAllCollection集合,包含document下所有節點??梢岳斫鉃槭且粋€「包含頁面中所有DOM節點的集合」:

早期的web開發者用該API獲取DOM節點,比如:

  1. // 獲取頁面中第一個節點,即HTML 
  2. document.all[0]; 
  3.  
  4. // 獲取頁面中id為"abcd"的節點 
  5. document.all["abcd"]; 

隨著WEB發展,其作用已經逐漸被document的其他方法取代,比如:

  • getElementById
  • querySelector
  • ......

負重前行的W3C

雖然有了更好用的API,但很多老頁面還在使用document.all。如何更好的過渡呢?

為了兼容,很多開發者會寫出如下代碼:

  1. if (document.all) { 
  2.   // 老瀏覽器 
  3. else if (document.getElementById) { 
  4.   // 支持getElementById的現代瀏覽器 

問題是,很多現代瀏覽器也實現了document.all,這就會讓代碼在所有瀏覽器中都進入「老瀏覽器」的邏輯。

從09年6月到10月,關于document.all的W3C郵件列表[2]有56封之多。

第一封討論郵件

最后的討論結果是:在現代瀏覽器中,document.all轉化為Boolean的結果為false。

這樣,上述代碼在現代瀏覽器下就不會進入「老瀏覽器」的邏輯。

總結

除了以上特性,document.all還有些異于常人的特性,比如:

  • 當被作為==和!=操作符的比較對象時,會被當作undefined
  • typeof document.all === 'undefined'

這些古怪結果都是為了瀏覽器向下兼容。雖然很多現代瀏覽器都支持document.all,但他已經從標準中刪除。

我能想到他當前唯一的作用,大概就是和面試官抬杠吧......

參考資料

[1]ES規范:

https://262.ecma-international.org/5.1/#sec-9.2

[2]W3C郵件列表:

https://www.w3.org/Search/Mail/Public/advanced_search?keywords=typeof+document.all&hdr-1-name=subject&hdr-1-query=&hdr-2-name=from&hdr-2-query=&hdr-3-name=message-id&hdr-3-query=&period_month=&period_year=&index-grp=Public__FULL&index-type=t&type-index=public-html&resultsperpage=100&sortby=date-asc

 

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2022-02-23 21:24:21

索引SQL字符

2009-09-04 10:49:19

C#隱式轉換

2010-02-04 16:47:04

C++隱式轉換

2009-07-21 13:54:55

Scala重載方法隱式轉換

2017-12-20 14:14:16

數據庫MySQL數據類型

2023-08-14 08:35:36

2010-11-16 15:11:52

Oracle隱式游標

2023-04-27 09:08:19

JavaScript隱式類型轉換

2017-09-13 10:58:51

JavaScript轉換規則

2017-09-05 16:17:35

JavaScript運算轉換

2023-09-22 09:04:00

C++編程

2023-12-12 08:50:22

MySQL隱式轉換varchar

2015-05-20 12:48:34

戴爾云計算

2024-09-26 12:33:29

JSAPI循環

2025-02-21 10:46:16

JSForEachAPI

2010-07-19 09:40:59

SQL Server數

2019-09-28 22:41:18

OracleMySQL隱式數據

2024-08-28 08:50:11

MySQL核心模塊

2025-04-03 12:30:00

C 語言隱式類型轉換代碼

2022-06-01 08:12:32

JS類數組對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频中文字幕 | 国产美女视频 | 国产精品色 | 亚洲日本一区二区三区四区 | 亚洲精品自在在线观看 | 亚洲欧美日韩精品久久亚洲区 | 欧美日韩精品一区二区 | 91精品福利 | 蜜臀久久 | 亚洲欧美国产精品一区二区 | 精品国产乱码久久久久久影片 | 久久精品国产一区二区 | 能看的av| 日本xx视频免费观看 | 国产大学生情侣呻吟视频 | wwwww在线观看 | 91精品国产91久久久久游泳池 | 亚洲久久久 | 日本精品视频一区二区 | 在线永久看片免费的视频 | 在线观看涩涩视频 | 久久99久久98精品免观看软件 | 国产精品福利视频 | 五月天婷婷久久 | 日本久久久久久 | 中文字幕在线观看一区二区 | 亚洲精品久久久久国产 | aaaaaaa片毛片免费观看 | 高清国产午夜精品久久久久久 | 亚洲国产精品一区二区第一页 | 一区二区三区高清 | 中文字幕精品一区二区三区在线 | 国产精品久久久久久久久久久久 | 国产电影一区二区 | 在线观看中文字幕 | 日韩电影免费观看中文字幕 | 国产99久久精品一区二区永久免费 | 欧美片网站免费 | 日韩欧美三级电影 | 欧美黄色网 | 日韩av一区在线观看 |