Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
者 | Yanique Andre
譯者 | Arvin,責(zé)編 | 屠敏
頭圖 | CSDN 下載自東方 IC
出品 | CSDN(ID:CSDNnews)
以下為譯文:
JavaScript被淘汰了嗎?
我在許多不同的網(wǎng)站(最近是在Quora)上多次閱讀到這個問題,我一直在想這是不是真的。我在2018年才開始web開發(fā),所以我不了解JavaScript的歷史,也不了解它在開發(fā)領(lǐng)域的現(xiàn)狀。
因此,我進(jìn)行了一些研究去了解JavaScript的過去和現(xiàn)在,我發(fā)現(xiàn)的結(jié)果相當(dāng)令人震驚。
我們曾經(jīng)認(rèn)識的JavaScript確實已經(jīng)死了。
自1995年首次建立JavaScript以來,JavaScript一直存在很多問題。盡管進(jìn)行了一些更新,但許多主要問題仍然沒有得到解決。
JavaScript的一些問題包括:
缺少模塊系統(tǒng)
弱類型
高度依賴全局變量
由于語法的原因很難找到錯誤
在過去的十年中,用該語言很難創(chuàng)建框架。AngularJS最初是基于JavaScript的框架,直到遇到擴展框架的問題,所以他們決定使用TypeScript(JavaScript的一種變體)重新編碼整個框架,并將其重命名為Angular。
人們對JavaScript的興趣似乎也在下降。通過查看過去5年“JavaScript”一詞在google上的搜索頻度,似乎也能看到這門語言正在慢慢走向衰落。
這意味著什么呢?JavaScript真的要死了嗎?
我當(dāng)時也這么想。當(dāng)我在2018年第一次學(xué)習(xí)JavaScript時,JavaScript已擴展為不僅僅面向客戶端應(yīng)用程序,已經(jīng)擴展出許多涉及應(yīng)用程序不同周期的框架。
基于js的框架包括下面這些:
前端應(yīng)用程序(Angular,React,Vue.js)
后端應(yīng)用程序(Node.js,Express.js,Meteor.js)
Android / iOS(React Native,NativeScript,Ionic)
機器學(xué)習(xí)(TensorFlow)
您可以在這里找到JavaScript庫的完整列表:https://en.wikipedia.org/wiki/List_of_JavaScript_libraries
上面列表中的大部分JavaScript庫是在過去10年中創(chuàng)建的。這些庫有很多社區(qū)支持,并保持步調(diào)一致的更新(Angular平均每6個月更新一次)。開發(fā)人員對這些庫進(jìn)行了大量修改(尤其是前端框架),并在保持JavaScript的相關(guān)性方面發(fā)揮了巨大作用。
這也可以解釋為什么上面顯示的谷歌趨勢圖是向下的。對術(shù)語“JavaScript”的實際搜索呈下降趨勢,但對JavaScript庫的搜索呈上升趨勢。
隨著JavaScript庫的興起,也有越來越多的用戶提出與這些庫有關(guān)的問題。StackOverflow趨勢記錄了他們的問題與某個標(biāo)簽相關(guān)的百分比。看看在過去的十年中有多少關(guān)于JavaScript的問題:
這解決了涉及JavaScript的問題,
但是否解決了這門語言本身的問題呢?
多年來,人們對JavaScript的抱怨主要集中在其糟糕的語言特性上。值得慶幸的是,我們正在看到一個舊標(biāo)準(zhǔn)的復(fù)蘇,這有助于使語言更加具體和有效。
ECMAScript是一種編程語言,根據(jù)Ecma International創(chuàng)建的ECMA-262文檔進(jìn)行標(biāo)準(zhǔn)化。該文檔包含JavaScript作為編程語言必須遵循的標(biāo)準(zhǔn)列表。
ECMAScript創(chuàng)建于1997年,從1997年到2011年僅進(jìn)行了5次更新。這使JavaScript在21世紀(jì)的前十年一直保持著陳舊和過時的標(biāo)準(zhǔn)。直到2015年ECMAScript 6發(fā)行,這是對JavaScript的重大更改,允許許多類似的庫對其進(jìn)行修改。
自此ECMAScript已發(fā)布了5個版本,從2015年到2020年每年發(fā)布1個版本,并且現(xiàn)在還沒有停止。隨著發(fā)布版本步調(diào)的一致性,JavaScript開始不斷接收更新,變得更加健壯、高效,并且適應(yīng)性更強。
說了這么多,JavaScript真的死了嗎?
有些人會懷疑現(xiàn)在開始學(xué)習(xí)是否為時已晚。正確的答案是JavaScript從未像現(xiàn)在這樣活躍。
隨著對該語言的貢獻(xiàn)和支持達(dá)到前所未有的高度,學(xué)習(xí)該語言對開發(fā)者來說將是一筆巨大的財富。因為有如此多的庫可以選擇,你可以只使用JavaScript框架組成整個堆棧。
要求開發(fā)人員具有React和Angular經(jīng)驗的公司數(shù)量正在大幅增加,并且沒有放緩的趨勢。
我建議你花些時間學(xué)習(xí)JavaScript。無論你打算從事該行業(yè)還是只是想學(xué)習(xí)它,我認(rèn)為將來需要在應(yīng)用程序中使用JavaScript的地方有很多。該語言將被用在越來越多的框架中。它是未來的趨勢,而且發(fā)展得很快。
原文:https://medium.com/dev-genius/is-javascript-development-dying-1dbce0094fc0
本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源出處。
ava 和 Javascript 都最適合它們的使用,并且兩者也有相對不同的地方。
Java通常是:
一種強大的計算機編程語言。
它是構(gòu)建軟件應(yīng)用程序的獨立計算平臺。
它將每個項目視為對象和類。
Java 以 .class 擴展名編譯字節(jié)碼。
JavaScript 是:
一種輕量級的動態(tài)計算機編程語言。
它易于使用而不是用戶友好。
Javascript 用于使網(wǎng)頁更具吸引力。
也稱為腳本語言。
Java 和 Javascript 都是不同類型的應(yīng)用程序。
JAVA 和 JAVASCRIPT 之間的基本組件,有一些基本組件使 java 和 javascript 彼此不同。
對象:
在Java中,對象只是基于類并以.class擴展名編譯其文件,而且,它永遠(yuǎn)不會在不創(chuàng)建類的情況下制作任何程序,其次,Javascript 基于原型,原型也擴展為prototype.js。
語言:
Java 是一種強大、安全和靜態(tài)的編程語言,而 Javascript 是一種動態(tài)、輕量且易于使用的高級編程語言。
平臺:
Java 有一個獨立的平臺,Java 應(yīng)用程序只運行在 JVM 上,而不是 Javascript 開發(fā)的瀏覽器,即使它的代碼也只運行在瀏覽器上。
記憶:
與此相比,JAVA 具有高文件使用設(shè)備的大量存儲空間,Javascript 不使用太多內(nèi)存,并且將其文件存儲在比 java 更小的空間中。
編譯和解釋:
Java 既可以編譯也可以解釋其數(shù)據(jù),而 Javascript 只解釋該語言。
并發(fā):
在并發(fā)方面,Java 中有兩個基本術(shù)語基于線程的方法,其用法類似于拼接,而第二個術(shù)語,Javascript 中基于事件的方法,用于處理應(yīng)用程序的更改。
移動應(yīng)用:
Java 不僅支持 android,還支持 IOS 手機,另一方面,Javascript 意味著第三方使用。
這些是使 JAVA 和 JAVASCRIPT 彼此不同以及兩者用于不同用途的一些組件。
了解更多
tml5的流行近一兩年,在國內(nèi)主要是移動端和html5游戲的發(fā)展,國外也是最近紛紛使用html5,如谷歌,全面的停止flash的廣告的投放量,用html5取代之,那么html5較html的區(qū)別在哪里了,下面就簡單地談?wù)劊信e了13條區(qū)別。
1.html5和html的概念
我們現(xiàn)在web前端開發(fā)的靜態(tài)網(wǎng)頁,一般都是html4.0。同時是符合W3C的xhtml1.0規(guī)范來的。HTML4已經(jīng)10多年了,不會有任何改變了。
html5的定義比較長,就說簡單和好理解點,可以簡單點理解成:HTML 5 ≈ HTML4.0+CSS3+JS+API 。首先要注意的是,HTML5雖然現(xiàn)在很火,但是HTML5標(biāo)準(zhǔn)還在制定中,標(biāo)準(zhǔn)仍在改變。
2.在文檔類型聲明上的不同
html顯得格外冗長,在大多數(shù)人書寫代碼,都是靠編輯工具自動生成。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
html5卻是不同,只有簡簡單單的聲明,這也方便人們的記憶,更加精簡。
<!DOCTYPE html>
3.在結(jié)構(gòu)語義上
html4.0:沒有體現(xiàn)結(jié)構(gòu)語義化的標(biāo)簽,我們通常都是這樣來命名的
<div id="header"></div>
這樣表示網(wǎng)站的頭部。
html5:在語義上卻有很大的優(yōu)勢。提供了一些新的html5標(biāo)簽,比如:<header><nav ><article><aside><footer>
4. 簡化的語法
HTML5簡化了很多細(xì)微的語法,例如doctype的聲明,你只需要寫<!doctype html>就行了。HTML5與HTML5,XHTML1兼容,但是與SGML不兼容。
5. <canvas>標(biāo)簽替代Flash
Flash給很多Web開發(fā)者帶來了麻煩,要在網(wǎng)頁上播放Flash需要一堆代碼和插件。<canvas>標(biāo)簽使得開發(fā)者只要使用一個標(biāo)簽就 能和用戶產(chǎn)生UI交互。雖然目前<canvas>標(biāo)簽還不能實現(xiàn)Flash的所有功能,但是很快<canvas>就會讓 Flash看起來老土,哈哈!
6. 新增 <header> 和 <footer> 標(biāo)簽
HTML5設(shè)計的一個原則是更好的體現(xiàn)網(wǎng)站的語義性,所以增加了<header>和<footer>這樣的標(biāo)簽,用來明確表示網(wǎng)頁的結(jié)構(gòu)。
7. 新增 <section> 和 <article> 標(biāo)簽
與<header>, <footer>類似,<section>和<article>也有利于清晰化網(wǎng)頁的結(jié)構(gòu),更有利于SEO。
8. 新增 <menu> 和 <figure> 標(biāo)簽
<menu>可以被用于創(chuàng)建傳統(tǒng)的菜單,也可以用于工具欄和上下文菜單。<figure>標(biāo)簽使得網(wǎng)頁文字和圖片的排版更專業(yè)。
9. 新增 <audio> 和 <video> 標(biāo)簽
這兩個標(biāo)簽可能是HTML5里面最有用的兩個標(biāo)簽了。顧名思義,這兩個標(biāo)簽是用來播放音頻和視頻的。
可能在html4.0的時候,我們想要插入一段視頻,還需要引用一長段的代碼。但是在html5的情況下。我們只需要用于一個video標(biāo)簽即可。
<video src - "視頻地址" ></wideo>
提供這樣的標(biāo)簽有什么樣的好處呢?
第一:節(jié)省程序員寫代碼的時間。
第二:我覺得最主要還是在SEO的優(yōu)化上。
不管是我們自己來對網(wǎng)頁模塊命名,還是有這樣的標(biāo)簽。因為做網(wǎng)站最終的目的只有一個,那就是盈利。想盈利的話,就只有通過SEO優(yōu)化的技術(shù),把你網(wǎng)站排名做上來,這樣你的網(wǎng)站才有價值,且正是這一點,html5符合了這一點。為什么這么說呢?因為他定義的這些標(biāo)簽,更加有利于優(yōu)化,蜘蛛能識別你。
10. 全新的表單
HTML5對 <form> 和 <forminput> 標(biāo)簽進(jìn)行了大量修改,添加了很多新的屬性,也修改了很多屬性。
11. 刪除 <b> 和 <font> 標(biāo)簽
這個改進(jìn)我還無法理解。我不認(rèn)為刪除這兩個標(biāo)簽對代碼的改進(jìn)有很大的幫助。官方的解釋是應(yīng)該用CSS來替代這兩個標(biāo)簽。但我還是覺得對于簡單的文本,這兩個標(biāo)簽還是很方便的。
12. 刪除 <frame>, <center>, <big> 標(biāo)簽
我已經(jīng)記不得上次是什么時候使用這些標(biāo)簽了。
13. 強大的繪圖功能
可能有些動畫,或者圖片,在html5可以通過強大的繪畫功能,加上JS可以實現(xiàn)。而在html4.0卻不行。
在HTML5中,有兩個東西,是可以進(jìn)行繪圖的,我們一起來看看是哪兩個神奇的玩意。
1.Canvas標(biāo)簽
Canvas 通過 JavaScript 來繪制 2D 圖形,Canvas 是逐像素進(jìn)行渲染的。
在 canvas 中,一旦圖形被繪制完成,它就不會繼續(xù)得到瀏覽器的關(guān)注。如果其位置發(fā)生變化,那么整個場景也需要重新繪制,包括任何或許已被圖形覆蓋的對象。
SVG
SVG 是一種使用 XML 描述 2D 圖形的語言,SVG 基于 XML,這意味著 SVG DOM 中的每個元素都是可用的。您可以為某個元素附加 JavaScript 事件處理器。在 SVG 中,每個被繪制的圖形均被視為對象。如果 SVG 對象的屬性發(fā)生變化,那么瀏覽器能夠自動重現(xiàn)圖形。
與其他圖像格式相比(比如 JPEG 和 GIF),使用 SVG 的優(yōu)勢在于:
(1)SVG 圖像可通過文本編輯器來創(chuàng)建和修改
(2)SVG 圖像可被搜索、索引、腳本化或壓縮
(3)SVG 是可伸縮的
(4)SVG 圖像可在任何的分辨率下被高質(zhì)量地打印
(5)SVG 可在圖像質(zhì)量不下降的情況下被放大
那么都兩者都可以用于繪圖,我們一起來看看他們之間有何區(qū)別:
Canvas
1.依賴分辨率
2.不支持事件處理器
3.弱的文本渲染能力
4.能夠以 .png 或 .jpg 格式保存結(jié)果圖像
5.最適合圖像密集型的游戲,其中的許多對象會被頻繁重繪
SVG
1.不依賴分辨率
2.支持事件處理器
3.最適合帶有大型渲染區(qū)域的應(yīng)用程序(比如谷歌地圖)
4.復(fù)雜度高會減慢渲染速度(任何過度使用 DOM 的應(yīng)用都不快)
5.不適合游戲應(yīng)用
html5和html的區(qū)別甚多,就不在一一列舉了。
切圖網(wǎng)(qietu.com)是一家專門從事web前端開發(fā)的公司,專注we前端開發(fā),關(guān)注用戶體驗,歡迎訂閱微信公眾號:qietuwang
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。