JAVASCRIPT和JAVA、PHP的區(qū)別
站開發(fā)客戶端編程語言俗語就是前端,前端設(shè)計(jì)中使用了三種語言:HTML,CSS和JavaScript,HTML和CSS是網(wǎng)頁設(shè)計(jì)的基礎(chǔ),這大家都知道。JavaScript被用于添加網(wǎng)站的動態(tài)視圖,但是有很多人對JS、Java和PHP分不清。
1、JavaScript與Java
1.1、JavaScript與Java的相同點(diǎn)
JavaScript與Java這兩種語言都遵循OOPS(面向?qū)ο缶幊?概念,其中JavaScript可以直接添加到HTML,Java也可以用作Java Applet(Java小應(yīng)用程序)。
1.2、JavaScript與Java的不同點(diǎn)
運(yùn)行平臺:Java需要在JDK或JRE的JVM(Java虛擬機(jī))上運(yùn)行。另一方面,JavaScript在Web瀏覽器上運(yùn)行,因此不需要特定的平臺。有趣的是,所有最新的網(wǎng)絡(luò)瀏覽器都支持JavaScript。
范圍:在可用性方面,Java在任何地方都可用,并且也被認(rèn)為是一種獨(dú)立的編程語言。另一方面,JavaScript僅限于與HTML和CSS一起使用;抵制其全球使用。
編譯:Java是一種編譯和解釋語言,而JavaScript只是一個純文本代碼。這就意味著JS編寫的代碼在不同的平臺上解釋。
構(gòu)造函數(shù):構(gòu)造函數(shù)在Java中用于對象創(chuàng)建,而在JS中,構(gòu)造函數(shù)只是一個標(biāo)準(zhǔn)函數(shù)。
2、JavaScript與PHP
2.1、JavaScript與PHP的相同點(diǎn)
PHP(超文本預(yù)處理器)和JavaScript都可以用于Web開發(fā)任務(wù),它們無與倫比的重要性有助于編碼器構(gòu)建具有強(qiáng)大后端功能及吸引人的用戶界面。而且PHP和JavaScript都被稱為解釋語言(或腳本),這意味著它們的代碼都可以在其各自的環(huán)境(分別為JavaScript和PHP的瀏覽器和服務(wù)器)上運(yùn)行。
2.2、JavaScript與PHP的相同點(diǎn)
服務(wù)器與客戶端:在前端和后端的基礎(chǔ)上這兩種語言是不同的,JavaScript腳本語言是一種前端語言(除Node.js之外),而PHP是一種服務(wù)器端語言。
并發(fā):在PHP中多線程的概念可用于同時處理多個請求,另一方面在JavaScript中,編碼器只提供一些策略,如事件循環(huán)+節(jié)點(diǎn)聚類,這有助于處理相同的事件。
OOPS:如前所述JavaScript在編寫腳本時使用對象和它們之間的關(guān)系,另一方面PHP是一個程序性的面向?qū)ο笳Z言。
兼容性:JS語言可以嵌入HTML,XML和AJAX。另一方面PHP只能嵌入HTML,它不能與XML一起使用。但是還有其他選項(xiàng)與XML使用相同。
比較可以清楚地表明,JavaScript腳本語言有點(diǎn)類似于Java和PHP,但并不是一個能替代這些語言的語言。你可以使用JS作為支持語言,但你不能使它成為基于Web或基于應(yīng)用程序的編碼的基本語言。
作者 | Beau Beauchamp 譯者 | 彎月在流行文化的沖擊下,也許很多人都不贊同本文表達(dá)的觀點(diǎn),但我毅然決定再一次逆流而上。我認(rèn)為,雖然 PHP 百般受輕視,但這門編程語言的流行度比以往任何時候都高!為什么?怎么 PHP 還沒死嗎?不是有那么多比 PHP 更優(yōu)秀的編程語言嗎?不,并沒有。如果真的有這樣的語言的話,它們早就帶頭干掉 PHP 了。我們需要重新審視什么才是“更好”的編程語言。為什么 PHP 還沒死?如果你表示不解,那可能是因?yàn)槟悴⒉涣私饩幊?、程序員、市場和民主。實(shí)際上,這與代碼、函數(shù)或語法沒有任何關(guān)系。抨擊 PHP 成為了一種時尚
如今,為了在編程的圈子內(nèi)走紅,你就必須抨擊與“主流文化”吹捧的編程語言有競爭關(guān)系的語言。這與語言本身的功能無關(guān),只是因?yàn)槲幕陀悬c(diǎn)像宗教。程序員是一群固執(zhí)己見的人,非常傲慢,但我們必須克服這些缺點(diǎn)。我們喜歡抨擊我們不喜歡和不使用的編程語言。你會發(fā)現(xiàn)有些工程師說 Java 很糟糕,有些說 C# 很糟糕,而有些則說 Go 很糟糕。至于具體是什么語言根本不重要,總會有人批評。此外,還有一種更深的鄙視,最近這段日子 PHP 和 Python 之間默默地展開了一場較量,似乎學(xué)術(shù)界正在策劃一場陰謀:干掉 PHP,讓 Python 取而代之。如今,你甚至?xí)l(fā)現(xiàn)在一些維基百科的頁面中,LAMP 技術(shù)棧中的 P 居然神奇地變成了 Python。20 年前,在我使用LAMP 的時候,這幾個字母指代的可是 Linux、Apache、MySQL 和 PHP,當(dāng)時的 P 指的可是 PHP,而不是 Python,甚至不是Perl。我并不是說這些定義不能改變。也許是我的疑心太重了?不夠包容?還說 Python 占據(jù)了 PHP 的位置?對于我們大多數(shù)人來說,大學(xué)里學(xué)習(xí)了 Python,還有其他一些實(shí)際工作中可能永遠(yuǎn)也用不到的小眾語言。雖然我們的老師或其他菜鳥會說:“PHP 很糟糕”,但也許他們中的大多數(shù)人從未編寫過一行 PHP 代碼。事實(shí)上,你甚至可能會懷疑是否真的有人從事專業(yè)的 PHP 編程工作。普通人對 PHP 的不屑一顧實(shí)際上并不合邏輯,而且也不是發(fā)自內(nèi)心的。只不過,與朋友在咖啡館聊天的時候,我們習(xí)慣于一起鄙視某些明星、網(wǎng)紅或者 PHP。此外,還有一些編程純粹主義者,他們愿意浪費(fèi)寶貴的時間吹毛求疵,討論 PHP 如何糟糕。大多數(shù)這樣的爭論都會圍繞個人的偏好,或者他們不喜歡的細(xì)微差別,為的是宣傳自己喜歡的編程語言,并希望這些語言一統(tǒng)天下!Javascript 和 Node.js 又何嘗不是呢?你不是一樣在用?有些人就連這都要抱怨,是因?yàn)樘奖懔藛幔?/span>當(dāng)一種語言真正做到民主化,而不是由哪個“專家高手”憑一己之力一手編寫而成,就會出現(xiàn)這樣的問題。可見,他們對 PHP 的批評通常都源于個人偏好,或者只是雞蛋里挑骨頭。要是這么說的話,我們也可以針對Python、C#、Java、Go、Javascript 或其他任何語言挑出相同的毛病。作為程序員,我們喜歡抱怨,滿腹牢騷。但作為程序員,我們喜歡抨擊 PHP 的真正原因是,我們固有的狂妄自大和赤裸裸地嫉妒。
PHP更容易使用
PHP誕生于 90 年代中期,甚至在我們中的一些人出生之前。我從 2000 年初開始使用 PHP,當(dāng)時的版本正在從 4 向 5 過渡,后來我開始使用 CodeIgniter、ZendFramework,在自己的框架中編寫應(yīng)用。我認(rèn)為 PHP 長盛不衰的原因,也是這門語言不會消亡的主要原因是,它不僅嵌入到了各類新舊應(yīng)用程序中,也嵌入到了新老程序員的腦海中,他們使用 PHP 已經(jīng)長達(dá)幾十年了。我們不會離世,我們編寫的商業(yè)代碼也不會消失。有趣的是,Python 誕生于 1991 年,那時PHP 還沒有出現(xiàn)。雖然 Python 的生命更長,但它的采用未能達(dá)到 PHP 如今的水平。在我個人看來,與 PHP 相比,Python 使用起來很痛苦。這個問題在 Python 3 中有所緩解,但在 15 年前,Python 還沒有各種開箱即用的、“花里胡哨”的函數(shù),遠(yuǎn)比不上 PHP。你必須手動安裝很多功能。此外,我發(fā)現(xiàn) Pyhon 還有一個問題,而且這個問題一直延續(xù)至今,那就是空格。我討厭使用空格作為分隔符的語法。我希望按照自己喜歡的方式分隔代碼,而且不希望編程語言礙手礙腳。無論你再怎么說得天花亂墜,代碼是我的,我想怎么寫就怎么寫,誰也管不著。Python一直吹噓自己的空格語法“易于閱讀”,但這不過是營銷的空話罷了。我個人認(rèn)為,Python 使用了最糟糕的語法,還不自知。這種自以為是的語法很容易引入錯誤。最初,在 IDE 能夠所有這些問題之前,我相信沒有程序員喜歡這種語法。至少我個人就不喜歡。這也是幾十年來該語言的采用率一直很低迷的部分原因。其實(shí)就是因?yàn)檫@種語法對用戶不夠友好。此外,我認(rèn)為早年間人們并不知道 Python 的存在。它作為一種腳本語言嵌入到 Linux 發(fā)行版中,這就是它的主要用途。沒有人會跑出來大喊道:“我可以用 Python 構(gòu)建網(wǎng)站了!”事實(shí)上,雖然我們可以用 Python 做網(wǎng)站,但優(yōu)秀的工程師都知道 Python 的強(qiáng)項(xiàng)并不是做網(wǎng)站。除了我個人對語法的偏好之外,Python 在功能上是一門非常強(qiáng)大的語言,特別是它的庫可以用在數(shù)據(jù)科學(xué)或其他側(cè)重于數(shù)學(xué)計(jì)算的地方,這些情況下精度是必須滿足的要求。
PHP是任何人都可以使用的語言
我同意,在過去的 15 年間,Python 推出了許多更新,并超越了 PHP,只不過這些更新晚了十年。2008年發(fā)布的 Python 3 實(shí)際上打破了向后兼容性。Python 2 的代碼無法與 Python 3 一起運(yùn)行,你需要做一定的修改。但是,如果有一百萬行代碼需要更新,那就沒戲了,尤其是在企業(yè)環(huán)境中。公平地說,PHP 7 和 8 也破壞了一些 PHP5 的代碼(沒有 PHP 6)。我是ZendFramework 1 社區(qū)的一員,該社區(qū)幫忙更新了運(yùn)行在 PHP 7 和 8 之上的框架。幸運(yùn)的是,在將 ZF1 升級到 PHP 7 和 8 時,我的企業(yè)遺留代碼幾乎沒有損壞。所以,大部分 PHP 5.6 代碼仍然可以向后兼容。但也許真正幫助 PHP 一炮而紅的事件是,一家成立于 2005 年的名為 Automattic 的小型初創(chuàng)公司。WordPress剛開始的時候很不起眼,但它不僅改變了開發(fā)人員,而且也改變了普通人發(fā)布網(wǎng)站的方式。到目前為止,最好的發(fā)布選擇是 Drupal、Joomla 或其他一些BBS 軟件。但這些軟件使用起來都很痛苦,因?yàn)榫帉戇@些軟件的人的思考方式更接近程序員,而不是普通用戶。如果 WordPress 是用 Python 編寫的,那么可能 PHP 真的會走下坡路。但我敢說,Python 會阻礙 WordPress 的迅速崛起,甚至完全阻止。采用以及擴(kuò)展貢獻(xiàn)者的支持將關(guān)系到語言或應(yīng)用程序在開源市場中的生存。而易用性是刺激采用率迅速上漲的關(guān)鍵。作為一名受過大學(xué)教育的軟件工程師,無論你如何詆毀 PHP,都無法否認(rèn) PHP 不僅受到了專業(yè)軟件工程師的青睞,而且就連兼職人員、家庭主婦、平面設(shè)計(jì)師、公司經(jīng)理、企業(yè)家和小學(xué)生都能使用計(jì)算機(jī)編寫網(wǎng)頁。可以說 PHP 是信息時代的 BASIC(語言)。作為一名軟件工程師,你的思考方式必然和軟件工程師一樣,而不是那些只想利用有限的時間和資源為自己的小企業(yè)建立一個網(wǎng)站的人。而 WordPress 和 PHP 改變了這一切。WordPress本身很容易使用,但功能很有限。普通人可以利用 WordPress 的插件架構(gòu),編寫很小的 PHP 代碼片段,他們不需要重寫整個類或成為軟件工程師來完成這些工作。數(shù)以百萬計(jì)的業(yè)余程序員通過 WordPress 在網(wǎng)絡(luò)上與其他人分享他們的成功,并發(fā)展了這個平臺。通俗易懂的 PHP 語言讓普通人也可以編寫有效的代碼。簡單、沒有特殊要求、弱類型、不需要編譯,就可以運(yùn)行。
PHP與互聯(lián)網(wǎng)
15年后的今天,PHP 為 78% 的 Web 提供支持。僅 WordPress 就占所有網(wǎng)站的近 40%,并擁有近 2/3 的 CMS 市場份額!關(guān)鍵是Python 希望占有這些市場的 10%!盡管 Python 純粹主義者對 PHP 充滿仇恨,但 Python 僅占 Web 的不到 1.5%。有些企業(yè)客戶的招聘人員曾聯(lián)系過我,他們希望刪除所有的 Python Web 代碼,并換成 PHP。你可能會感到很震驚,但其實(shí)這種情況應(yīng)該更多。為什么?因?yàn)槔蠈?shí)說,Web 不是 Python 的主戰(zhàn)場,Python的主要用戶是數(shù)據(jù)科學(xué)和其他專家,而且有這方面經(jīng)驗(yàn)的人才供不應(yīng)求。通常公司需要靈活。當(dāng)需要擴(kuò)大團(tuán)隊(duì)或有人離職時,他們不可能花費(fèi)數(shù)周或數(shù)月來尋找新的 Python 人員。而且 Python 工程師也很貴。對于小型企業(yè)來說,尋找 PHP 程序員要容易得多,而且如有必要甚至可以進(jìn)行培訓(xùn)。關(guān)鍵是你可以找到擁有數(shù)十年經(jīng)驗(yàn)的高級 PHP 架構(gòu)師,比找相應(yīng)的 Python 人員要容易得多。關(guān)鍵是,如果你在一家公司工作,如果沒有正當(dāng)理由就想用 Python 編寫網(wǎng)頁或中間件,那么就會遭到責(zé)備。因?yàn)楣緯榇吮池?fù)上 Python 代碼,將來他們需要花費(fèi)巨額資金來刪除這些代碼,并用正確的工具替換。應(yīng)用程序架構(gòu)師的首要工作是,針對企業(yè)的實(shí)際情況,選擇最有效的技術(shù)。不能因?yàn)榫W(wǎng)上非常流行,或者是學(xué)校里教了某種語言,你就根據(jù)自己的喜好來選擇。我建議完全用 Python 編寫 SaaS 應(yīng)用程序的情況非常少,考慮到 Python 的 Web市場份額,似乎大多數(shù)應(yīng)用程序架構(gòu)師都會選擇正確的語言。他們會在 Python 最擅長的領(lǐng)域選擇 Python,并根據(jù) PHP 的最大優(yōu)勢選擇 PHP。總結(jié)
作為工程師,我們都喜歡使用自己熟悉的語言,而且我們喜歡對自己不熟悉的技術(shù)嗤之以鼻。各個高校都在嘗試將 Python 作為通用的商業(yè)語言。但實(shí)際上,Python 更適合運(yùn)行服務(wù)器、數(shù)據(jù)科學(xué)、處理大型復(fù)雜數(shù)字,乃至加密貨幣的挖礦等。而 PHP 是大眾語言,它已成為互聯(lián)網(wǎng)事實(shí)上的語言。所以,如果你喜歡,可以繼續(xù)抨擊 PHP,繼續(xù)鄙視它。但無論怎樣,PHP 仍然是迄今為止網(wǎng)絡(luò)上使用最廣泛的語言,隨著 WordPress 的持續(xù)飛速增長和 PHP 7 和 8 的新速度,這種地位在短期內(nèi)不會改變。https://beau-beauchamp.medium.com/php-is-killing-python-2be459364284《新程序員003》正式上市,50余位技術(shù)專家共同創(chuàng)作,云原生和數(shù)字化的開發(fā)者們的一本技術(shù)精選圖書。內(nèi)容既有發(fā)展趨勢及方法論結(jié)構(gòu),華為、阿里、字節(jié)跳動、網(wǎng)易、快手、微軟、亞馬遜、英特爾、西門子、施耐德等30多家知名公司云原生和數(shù)字化一手實(shí)戰(zhàn)經(jīng)驗(yàn)!
頁制作概述
- HTML是WEB頁面的描述性語言
- CSS則是為HTML制定樣式的機(jī)制
- JavaScript是具有交互性Web設(shè)計(jì)最佳選擇
- CSS和JavaScript 是都可以獨(dú)立編寫的文本文件,還有PHP都可以嵌入在HTML中應(yīng)用
HTML基礎(chǔ)
- HTML(Hypertext Marked Language)
- 文件的后綴名.html 或 .htm
- Hypertext可以在文件中標(biāo)識圖片、鏈接、表格、文本等。
- Marked <或>以及字符串組成 <img><p></p>
- 是一種編程語言
- 瀏覽器解釋的語言
CSS基礎(chǔ)
- CSS (Cascading style sheets)
- 是一種用來表現(xiàn)HTML樣式的語言
- 它不能獨(dú)立使用,沒有HTML就沒有CSS
- 定義網(wǎng)頁的外觀和布局(字體、背景、文本、位置、邊緣、列表及其它)
- 也是用瀏覽器解釋的語言
HTML語法
- 元素:是一整體,是一對象
- <標(biāo)記名> </標(biāo)記名> 成對的標(biāo)記,也稱為容器
- 標(biāo)記中可以嵌套其它的標(biāo)記
- <br /> <hr />
- <a href=“www.xsphp”><b>地址</b></a>
- 使用標(biāo)記來描述元素的
- HTML文檔就是由元素和標(biāo)記組成的文件
HTML語法(二)
- HTML標(biāo)簽屬性
- <tag> content</tag>
- <tag><tag2>content</tag2></tag>
- <tag />
- <tag pro=“value” pro2=“value2”>
- content
- </tag>
- 屬性:在標(biāo)記中使用 [屬性=屬性值]
- 多個屬性使用空格分開
- 屬性的值(不管什么類型)可以使用單引號、雙引號、不加引號(使用雙引號)
- <font color=“red” size=“7”>
- 屬性是對標(biāo)記功能的擴(kuò)展或形為的修飾,每個屬性幾乎都是可選。
HTML語法(三)
- HTML標(biāo)記和屬性名都是不區(qū)分大小寫的
- HTML文檔注釋 <!-- 注釋內(nèi)容 -->
- 在注釋中不能再有注釋
- 在注釋掉的標(biāo)記之后,要保證還是一個結(jié)構(gòu)完好的文檔
HTML語法(四)
- HTML的代碼格式
- 任何回車或空格在源代碼中都不起作用
- 使用回車或空格進(jìn)行代碼排版
HTML語法(五)
- HTML字符實(shí)體
- 三部分:
- 以&開頭
- 一個實(shí)體名或是使用#號和一個體編號
- 以分號;結(jié)束
- < < <
- > > >
HTML語法(六)
- HTML顏色的設(shè)置
- 設(shè)置顏色時可以是一個關(guān)鍵字或RGB的數(shù)字格式
- White black blue ,gray green, red yellow
- #FF (0-255)
- #FF00BB(rgb) red green blue