JavaScript類型與函數(shù)解析

JavaScript類型與函數(shù)解析

快應用是基于nodejs開發(fā)的,因此我們必須掌握JavaScript這門語言,接下來的博客中,我們就重點學習nodejs必須掌握的JavaScript基礎知識。

JavaScript基礎

類型

JavaScript類型可以分為兩種:基本類型和復雜類型。

基本類型:number、boolean、string、null、undefined。

復雜類型:array、function、object。

訪問基本類型時訪問的是值,而訪問復雜類型訪問的是對值的引用。舉例:

//基本類型

var a = 1;

var b = a;

b = 2;

//輸出a的值為1,b的值為2

//復雜類型

var a = {'mm','nn'};

var b = a;

b[0] = 'pp';

//輸出a[0]為pp,b[0]也為pp;

這個例子就說明復雜類型中把一個對象賦值給另一個對象,這兩個對象指向的同一個地址,所以改動其中一個對象的值,另一個也會跟著改變。

注意:

因為JavaScript中變量的聲明都是用var關鍵字,所以就不容易區(qū)分變量值的類型,這個時候就要用到typeof和instanceof兩個關鍵字了。

typeof :可以獲取一個變量的類型,返回值為變量類型。

instanceof :與java關鍵字instanceof一樣,判斷一個變量是哪種類型,返回值為boolean。

與Java類似的是,JavaScript里面也有構造函數(shù)這一說法,比如string類型,下面就是創(chuàng)建字符串的兩種方式:

var a = 'abc';

var b = newString('abc');

//這兩個變量輸出的都是 abc

但是,如果你對a和b使用typeof關鍵字,會發(fā)現(xiàn)a是string ,而b卻是object,所以我們定義變量的時候盡量使用直觀的方式來定義,盡量不使用new。

另外,在if判斷中,除了false之外,null、undefined、' '、0這些都會被判斷為false,比如:

var a = 0;

if(a){

????//不會執(zhí)行

}

函數(shù)

與java中的函數(shù)很類似,但是JavaScript中函數(shù)是需要關鍵字 function,如下:

function funA(arg0, arg1, ... argN) {

????//函數(shù)體

}

注意:

1、函數(shù)參數(shù)不需要聲明類型,只寫形參的名稱就可以了。

2、聲明時不需要指定返回值類型,return可以有,也可以沒有。

3、javascript中的函數(shù)沒有重載的形式,后定義的函數(shù)會直接覆蓋前面的函數(shù)。

4、一個函數(shù)可以接收任意個參數(shù)。

上面第三點舉例:

function funA(){

????alert("11");

};

function funA('aa','bb'){

????alert("22");

};

調用funA(); 結果輸出 11 。

總結

這里總結一下函數(shù)的特點:

1、使用function關鍵字定義函數(shù)。

2、沒有任何的返回值類型。

3、函數(shù)的定義優(yōu)先執(zhí)行,與順序無關。

4、可以通過函數(shù)名賦值函數(shù),函數(shù)變量的類型是function對象。

5、參數(shù)列表不能有var關鍵字。

6、函數(shù)的參數(shù)列表在具體調用的時候實參個數(shù)可以和形參個數(shù)不同。

7、JavaScript函數(shù)天然的支持可變參數(shù)。

8、同名的函數(shù)最后聲明會覆蓋前面以聲明。Javascript中沒有函數(shù)重載。

作者:諾朗

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容