2013-03-22 45 views
2

這是我測試的代碼 -爲什麼使用NULL與邏輯運算符拋出錯誤的JS

做工精細

document.write(1 && undefined); // prints undefined 
document.write(1 && 3); // prints 3 
document.write(1 && true); // prints true 

拋出錯誤

document.write(1 && NULL); // throws Error 

爲什麼使用NULL拋出arror雖然它的工作,即使未定義

雖然我測試typeof NULL及其給予undefined但仍然無法工作。我知道這一點。 (OOP編程新手)

+0

@Trailcoder可以嘗試document.write(1 && null); – rab 2013-03-22 07:01:58

+0

添加此代碼以使其正常工作:'var NULL = null;' – 2013-03-22 07:04:39

回答

3

NULL不存在,試試這個

try { 
    document.write(1 && NULL ); 
} catch (e) { 
    document.write(1 && null ); 
} 
+0

+1是第一次:) – Trialcoder 2013-03-22 07:57:56

1

NULL未定義,因爲它不存在。你正在考慮null

1

document.write(1 && null);輸出null

NULL在JavaScript中不存在,因爲它區分大小寫。它必須是null

0

這是null(小寫),不NULL(大寫)

0

因爲undefined是不存在的,瀏覽器拋出一個錯誤的象徵不同。從Chrome的控制檯:

> 1 && null 
null 
> 1 && NULL 
ReferenceError: NULL is not defined 
> NULL 
ReferenceError: NULL is not defined 
0

使用typeof something只給出了表達式的類型;在這種情況下它是undefined,所以使用該符號自然會給出錯誤。這是一樣的:

typeof unknownvar 
// "undefined" 
unknownvar 
// ReferenceError: unknownvar is not defined 

唯一的例外是符號undefined本身:

typeof undefined 
// "undefined" 
undefined 
// undefined 

你的具體情況,NULL應該null