JavaScript基礎1:類型與函數

前言

    快應用是基於nodejs開發的,因此我們必須掌握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關鍵字,所以就不容易區分變量值的類型,這個時候就要用到typeof和instanceof兩個關鍵字了。

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

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


與Java類似的是,JavaScript裏面也有構造函數這一說法,比如string類型,下面就是創建字符串的兩種方式:

var a = 'abc';
var b = new String('abc');
//這兩個變量輸出的都是 abc

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

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

var a = 0;
if(a){
    //不會執行
}


函數

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

function funA(arg0, arg1, ... argN) {
    //函數體
}

注意:

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

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

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

    4、一個函數可以接收任意個參數。

上面第三點舉例:

function funA(){
    alert("11");
};
function funA('aa','bb'){
    alert("22");
};
調用funA();  結果輸出 11 。


總結

    這裏總結一下函數的特點:

    1、使用function關鍵字定義函數。

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

    3、函數的定義優先執行,與順序無關。

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

    5、參數列表不能有var關鍵字。

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

    7、JavaScript函數天然的支持可變參數。

    8、同名的函數最後聲明會覆蓋前面以聲明。Javascript中沒有函數重載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章