首頁  >  文章  >  web前端  >  javascript中的undefined和not defined區別範例介紹_javascript技巧

javascript中的undefined和not defined區別範例介紹_javascript技巧

WBOY
WBOY原創
2016-05-16 16:58:101075瀏覽

經研究發現,兩者之間有很大的區別,不知從英語講,這兩者都有啥區別,研究結果如下
測試os:ubuntu
測試瀏覽器:chrome

測試案例1
console.log(a)
報錯ReferenceError: a is not defined

測試案例2
var a
console.log(a)
無報錯,但是輸出undefined

測試案例2
var b = {};
console.log(b.a)
無報錯,但是輸出undefined

測試案例33
function c() {
}
var d = new c();
console.log(d.a)
無報錯,但是顯示undefined
關於typeof
以上所有用來測試的物件用typeof 回傳的都是String("undefined")
關於或運算||
var d = a||3
報錯a not defined
var a;
var d = a || 3
結果:d==3
var c = 22 || 44
c==22
var c = false || 33
c = = 33
if(x) {
}
報錯
var x
if(x) {
}
if內不執行

總結:
js中有兩種undefined 雖然用typeof 回傳都是String("undefined")
其中定義之後,但是未經任何操作或某物件的一個未定義的屬性,都屬於可以拿來運算的undefined ,可以用來當作邏輯運算
第二種的變量,完全沒有定義,而且沒有任何背景的(x.a,雖然x無a屬性,但是給x面子),屬於報錯類型不能被使用,除非用typeof函數
js中的或運算,不回傳bool值,而是傳回js對兩邊條件最後一個計算的值,例如1||2 1為真,2不需要計算,所以1||2 == 1 a||1 報錯
var a; a|| 1 == 1;

找了本辭典翻譯了一下
undefined可以翻譯成:不明確的,也就是不知道用來幹嘛的
而not defined 可以翻譯成未定義的

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn