日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性

發(fā)布時(shí)間:2024/7/5 javascript 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者: 李松峰

轉(zhuǎn)發(fā)鏈接:https://mp.weixin.qq.com/s/guAN1Cz2gYfKdBhmUpLyVA

前言

JavaScript這門(mén)語(yǔ)言的第一個(gè)演示版差不多就在25年前誕生。

沒(méi)記錯(cuò)的話,25年前的今天,1995年5月10日,星期三,我剛剛過(guò)了創(chuàng)造JavaScript(代號(hào)為“Mocha”)的“5月的10天”沖刺的一半。我正在寫(xiě)下個(gè)周一就要交付的一個(gè)演示,目的是展示JS與Netscape的深度瀏覽器集成(相對(duì)于Java小應(yīng)用)。

1995年秋天,這門(mén)語(yǔ)言在Netscape Navigator的一個(gè)測(cè)試版中發(fā)布,當(dāng)時(shí)叫LiveScript。那一年的年底,又被改名為JavaScript。也是在那一年,David Flanagan開(kāi)始寫(xiě)JavaScript: The Definitive Guide的第一版,并由O'Reilly在1996年8月出版。如今,24年過(guò)去了。

犀牛書(shū)(英文版)第7版再過(guò)幾個(gè)星期就要面世了。為此,David回憶了一下,想告訴大家有哪些JavaScript特性可以放心地忘掉。一個(gè)原因是第七版比第6版薄了不少。而這主要是因?yàn)橹暗暮芏鄸|西2020年的開(kāi)發(fā)者已經(jīng)不用關(guān)心了。Web兼容性永遠(yuǎn)存在(至少25年以來(lái)一直如此),瀏覽器廠商可能在很長(zhǎng)時(shí)期內(nèi)仍然需要支持那些陳舊的、難以理解的語(yǔ)言和平臺(tái)特性。但對(duì)我們而言,已經(jīng)沒(méi)有必要再為這些特性分心了。

也就是說(shuō),有不少JavaScript和Web平臺(tái)特性在第7版里已經(jīng)銷(xiāo)聲匿跡了。應(yīng)該說(shuō),能對(duì)這些特性說(shuō)再見(jiàn)是件高興的事。以下就是David憑記憶列出的幾個(gè)應(yīng)該忘記的特性。

arguments對(duì)象

arguments對(duì)象已經(jīng)被ES6的...args語(yǔ)法完全取代。要解釋清楚arguments與命名參數(shù)的關(guān)系,以及始終注意它對(duì)性能的影響著實(shí)不易。在遺留的前端代碼中,也許還會(huì)看到它的身影。在嚴(yán)格模式下如果想將局部變量或函數(shù)參數(shù)命名為arguments,那瀏覽器也會(huì)提醒你它的存在。不過(guò)現(xiàn)在有了剩余參數(shù),它就應(yīng)該悄悄地被人遺忘了。

拼接字符串

曾幾何時(shí),我們還會(huì)擔(dān)心重復(fù)拼接字符串導(dǎo)致的性能問(wèn)題。有一段時(shí)間,大家都學(xué)會(huì)了先把字符串推到數(shù)組里,最后再使用join()把它們拼接起來(lái)。后來(lái),JavaScript變快了,我們就把這個(gè)模式給忘了。而現(xiàn)在有了模板字面量,誰(shuí)還會(huì)再拼接字符串呢?

document.write()

document.write()在很早以前,確切地說(shuō)是在DOM問(wèn)世之前,曾經(jīng)是JavaScript中最重要的特性。(如果你沒(méi)在20世紀(jì)寫(xiě)過(guò)JavaScript,那可能想象不到DOM出現(xiàn)之前的日子,但那個(gè)時(shí)代真的存在過(guò)。)如果沒(méi)記錯(cuò)的話,人們甚至可以使用document.write()向文檔中插入腳本。不過(guò)這時(shí)候要小心,因?yàn)槟愕冒涯┪驳臉?biāo)簽拆成兩個(gè)字符串。這樣HTML解析器才不會(huì)把它解釋為當(dāng)前運(yùn)行腳本的結(jié)束標(biāo)簽。

frame 相關(guān)

HTML早期是沒(méi)有

直接引用特定元素相關(guān)

在文檔中直接引用特定元素的技術(shù)基本上都廢棄了。前面說(shuō)到的frames數(shù)組是一個(gè),沒(méi)記錯(cuò)的話,還有l(wèi)inks和images數(shù)組,包含文檔中的所有鏈接和所有圖片。IE(我記得應(yīng)該是版本4)一步到位,引入了document.all,這是一個(gè)包含文檔中所有元素的數(shù)組。(這也是“DHTML”也就是“動(dòng)態(tài)HTML”及后來(lái)DOM的發(fā)端,有點(diǎn)像人類(lèi)進(jìn)化史上第一條爬上陸地的魚(yú)。)document.all有各種各樣新奇的特性,它這個(gè)數(shù)組本身還有很多按名字或按其他條件來(lái)查詢?cè)氐姆椒āocument.all最終沒(méi)有被寫(xiě)進(jìn)標(biāo)準(zhǔn),但即便是標(biāo)準(zhǔn)的document.getElementById()、document.getElementsByName()、document.getElementsByTagName()和docuemnt.getElementsByClassName()方法,在今天看來(lái)似乎也已經(jīng)沒(méi)多少人用了。因?yàn)槭艿搅薺Query的$()及受它啟發(fā)而引入標(biāo)準(zhǔn)的document.querySelector()和document.querySelectorAll()的排擠。借用CSS選擇符的威力,這兩個(gè)方法直接就把之前的那些方法都給廢掉了。

事件及其處理程序兼容

說(shuō)起我最恨Internet Explorer的一件事,就是他們非要使用attachEvent()來(lái)注冊(cè)事件處理程序。在我的印象中,他們是在標(biāo)準(zhǔn)已經(jīng)規(guī)定了addEventListener()方法之后這么搞的,這可真是太討厭了。事件及其處理程序一直以來(lái)都是Web開(kāi)發(fā)中一個(gè)最大的不兼容問(wèn)題。多少年以來(lái),JavaScript程序員(和JavaScript圖書(shū)作者)都必須處理IE事件模型與標(biāo)準(zhǔn)事件模型的各種差異。為此,處理事件的代碼必須寫(xiě)兩遍,一遍針對(duì)IE,一遍針對(duì)Firefox。書(shū)中介紹事件的章節(jié)相應(yīng)地也會(huì)兩倍長(zhǎng),因?yàn)橛袃商追浅O嗨频珔s完全不兼容的事件處理機(jī)制。jQuery的一個(gè)主要特性就是實(shí)現(xiàn)了自己的事件兼容層,于是開(kāi)發(fā)者只需掌握一種事件處理方式即可。我懷疑這也是它快速流行的一個(gè)重要原因。

DOM API 相關(guān)

最初的DOM API是在人們瘋狂迷戀XML的時(shí)代定義的。(當(dāng)時(shí)的人們確實(shí)相信用不了幾年,XML就可以解決所有數(shù)據(jù)問(wèn)題。真是個(gè)難以置信的時(shí)代。)某種程度上,正是W3C的認(rèn)可,才讓Java那些人影響了DOM API,這些人覺(jué)得最好只定義一套API,JavaScript程序員能用它操作HTML文檔,而Java程序員能用它操作XML數(shù)據(jù)。這也是為什么會(huì)有Attr節(jié)點(diǎn)(最好當(dāng)它不存在)這么怪異的東西的原因。DOM Level 3 API中最讓我不理解的一個(gè)操作是從文檔中刪除元素e,你不能像今天這樣寫(xiě)成e.remove(),而是必須寫(xiě)成e.parentNode.removeChild(e)。

不管怎么說(shuō),現(xiàn)在都已經(jīng)2020年了。犀牛書(shū)第7版將不會(huì)再花筆墨描述這些陳舊的特性,這些特性大家最好還是忘掉。

推薦JavaScript經(jīng)典實(shí)例學(xué)習(xí)資料文章

《36個(gè)工作中常用的JavaScript函數(shù)片段「值得收藏」》

《Node + H5 實(shí)現(xiàn)大文件分片上傳、斷點(diǎn)續(xù)傳》

《一文了解文件上傳全過(guò)程(1.8w字深度解析)「前端進(jìn)階必備」》

《【實(shí)踐總結(jié)】關(guān)于小程序掙脫枷鎖實(shí)現(xiàn)批量上傳》

《手把手教你前端的各種文件上傳攻略和大文件斷點(diǎn)續(xù)傳》

《字節(jié)跳動(dòng)面試官:請(qǐng)你實(shí)現(xiàn)一個(gè)大文件上傳和斷點(diǎn)續(xù)傳》

《談?wù)勄岸岁P(guān)于文件上傳下載那些事【實(shí)踐】》

《手把手教你如何編寫(xiě)一個(gè)前端圖片壓縮、方向糾正、預(yù)覽、上傳插件》

《最全的 JavaScript 模塊化方案和工具》

《「前端進(jìn)階」JS中的內(nèi)存管理》

《JavaScript正則深入以及10個(gè)非常有意思的正則實(shí)戰(zhàn)》

《前端面試者經(jīng)常忽視的一道JavaScript 面試題》

《一行JS代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的模板字符串替換「實(shí)踐」》

《JS代碼是如何被壓縮的「前端高級(jí)進(jìn)階」》

《前端開(kāi)發(fā)規(guī)范:命名規(guī)范、html規(guī)范、css規(guī)范、js規(guī)范》

《【規(guī)范篇】前端團(tuán)隊(duì)代碼規(guī)范最佳實(shí)踐》

《100個(gè)原生JavaScript代碼片段知識(shí)點(diǎn)詳細(xì)匯總【實(shí)踐】》

《關(guān)于前端174道 JavaScript知識(shí)點(diǎn)匯總(一)》

《關(guān)于前端174道 JavaScript知識(shí)點(diǎn)匯總(二)》

《關(guān)于前端174道 JavaScript知識(shí)點(diǎn)匯總(三)》

《幾個(gè)非常有意思的javascript知識(shí)點(diǎn)總結(jié)【實(shí)踐】》

《都2020年了,你還不會(huì)JavaScript 裝飾器?》

《JavaScript實(shí)現(xiàn)圖片合成下載》

《70個(gè)JavaScript知識(shí)點(diǎn)詳細(xì)總結(jié)(上)【實(shí)踐】》

《70個(gè)JavaScript知識(shí)點(diǎn)詳細(xì)總結(jié)(下)【實(shí)踐】》

《開(kāi)源了一個(gè) JavaScript 版敏感詞過(guò)濾庫(kù)》

《送你 43 道 JavaScript 面試題》

《3個(gè)很棒的小眾JavaScript庫(kù),你值得擁有》

《手把手教你深入鞏固JavaScript知識(shí)體系【思維導(dǎo)圖】》

《推薦7個(gè)很棒的JavaScript產(chǎn)品步驟引導(dǎo)庫(kù)》

《Echa哥教你徹底弄懂 JavaScript 執(zhí)行機(jī)制》

《一個(gè)合格的中級(jí)前端工程師需要掌握的 28 個(gè) JavaScript 技巧》

《深入解析高頻項(xiàng)目中運(yùn)用到的知識(shí)點(diǎn)匯總【JS篇】》

《JavaScript 工具函數(shù)大全【新】》

《從JavaScript中看設(shè)計(jì)模式(總結(jié))》

《身份證號(hào)碼的正則表達(dá)式及驗(yàn)證詳解(JavaScript,Regex)》

《瀏覽器中實(shí)現(xiàn)JavaScript計(jì)時(shí)器的4種創(chuàng)新方式》

《Three.js 動(dòng)效方案》

《手把手教你常用的59個(gè)JS類(lèi)方法》

《127個(gè)常用的JS代碼片段,每段代碼花30秒就能看懂-【上】》

《深入淺出講解 js 深拷貝 vs 淺拷貝》

《手把手教你JS開(kāi)發(fā)H5游戲【消滅星星】》

《深入淺出講解JS中this/apply/call/bind巧妙用法【實(shí)踐】》

《手把手教你全方位解讀JS中this真正含義【實(shí)踐】》

《書(shū)到用時(shí)方恨少,一大波JS開(kāi)發(fā)工具函數(shù)來(lái)了》

《干貨滿滿!如何優(yōu)雅簡(jiǎn)潔地實(shí)現(xiàn)時(shí)鐘翻牌器(支持JS/Vue/React)》

《手把手教你JS 異步編程六種方案【實(shí)踐】》

《讓你減少加班的15條高效JS技巧知識(shí)點(diǎn)匯總【實(shí)踐】》

《手把手教你JS開(kāi)發(fā)H5游戲【黃金礦工】》

《手把手教你JS實(shí)現(xiàn)監(jiān)控瀏覽器上下左右滾動(dòng)》

《JS 經(jīng)典實(shí)例知識(shí)點(diǎn)整理匯總【實(shí)踐】》

《2.6萬(wàn)字JS干貨分享,帶你領(lǐng)略前端魅力【基礎(chǔ)篇】》

《2.6萬(wàn)字JS干貨分享,帶你領(lǐng)略前端魅力【實(shí)踐篇】》

《簡(jiǎn)單幾步讓你的 JS 寫(xiě)得更漂亮》

《恭喜你獲得治療JS this的詳細(xì)藥方》

《談?wù)勄岸岁P(guān)于文件上傳下載那些事【實(shí)踐】》

《面試中教你繞過(guò)關(guān)于 JavaScript 作用域的 5 個(gè)坑》

《Jquery插件(常用的插件庫(kù))》

《【JS】如何防止重復(fù)發(fā)送ajax請(qǐng)求》

《JavaScript+Canvas實(shí)現(xiàn)自定義畫(huà)板》

《Continuation 在 JS 中的應(yīng)用「前端篇」》

作者: 李松峰

轉(zhuǎn)發(fā)鏈接:https://mp.weixin.qq.com/s/guAN1Cz2gYfKdBhmUpLyVA

總結(jié)

以上是生活随笔為你收集整理的javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。