什麼是JavaScript?javascript
JavaScript
是一種直譯式
腳本語言,一種輕量級
的腳本語言
。html
什麼是腳本語言?前端
Script language
指的是它不具有開發操做系統的能力,而是隻用來編寫控制其餘程序的語言
。java
JavaScript
是一種嵌入式(embedded)
語言。它自己提供的核心語法並非不少,更多的功能須要依靠宿主環境(host)
提供。So,這門語言適合嵌入更大型的應用程序環境中,去調用宿主環境提供的底層API
。程序員
目前常見的JavaScript
宿主環境有瀏覽器
和服務器環境Node
。chrome
若是從語法
的層面來看,JavaScript
是一門對象模型語言
。各類宿主環境經過這個模型,描述本身的功能和操做接口,從而經過JavaScript
控制這些功能。數據庫
同時,JavaScript
還支持函數式編程
。因此在學習的過程當中,咱們須要更多的去了解和學習一些不一樣解決問題的方法。編程
JavaScript
的核心語法部分包括基本語法構造
和標準庫
,固然若是學習這門語言還須要學習不一樣的宿主環境
提供的一些其餘API
[這種API一般狀況下只能在該宿主環境下使用],從而在須要的時候方便調用。後端
例如常常涉及的宿主環境瀏覽器
,它提供的額外的API
能夠分紅三大類:數組
而若是你的宿主環境
是Node
這種服務器環境
,那麼就會提供各類操做系統的API
,例如文件操做API
、網絡通訊相關的API
等等。
爲何選擇學習JavaScript
對瀏覽器的操做能力:
JavaScript
誕生之初,就是爲了做爲瀏覽器內置腳本語言
,讓前端開發者可以操做瀏覽器。雖然在以前出現過不少相似的腳本語言,可是目前來說,JavaScript
是惟一的一種通用的瀏覽器腳本語言,全部的瀏覽器都支持。
開發者經過JavaScript
可讓網頁實現更多的展現效果,創造更好的用戶體驗。
更多的應用領域:
隨着近些年的發展,
JavaScript
這門語言從最開始的只能使用在瀏覽器
,漸漸的擴散到了服務端
。
一、瀏覽器的平臺化
隨着 HTML5
的出現,瀏覽器自己的功能愈來愈強,再也不僅僅能瀏覽網頁,而是愈來愈像一個平臺,JavaScript
所以得以調用許多系統功能,好比操做本地文件、操做圖片、調用攝像頭和麥克風等等。這使得 JavaScript
能夠完成許多之前沒法想象的事情。
二、Node
Node
項目使得 JavaScript
能夠用於開發服務器端的大型項目,網站的先後端都用 JavaScript
開發已經成爲了現實。有些嵌入式平臺(Raspberry Pi
)可以安裝 Node
,因而 JavaScript
就能爲這些平臺開發應用程序。
三、數據庫操做
JavaScript
甚至也能夠用來操做數據庫。NoSQL
數據庫這個概念,自己就是在 JSON(JavaScript Object Notation)
格式的基礎上誕生的,大部分 NoSQL
數據庫容許 JavaScript
直接操做。基於SQL
語言的開源數據庫 PostgreSQL
支持 JavaScript
做爲操做語言,能夠部分取代 SQL
查詢語言。
四、移動平臺開發
JavaScript
也正在成爲手機應用的開發語言。通常來講,安卓平臺使用 Java
語言開發,iOS
平臺使用 Objective-C
或 Swift
語言開發。許多人正在努力,讓 JavaScript
成爲各個平臺的通用開發語言。
PhoneGap
項目就是將 JavaScript
和 HTML5
打包在一個容器之中,使得它能同時在 iOS
和安卓上運行。Facebook
公司的 React Native
項目則是將 JavaScript
寫的組件,編譯成原生組件,從而使它們具有優秀的性能。
Mozilla
基金會的手機操做系統 Firefox OS
,更是直接將 JavaScript
做爲操做系統的平臺語言,可是很惋惜這個項目沒有成功。
五、內嵌腳本語言
愈來愈多的應用程序,將 JavaScript
做爲內嵌的腳本語言,好比 Adobe
公司的著名 PDF 閱讀器
Acrobat
、Linux 桌面環境 GNOME 3
。
六、跨平臺的桌面應用程序
Chromium OS
、Windows 8
等操做系統直接支持 JavaScript
編寫應用程序。Mozilla
的 Open Web Apps
項目、Google
的 Chrome App 項目、GitHub
的 Electron 項目、以及 TideSDK 項目,均可以用來編寫運行於 Windows
、Mac OS
和 Android
等多個桌面平臺的程序,不依賴瀏覽器。
著名程序員 Jeff Atwood 甚至提出了一條 「Atwood 定律」:
「全部能夠用 JavaScript 編寫的程序,最終都會出現 JavaScript 的版本。」(Any application that can be written in JavaScript will eventually be written in JavaScript.)
對初學者更加的友好:
一、能夠隨時隨地的使用瀏覽器進行開發練習。
二、簡單化的語法。即便複雜的語法你沒有掌握,也能夠經過簡單的語法實現。
三、與C/C++
、Java
的類似性。若是你學過這兩門語言,那麼再來學習JavaScript
能夠說將會很簡單。
日益強大的性能:
一、靈活的語法。
JavaScript
既支持相似C
語言清晰的過程式編程,也支持靈活的函數式編程
,能夠用來寫併發處理(concurrent)
。這些語法特性已經被證實很是強大,能夠用於許多場合,尤爲適用異步編程
。
JavaScript
的全部值都是對象,這爲程序員提供了靈活性和便利性。由於你能夠很方便地、按照須要隨時創造數據結構,不用進行麻煩的預約義。
JavaScript
的標準還在快速進化中,並不斷合理化,添加更適用的語法特性。
二、支持編譯運行
JavaScript
語言自己,雖然是一種解釋型語言
,可是在現代瀏覽器中,JavaScript
都是編譯後運行。程序會被高度優化,運行效率接近二進制程序。並且,JavaScript
引擎正在快速發展,性能將愈來愈好。
此外,還有一種 WebAssembly
格式,它是 JavaScript
引擎的中間碼格式,所有都是二進制代碼。因爲跳過了編譯步驟,能夠達到接近原生二進制代碼的運行速度。各類語言(主要是 C
和 C++
)經過編譯成 WebAssembly
,就能夠在瀏覽器裏面運行。
三、事件驅動和非阻塞設計
JavaScript
程序能夠採用事件驅動(event-driven
)和非阻塞式(non-blocking
)設計,在服務器端適合高併發環境,普通的硬件就能夠承受很大的訪問量。
JavaScript
這門語言,自己是一門用來在瀏覽器當中作交互效果的腳本語言
。雖然如今跟當年的環境發生了極大的變化,可是這項功能仍然還保留在JavaScript
的身體裏。
而H5
若是從狹義的角度講,能夠解釋爲html的第五代產品
,html
主要負責頁面的結構,而JavaScript
則須要和html
相互配合,負責頁面的交互效果。
若是從廣義的角度來講,能夠解釋爲新一代的富客戶端解決方案
,而對於這種開發需求,JavaScript
更是一個好的夥伴。
同時,若是單純的從語言自己來看,你們所說的H5
開發,大概能夠約等於Html+Css+JavaScript
。
若是從技術層面看,到了H5
的年代,提供給了JavaScript
更多的API
,讓開發變得更加靈活。
js(行爲):
咱們常說,HTML負責頁面的結構,CSS則是頁面的樣式,而js是頁面上的行爲,負責與用戶的交互。
ES:瀏覽器遵循的標準;
BOM:瀏覽器對象模型;
DOM:文檔對象模型。
在js中,經常使用的打印語句有:
一、alert();打印到彈出框;
二、document.write();打印到頁面;
三、console.log();打印到控制檯;
js中的數據類型:
字符型:string(s);
數值型:number(n);
布爾型:Boolean(b);
未賦值:undefined;
對象:object(o);
數組:array(a);
函數:function(fn);
......
數組與函數的本質也是對象。
能夠經過typeof判斷數據類型,數組與函數的數據類型是object。
變量的命名規則:
一、只能以字母、_、$開頭;
二、語義化,以數據類型開頭,使用小駝峯命名方式;
三、不用關鍵字和保留字命名。
小駝峯命名方式:第一個單詞小寫,後面的單詞首字母所有大寫。
運算符:
算數運算符:+、-、*、/、%;
關係運算符:>、<、>=、<=、==、===、!=;
邏輯運算符:||、&&、!;
賦值運算符:=、+=、-=、*=、/=、%=;
自增自減運算符:++,--;