javascript基礎知識大全
大多數人覺得學習JavaScript是一件容易的事情,其實也並沒有錯,js的確是一個容易上手的語言。這就導致很多人都會用JavaScript,但卻很少有人能用的很精通的原因,因為他們大小看js這門語言的基礎和內在了,基礎,無論何時都是一個重要的存在,最直接的就是在你面試的時候,如果連js的資料型別都答不上來那是不是就太過分了…… 接下來,就讓我們一起總結一下JavaScript的基礎。
一、語法
------------------------------
javascript中的一切(變數、函式名和操作符)都區分大小寫。
識別符號:就是指變數、函式、屬性的名字,識別符號要求如下
1 第一個字元必須是一個字母、下劃線(_)或一個美元符號($)
2 其他字元可以是字母、下劃線、美元符號或數字
3 不能把關鍵字、保留字、true、false、null用作識別符號
// 單行註釋
/*
*
* 多行註釋
*
*/
嚴格模式
嚴格模式是ES5引入的,嚴格模式定義一種不同的解析和執行模式,在嚴格模式下,對某些不安全的操作會跑出錯誤
// 在整個指令碼中啟用嚴格模式,可以在頂部新增如下程式碼
"use strict"
// 也可以指定函式在嚴格模式下執行
function doSomething(){
"use strict"
// ....
}
二、變數和資料型別
------------------------------
變數
1、ESCMscript中的變數是鬆散型別的,即JavaScript使弱型別語言,換句話說js中的變數僅僅是一個儲存值得佔位符而已,可以儲存任何型別的值。
2、定義變數用 var 操作符。
3、使用var操作符定義的變數將成為定義該變數的作用域中的區域性變數。
4、在函式作用域(塊作用域)中可以通過省略var定義全域性變數(不推薦)。
資料型別
1、js中有5中基本資料型別和1中複雜資料型別他們分別是
Undefined、Null、Boolean、Number、String和Object
2、typeof操作符用來檢測變數的資料型別,對一個值使用typeof操作符會返回字一個 字串 ,標示著該值得型別:
“undefined” —- 如果這個值未定義
“boolean” —- 如果這個值是布林值
“string” —- 如果這個值是字串
“number” —- 如果這個值是數值
“object” —- 如果這個值是物件或null
“function” —- 如果這個值是函式
3、js的6中資料型別與使用typeof判斷出來的資料型別並不對應,區別就在於使用typeof得到的型別標示中沒有”null”,而是多了一個”function”,其他的都是一樣的,還要注意的就是對null是用typeof時會返回”object”,並且typeof操作符得到的是字串。
三、語句
------------------------------
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語句最密切的流程控制語句,JavaScript中的switch語句有很多自己的特色,首先:可以在switch語句中使用任何資料型別,其次:每個case的值(即value),不僅僅只能是常量,也可以是變數甚至表示式。
label語句
語法:
label : statement
// 例項
start : for(var i = 0; i < count; i++){
alert(i)
}
解釋:
使用label語句可以在程式碼中新增標籤,以便將來使用,上面例子中的start標籤可以在將來由break或continue語句引用,使程式碼跳至標籤開始出執行,一般label語句都要與for語句等迴圈語句中的break或continue配合只用。
break和continue語句
語法:
// 例子
mylabel :
for(var i = 0; i < 10; i++){
for(var j = 0; j < 10; j++){
if(i == 5 && j == 5){
break mylabel;
// continue mylabel;
}
}
}
解釋:
break和continue語句都是用來跳出迴圈的語句,不同之處在於break語句會強制執行後面的語句,而continue語句只是跳出本次迴圈繼續執行下次迴圈。上面的例子中,結合使用break語句和label語句,控制程式碼的執行。
with語句
解釋:
with語句的作用是將程式碼的作用域設定到特定的物件中。嚴格模式下使用with語句會報錯。定義with語句的目的是簡化同一個物件的多次編寫問題,如下例:
var qs = tring(1);
var hostName name;
var url = ;
// 上面的程式碼中都包含location物件,使用with語句可以將程式碼簡化如下
with(location){
var qs = tring(1);
var hostName = hostname;
var url = href;
}
四、函式
------------------------------
JavaScript中的函式使用function關鍵字來宣告
function(arg0, arg1, arg2, ..., argn){
statements
}
理解引數
JavaScript中的引數有一下特點:
不介意你傳遞幾個引數,即使你在定義函式時規定了接收幾個引數,它都不會報錯。
不在乎你傳遞的引數是什麼資料型別。
之所以會這樣,是因為JavaScript函式內部的引數使用一個類陣列物件來表示的,所以函式接收到的始終都是這個類陣列物件,而不關心這個物件裡面有什麼引數,在函式體內可以是用arguments物件來訪問這個類陣列物件,可以使用方括號的語法如:arguments[0]、arguments[1]等,這個事實說明一個重要的特點:
命名引數並不是必須的,它只是提供了便利而已。
通過arguments的length屬性獲知有多少個引數傳遞給了函式:
function howManyArgs(){
alert(th);
}
howManyArgs("string", 1); // 2
howManyArgs(); // 0
howManyArgs(1); // 1
關於arguments有一點比較有意思,就是它的值永遠與對應的形式引數同步,即修改了arguments[0]的值會使對應的命名引數的值也發生相應的改變。但是這並不是說他們訪問的是相同的記憶體空間,他們有獨立的儲存空間,只不過值會同步而已,另外如果值傳遞一個引數,修改arguments[1]的值是不會改變對應的命名引數的值的,這是應為,th的長度是由傳遞引數個數決定的,而不是命名引數的個數決定的,在這裡再次強調一次, 命名引數只是提供了便利而已,沒有任何其他作用 。
沒有過載
由於JavaScript中的函式沒有函式簽名的特徵,所以沒有過載,不過可以通過檢查傳入函式的引數的型別和數量作出不同的反應來模擬過載。
-
網頁設計的佈局
網頁設計的工作目標,是通過使用更合理的顏色、字型、圖片、樣式進行頁面設計美化,在功能限定的情況下,儘可能給予使用者完美的視覺體驗。以下是小編為您帶來的網頁設計的佈局,看看吧!網頁設計的佈局11、響應式網頁設計響應式網頁設計是網頁設計的一種技術,可在N多種瀏...
-
高階PHP開發工程師崗位職責7篇
現如今,很多地方都會使用到崗位職責,崗位職責具有提高內部競爭活力,更好地發現和使用人才的作用。想學習制定崗位職責卻不知道該請教誰?以下是小編整理的高階PHP開發工程師崗位職責,僅供參考,希望能夠幫助到大家。高階PHP開發工程師崗位職責1工作職責:1、承擔機器學習...
-
PHP開發工程師的具體職責14篇
PHP開發工程師的具體職責1職責:1、對公司新的網站專案、系統專案、小程式專案進行開發;2、維護支援公司現有的網路和系統平臺工作執行;3、按時、獨立、高質量地完成工作,確保相關程式碼邏輯的正確性及健壯性;4、開發、維護、升級和優化系統,並能快速定位並及時修復...
-
javascript的return語句的作用
return語句在js中非常的重要,不僅僅具有返回函式值的功能,還具有一些特殊的用法,有個清晰的把握是非常有必要的。下面就結合例項簡單介紹一下return語句的作用。用來返回控制和函式結果:通常情況,return語句對於一個函式是很有必要的`,因為往往需要函式在一系列的代...