javascript中使用未定義變量或值的情況分析

字號(hào):


    本文實(shí)例講述了javascript中使用未定義變量或值的情況。分享給大家供大家參考,具體如下:
    javascript里面一般不能使用未定義的值,但是下面幾種情況除外:
    1. 賦值語句中:
    a=9;
    alert(a) //9
    賦值語句中需要賦值的變量沒定義會(huì)先定義,再賦值。另外從 a=b=c=8 不報(bào)錯(cuò)可以看出賦值語句是從右向左執(zhí)行的。
    2. for in語句中:
    for(key in {name:'goofy'}){
        alert(key) //"name"
    }
    alert(key) //"name"
    for in語句中in左邊的變量如果沒定義也會(huì)先定義
    3. typeof運(yùn)算符后:
    alert(typeof a) //'undefined'
    alert(a) //Uncaught ReferenceError: a is not defined
    typeof 運(yùn)算符可以跟未定義的值,但是不會(huì)去主動(dòng)定義它
    4. 對(duì)象屬性:
    var o={name:'goofy'}
    alert(o.name) // 'goofy'
    o[age]=24; // Uncaught ReferenceError: age is not defined
    alert(o.age)
    在定義對(duì)象屬性的時(shí)候如果是json直接量的形式可以使用沒定義的值, 但是如果用下標(biāo)的形式就會(huì)報(bào)錯(cuò)
    5. function的參數(shù):
    function fn(a,b){
        alert(a) //4
        alert(b) //'undefined'
    }
    fn(4)
    函數(shù)執(zhí)行的時(shí)候會(huì)主動(dòng)定義參數(shù),所以在函數(shù)體內(nèi)可以直接使用函數(shù)的參數(shù),即時(shí)方法調(diào)用的時(shí)候這個(gè)參數(shù)并沒有傳遞也不會(huì)報(bào)錯(cuò)
    希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。