在 JavaScript 中,undefined 和 not defined 有什麼區別?
在 JavaScript 中,變數可以有兩種主要方式變為“undefined”。第一種是在宣告變數時沒有賦予它值。第二種是嘗試訪問一個不存在的變數。
JavaScript 中的 Undefined
當一個變數被宣告但沒有賦值時,它會自動被賦予“undefined”的值。如果忘記給變數賦值,或者有意不賦值(例如,等待使用者輸入),都可能發生這種情況。
如果嘗試訪問一個不存在的變數,也會得到“undefined”的值。如果打錯了變數名,或者嘗試訪問超出作用域的變數,都可能發生這種情況。
示例 1
以下是帶解釋的示例。
<html>
<head>
<title>Examples</title>
</head>
<body>
<div id="result"></div>
<script>
var foo;
document.getElementById("result").innerHTML = foo;
</script>
</body>
</html>在上面的示例中,變數“foo”被聲明瞭,但沒有賦予值。因此,當我們嘗試訪問它時,會返回“undefined”的值。
示例 2
<html>
<head>
<title>Examples</title>
</head>
<body>
<div id="result"></div>
<script>
var myObj = {};
document.getElementById("result").innerHTML = myObj.foo;
</script>
</body>
</html>在上面的示例中,我們嘗試訪問物件“myObj”的屬性“foo”。但是,由於此屬性不存在,因此會返回“undefined”的值。
JavaScript 中的 Not defined
“not defined”的值類似於“undefined”,都表示變數不存在。但是,兩者之間存在細微的差別。
“not defined”通常是由拼寫錯誤或嘗試訪問超出作用域的變數引起的。“undefined”通常是由忘記給變數賦值引起的。
示例
以下是帶解釋的示例。
<html>
<head>
<title>Examples</title>
</head>
<body>
<div id="result"></div>
<script>
var myObj = {};
try {
document.getElementById("result").innerHTML = myOb.foo;
}
catch(err) {
document.getElementById("result").innerHTML = err;
}
</script>
</body>
</html>在上面的示例中,我們嘗試訪問物件“myOb”的屬性“foo”。但是,由於此物件不存在,因此會返回“myOb 未定義”的 ReferenceError。
undefined 和 not defined 之間的區別
“undefined”和“not defined”的主要區別在於,“undefined”是可以賦值給變數的值,而“not defined”表示變數不存在。
另一個區別是,“undefined”通常是由忘記給變數賦值引起的,而“not defined”通常是由拼寫錯誤或嘗試訪問超出作用域的變數引起的。
結論
總之,“undefined”和“not defined”是 JavaScript 中的兩個不同的值。“undefined”表示變數已宣告但未賦值,而“not defined”表示變數不存在。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP