JavaScript是什么?
JavaScriptNode.jsemberjsjQuerybackbonejs反應阿賈克斯網絡開發(fā)角
說JavaScript在Web開發(fā)中的上升將是一個輕描淡寫。事實上,幾年前,著名的程序員深圳網站制作公司在哪兒說:
任何應用程序,可以用JavaScript寫的,最終將用JavaScript寫的。
在寫這篇文章的時候,有那么多的JavaScript框架和庫,這是壓倒性的不知道從哪里開始,特別是如果你是一個初學者。
我知道,我們在這里發(fā)布是面向那些已經在編寫Web應用程序或Web開發(fā)經驗做一些。但這不是目標受眾的這篇文章。
相反,這是專門為那些你從來沒有(或很少)寫過一行JavaScript,并想了解更多的關于語言和理解有什么。此外,我們要如何使用和什么期望從它。
總之,如果你是一位經驗豐富的專業(yè),那么這篇文章不適合你;但如果你好奇進入JavaScript卻不知道從何開始,那么該引物將幫助你在正確的方向。
我們還建立了一個全面的指南來幫助你學習JavaScript,不論你是剛開始作為一個Web開發(fā)者或你想探索更高級的主題。退房
學習JavaScript:完全指南
JavaScript定義
你可能已經聽說過JavaScript被稱為“客戶端腳本語言”,另一種說法是,它是一種編程語言,運行在Web瀏覽器。
另外,維基百科的定義是這樣的:
JavaScript是一種高層次的、動態(tài)的、非類型化,并解釋編程語言。它已經在ECMAScript語言規(guī)范化。
以上都是事實(有不同程度的復雜性),但值得注意的是,JavaScript可以運行在服務器端,太。這是超前的,雖然。相反,讓我們先談談以上幾點,我們就來談談服務器端JavaScript在文章后面。
高水平。當編程語言是高級的,這是一個建筑的細節(jié)不需要知道關于計算機的基本。你不需要管理內存,你不需要知道什么類型的處理器上運行,并且你不需要處理像指針(如語言如C或匯編)。
動態(tài)。語言是動態(tài)的,允許開發(fā)人員添加新的代碼或引入新的對象擴展語言的某些方面(如帖子對象)運行程序時還是需要編譯程序。這是JavaScript的強大功能。
類型化。 如果你有編程經驗,那么你可能會遇到某些類型的語言需要聲明變量的類型,你的工作。例如,也許你的變量將存儲 字符串 或 布爾。在JavaScript,這是沒有必要的。相反,你只需聲明一個變量的VaR關鍵詞
解釋。當一種語言是一種編譯語言,你寫的代碼轉換成可執(zhí)行的二進制文件,你可以分發(fā)給別人。在Windows中,這些文件被稱為EXE文件。在OS X上,這些往往是節(jié)目你從App Store或拖放到您的應用程序的目錄下載。JavaScript是解釋型的,也就是說沒有編譯。相反,代碼的解釋(如PHP),所以有中介的軟件叫坐你寫和計算機翻譯指令代碼之間來回翻譯。
標準化。JavaScript 是 規(guī)范(它的正式名稱是ECMAScript)這意味著任何瀏覽器實現了標準將提供相同的功能,其他瀏覽器。是不是規(guī)范,那么Chrome可能會提供一些功能,邊緣不反之亦然。
現在我們已經實現了語言的屬性,我們可以討論語言的某些方面和細微差別。
雖然都是重要的,了解作品的語言也很重要(尤其是如果你曾經使用過其他語言)使你不預先進入發(fā)展構想如何它可以工作或如何應該工作
相反,我寧愿蓋如何 <em>不</em>工作,你可以開始寫代碼,了解它到底是什么,你做的。
關于Language
首先,JavaScript是一種面向對象的編程語言,但它可能不同于你通??词裁匆稽c(如果你以前使用的面向對象的編程語言)。
JavaScript是什么所謂的原型語言。這意味著所有的JavaScript中的對象,如字符串,是基于 原型。
這使得我們,作為開發(fā)商,添加額外的功能,通過使用對象 原型繼承:
基于原型的編程是一種面向對象的編程中,行為重用(繼承)是通過克隆現有的對象為原型的過程進行。
我認為,如果你從來沒有過的一種面向對象的語言,那么你可能在這一點上有優(yōu)勢,因為你沒有概念模型轉換為思考如何工作。
如果,另一方面,你 都曾在這些類型的語言,我認為它值得區(qū)分如何原型繼承不同于經典傳承:
在經典的傳承,我們,作為開發(fā)商,將編寫一個類。多個對象可以從這個類創(chuàng)建。此外,我們可以寫一個類繼承這個類,然后創(chuàng)建<em>這些</em>類的實例 。在這種情況下,派生類和基類共享代碼。所以當你創(chuàng)建一個類的一個實例,你得到的子類和父類的功能。
進入原型繼承,有沒有這樣的東西作為班。相反,你只需定義一個對象和功能介紹什么是必要的。當你要對一個已經存在的對象添加功能,您通過添加到對象的原型。如果你試圖調用一個對象的方法等數然后,它會先看看那個對象的方法。如果沒有找到它,然后它會鏈向上移動直到找到方法(可能生活在基地目標)。
最后,也許是最重要的事情需要注意的,就是當你改變一個對象的原型,然后對每個人使用該對象的訪問(至少在你的環(huán)境中)。
它真的很強大,它真的很酷,但它也需要一個輕微的轉變思維,如果你不習慣在那樣的環(huán)境中工作。
我們如何使用JavaScript呢?
在我們如何把JavaScript的使用方面,它最終取決于你的目標是什么。在這一點上,使用JavaScript意味著你需要“做點什么”的網頁上。這意味著控制的行為。
這可能是引入一個元素,刪除(或隱藏)的一個元素,或類似的東西。然后Web高級一點的瀏覽器能夠使異步調用的服務器,處理響應,然后更改頁的狀態(tài),基于此反應。
所有這一切都是通過阿賈克斯。如果你正在閱讀本文,你可能熟悉的術語。如果你沒有,你可以認為它是JavaScript打托管服務器的頁面然后把它接收 響應的一種方式所有的無刷新頁面。
但它的成熟, 甚至超越。
谷歌已經開發(fā)了一個高度復雜的JavaScript解析引擎稱為V8,和其他瀏覽器都致力于提供最佳的JavaScript性能, 為好。
Chrome的V8 JavaScript引擎的登陸頁面,谷歌
事實上,我們現在能夠使用工具如服務器編寫JavaScriptNode.js。此外,我們甚至可以混合應用跑在我們的移動設備。這意味著我們能夠為我們的手機解決方案,建立我們的平板電腦,與桌面計算機通過使用JavaScript。
對于一個寫作的NodeJS服務器上的JavaScript運行時引擎的主頁
這是來自一個曾經作為一種有生命的物體在屏幕上的語言。所有這一切說的是,如果你是新來的JavaScript,不要低估 它。
“我應該期望從語言?”
以上都是有趣的閱讀,并看看我們能做它的樂趣,但從純粹實用的角度來看,期望從JavaScript語言,我們能做什么?
無論你是新來的語言或你想學習一門新的語言的時候,你來自另一個背景,你有一個期望的水平是什么語言可以提供。
雖然我們已經談論語言從內部視角是如何工作的,我們還沒有談到,在語言中可用的對象,更別說API。說實話,覆蓋在語言的API和內置函數將一篇自己的所有。
但覆蓋其內置的對象嗎?這是我們可以回顧之前結束這篇文章:
<strong>對象</strong>?;鶎ο髲乃衅渌麑ο罄^承他們的一些基本的功能。
<strong>功能</strong>。因為JavaScript是面向對象的,這意味著一切都是對象,包括函數。所以當你創(chuàng)建一個新的功能,你創(chuàng)建一個引用和函數類型的一個對象。和功能,您可以檢查運行時的性能(如傳入的參數)。
布爾。這個對象作為一個布爾值的包裝對象。在許多語言中,布爾值數據類型是真正的或假。在JavaScript中,你仍然可以用這些價值的工作,但他們都被理解為對象。
數。在許多編程語言,有原始的類型,如浮動,int,雙,等等。在JavaScript中,只有一個號碼,它也是一個對象。
<strong>日期</strong>。日期在編程的工作是永遠的樂趣,尤其是當你介紹時區(qū)。我不能說JavaScript將解決你所有的問題,因為它涉及到時區(qū),但它可以讓你更容易的工作日期(所有的方式從年月到天,小時,分鐘,和第二)。
<strong>字符串</strong>。幾乎每種編程語言都有一個原始的字符串數據類型。JavaScript并沒有太大的不同就是,你會期望,字符串與自身屬性的對象。
記住,所有你看到的上面的類型對象的屬性(功能),你可以調用自己的。這并不意味著你需要調用構造函數來初始化變量。那就是,你可以創(chuàng)建字符串和布爾值和數字像這:
7
<trans data-src="var example_string = 'Hello world!'">無功example_string =“Hello World!”</trans><trans data-src=";
var example_boolean = true;
var example_number = 42;">;
VaR example_boolean = true;
;</trans>
但是,最終,他們仍然是對象。
需要明確的是,這些都是 <em>基本</em>對象。有更先進的對象,是值得研究的,尤其是如果你將錯誤處理工作,各類藏品超出數組,等等。
如果你在閱讀更多有關這些感興趣,那么我強烈建議檢查出本頁在Mozilla開發(fā)者網絡。
庫和框架是什么?
如果你一直保持的各種框架,圖書館,和其他在JavaScript經濟存在的工具,那么你就不在是多么的充滿活力的經濟已經成為。
但是這篇文章是針對那些想要開始JavaScript?,F在你有了一個基本的了解語言的結構和它是如何工作的,它的時間來看看庫和框架提供幫助,減少網絡和/或應用程序開發(fā)。
jQuery是一個庫,旨在提供一個跨瀏覽器的API,允許你“寫更少的代碼,做更多的事情。”
角是一個JavaScript框架,旨在使建筑單頁應用程序更加容易。
反應是一個用于構建用戶界面的JavaScript庫。
骨干通過使用Web應用程序模型,給結構的集合,和觀點。
ember.js又是一個框架,“創(chuàng)造雄心勃勃的Web應用程序”。
和更多的。
這是 <em>遠</em>從一個完整的清單,哪些是有效的,但它是一個開始,這是極少數的選擇那些熟悉JavaScript至少應該知道,即使你不做任何與他們的工作。
當你開始學習JavaScript開始拿起這些工具,你會發(fā)現是多么的流行,他們中的一些人談到一些你自己喜愛的應用程序。
學習JavaScript
正如你所期待的,什么什么懶覺都是“教學技巧,世界各地數以百萬計的人”。那么,這樣做后如果不包括我們的一些比較流行的JavaScript的文章和課程鏈接?
答:JavaScript ES6,你知道正確的工具的工作嗎?
JavaScript信守承諾
創(chuàng)建WordPress和Angular.js單頁應用
在6模板字符串的天才
JavaScript ES6基礎
測試角指令
Windows 10的通用應用程序的JavaScript
所有這些資源是理想的開始使用JavaScript和將它添加到您的Web開發(fā)技能的劇目。
結論
當涉及到網站開發(fā),JavaScript是留在這里。雖然你可能不會使用什么被認為是“香草JavaScript”,選擇其中的許多圖書館和/或框架是可用的,JavaScript是一種語言,幾乎每一個Web開發(fā)者應該知道。
當然,不是每個人都<可以在前端 。有些是單純的服務器端開發(fā);有些是純粹的客戶端開發(fā)。盡管如此,我們都必須共同努力,確保我們的應用程序的各個部分互相溝通。
為此,它從客戶端了解數據的至少重要的是發(fā)送到服務器端通過JavaScript,以及它如何處理在服務器端,然后返回客戶端可采用任何方式。
不要這么快就把JavaScript只因為你不是一個前端開發(fā)。奇怪的是,有人和你一起工作的是使用它,需要你的工作以配合應用部分。
當然,本文只是劃傷表面。正如我一開始所說的,本文的目的是解釋JavaScript是什么,如何使用,和所期待的,尤其是對于那些剛開始使用的語言。
JavaScript已經成為事實上的語言工作的網。這不是沒有它的學習曲線,并有框架和庫讓你忙,也不少。 如果您正在尋找額外的資源來學習或使用您的工作,看看我們有什么可以在 什么什么懶覺市場。
如果你喜歡這篇文章,你也可以看看 在 我的課程和教程我的個人資料頁,而且,如果你有興趣,你可以閱讀更多的文章是關于WordPress和WordPress的發(fā)展 在我的博客 。