javas cript入門要了解的知識和書籍java
想要進入IT行業,領取高額的薪資,這但是不容易的,首先須要本身掌握相關的專業知識,而且可以經過相應的考覈。對於不少想要從事相關行業的人員來講,可能最好的方式就是先學習一些基本的知識和操做內容,以便可以奠基必定的基礎。面試
大多數人以爲學習Javas cript是一件容易的事情,其實也並無錯,js的確是一個容易上手的語言。這就致使不少人都會用Javas cript,但卻不多有人能用的很精通的緣由,由於他們大小看js這門語言的基礎和內在了,基礎,不管什麼時候都是一個重要的存在,最直接的就是在你面試的時候,若是連js的數據類型都答不上來那是否是就太過度了。這一點課工場的培訓班作的就很不錯,理論與實踐相結合,讓學員可以熟練的掌握相關技術。接下來,就讓咱們一塊兒總結一下Javas cript的基礎。express
1、語法編程
javas cript中的一切(變量、函數名和操做符)都區分大小寫。設計模式
標識符:就是指變量、函數、屬性的名字,標識符要求以下數組
1 第一個字符必須是一個字母、下劃線(_)或一個美圓符號($)瀏覽器
2 其餘字符能夠是字母、下劃線、美圓符號或數字安全
3 不能把關鍵字、保留字、true、false、null用做標識符ide
註釋函數
// 單行註釋
/*
*
* 多行註釋
*
*/
嚴格模式
嚴格模式是ES5引入的,嚴格模式定義一種不一樣的解析和執行模式,在嚴格模式下,對某些不安全的操做會跑出錯誤
// 在整個腳本中啓用嚴格模式,能夠在頂部添加以下代碼
"use strict"
// 也能夠指定函數在嚴格模式下執行
function doSomething(){
"use strict"
// ....
}
2、變量和數據類型
變量
一、ESCMs cript中的變量是鬆散類型的,即Javas cript使弱類型語言,換句話說js中的變量僅僅是一個保存值得佔位符而已,能夠保存任何類型的值。
二、定義變量用 var 操做符。
三、使用var操做符定義的變量將成爲定義該變量的做用域中的局部變量。
四、在函數做用域(塊做用域)中能夠經過省略var定義全局變量(不推薦)。
數據類型
一、js中有5中基本數據類型和1中複雜數據類型他們分別是
Undefined、Null、Boolean、Number、String和Object
二、typeof操做符用來檢測變量的數據類型,對一個值使用typeof操做符會返回字一個 字符串 ,標示着該值得類型:
「undefined」 —- 若是這個值未定義
「boolean」 —- 若是這個值是布爾值
「string」 —- 若是這個值是字符串
「number」 —- 若是這個值是數值
「object」 —- 若是這個值是對象或null
「function」 —- 若是這個值是函數
三、js的6中數據類型與使用typeof判斷出來的數據類型並不對應,區別就在於使用typeof獲得的類型標示中沒有」null」,而是多了一個」function」,其餘的都是同樣的,還要注意的就是對null是用typeof時會返回」object」,而且typeof操做符獲得的是字符串。
3、語句
if語句
語法:
if(條件){
}else if(條件){
}else{
}
解釋:
其中,條件能夠是任意表達式,並且對這個表達式的求值結果不必定非得是Boolean值,ES會自動調用Boolean()轉換函數將這個表達式的結果轉換成一個布爾值。
while語句
語法:
while(條件){
something...
}
解釋:
其中條件同if語句中的條件,while語句是前測試循環語句,即在執行循環體以前就要對條件表達式求值,因此循環體有可能永遠不會執行。
do-while語句
語法:
do{
something...
}while(條件)
解釋:
其中條件同if語句中的條件,do-while語句是後測試循環語句,即在對條件表達式求值以前,循環體中的代碼至少被執行一次。有趣的記法就是(while是先問再揍,do-while是揍完再問)。
for語句
語法:
for(初始化代碼, 條件, 執行循環體後要執行的代碼){
something...
}
解釋:
for語句也是一種前測試循環語句,因此循環體也有可能永遠不會執行,for語句和while語句的區別就是,在執行循環以前初始化變量和定義循環後要執行的代碼的能力。
for-in語句
語法:
for(property in expression){
something...
}
解釋:
for-in語句是一種精準的迭代語句,用來枚舉對象的屬性,須要注意的是,for-in語句輸出的屬性名的順序是不可測的,因瀏覽器而異。
switch語句
語法:
switch(表達式){
case value :
statement
break;
case value :
statement
break;
case value :
statement
break;
default :
statement
}
解釋:
switch語句是與if語句最密切的流程控制語句,Javas cript中的switch語句有不少本身的特點,首先:能夠在switch語句中使用任何數據類型,其次:每一個case的值(即value),不只僅只能是常量,也能夠是變量甚至表達式。
4、函數
Javas cript中的函數使用function關鍵字來聲明
function(arg0, arg1, arg2, ..., argn){
statements
}
理解參數
Javas cript中的參數有一下特色:
不介意你傳遞幾個參數,即便你在定義函數時規定了接收幾個參數,它都不會報錯。
不在意你傳遞的參數是什麼數據類型。
之因此會這樣,是由於Javas cript函數內部的參數使用一個類數組對象來表示的,因此函數接收到的始終都是這個類數組對象,而不關心這個對象裏面有什麼參數,在函數體內能夠是用arguments對象來訪問這個類數組對象,可使用方括號的語法如:arguments[0]、arguments[1]等,這個事實說明一個重要的特色:
命名參數並非必須的,它只是提供了便利而已。
經過arguments的length屬性獲知有多少個參數傳遞給了函數:
function howManyArgs(){
alert(arguments.length);
}
howManyArgs("string", 1); // 2
howManyArgs(); // 0
howManyArgs(1); // 1
關於arguments有一點比較有意思,就是它的值永遠與對應的形式參數同步,即修改了arguments[0]的值會使對應的命名參數的值也發生相應的改變。可是這並非說他們訪問的是相同的內存空間,他們有獨立的存儲空間,只不過值會同步而已,另外若是值傳遞一個參數,修改arguments[1]的值是不會改變對應的命名參數的值的,這是應爲,arguments.length的長度是由傳遞參數個數決定的,而不是命名參數的個數決定的,在這裏再次強調一次, 命名參數只是提供了便利而已,沒有任何其餘做用 。
沒有重載
因爲Javas cript中的函數沒有函數簽名的特徵,因此沒有重載,不過能夠經過檢查傳入函數的參數的類型和數量做出不一樣的反應來模擬重載。
下面給你們推薦一些書籍
入門推薦首選書籍:《Javas cript DOM 編程藝術 》
書內容簡單,易學,上手快,編程思想嚴謹。好的入門書,對你將來的編程都會有着深遠的影響。此本書不辜負這個歷史使命。
基礎學習書籍:《Javas cript 權威指南》
《Javas cript DOM 編程藝術 》只是入門,介紹了編程思想和很簡單的程序語法以及 DOM 的基本方法。而《Javas cript 權威指南》詳盡的介紹了 Javas cript 的各類函數以及特性。至於後面差很少 500 頁左右的參考(Javas cript 核心參考、客戶端 Javas cript 參考、DOM 參考)能夠暫時不看。
進階提高書籍:《Javas cript 高級程序設計》
在思想上強調 OPP 的概念,內容上注重實用,能夠從中學到更多更細緻的知識,而且注重瀏覽器差別的解決。 但若是要閱讀必須有必定的 Javas cript 的基礎(或者讀完前兩本),要否則會帶來挫折感,打擊學習的熱情。
拓展學習篇:《Ajax 實戰》
比較全面深刻的介紹了 Ajax 知識,其中 Ajax 開發的思想和 Ajax 開發中的設計模式等仍是很值得學習。最好在《Javas cript 高級程序設計》基礎上閱讀此書,能夠很好的幫助理解該書的內容。固然對於沒有後臺語言基礎的朋友來講,閱讀起來仍是有必定的障礙的。
Javas cript 水平到必定程度,書看得再多也不能獲得最後技術的提高,那時候就須要實踐,本身寫代碼,深刻到開發中鍛鍊,理論結合實際,纔會提高價值。