javaScriptにおけるnot definedとundefinedとnullの違い
1804 ワード
一.is not definedとundefined
以前はis not definedとundefinedの違いにあまり注意していませんでしたが、毎回簡単に両者を未定義として理解しています.今振り返ってjsの基礎を整理してみます.まず単純な字面の意味から理解してみます.
is not defined:未定義
not defined:未定義、定義がなく、定義できません.
&&&
undefined:不明な
字面の意味からしても、大体両者の違いが分かります.前者は定義がない、つまりないです.後者は明確ではないです.つまり定義があるかどうかは分かりません.
1.not defined
デモを見る:
2.undefined
定義されていますが、値なしの変数
demo 2:
demo 3:
demo 4:
demo 7:
二.undefinedとnull
両者は同じです.if文ではfalseとして解析されます.
demo 8:
nullとundefinedはほぼ同義ですが、使い方には若干の違いがあります.
null nullは「対象がない」という意味です.ここに値があるべきではないです.は、関数のパラメータとして、オブジェクトではないことを表しています. は対象プロトタイプチェーンの終点となります.demo 10:
以前はis not definedとundefinedの違いにあまり注意していませんでしたが、毎回簡単に両者を未定義として理解しています.今振り返ってjsの基礎を整理してみます.まず単純な字面の意味から理解してみます.
is not defined:未定義
not defined:未定義、定義がなく、定義できません.
&&&
undefined:不明な
字面の意味からしても、大体両者の違いが分かります.前者は定義がない、つまりないです.後者は明確ではないです.つまり定義があるかどうかは分かりません.
1.not defined
デモを見る:
console.log(a)
// :a is not defined
定義されていない変数は宣言されていない変数です.このような変数は使用中に直接エラーを報告します.2.undefined
定義されていますが、値なしの変数
demo 2:
var a
console.log(a)
// , : undefined
一つは定義されていますが、値をundefinedとして付与する変数です.demo 3:
var p = 1
p = undefined
console.log(p)
// , : undefined
オブジェクトには割り当てられた属性がありません.demo 4:
console.log(window.a)
// , : undefined
demo 5:var a = []
console.log(a.b)
// , : undefined
demo 6:var a = {}
console.log(a.b)
// , : undefined
戻り値のない関数demo 7:
function f() {console.log(1)}
console.log(f())
// , : undefined
一つ注意したいのは、not definedとundefinedのtypeof()の値はいずれも「undefined」なので、typeof()では判断できません.二.undefinedとnull
両者は同じです.if文ではfalseとして解析されます.
demo 8:
!undefined ? console.log('undefined is false') : console.log('undefined is not false')
// undefined is false
demo 9:!null? console.log('null is false') : console.log('null is not false')
// null is false
使い方の違いnullとundefinedはほぼ同義ですが、使い方には若干の違いがあります.
null nullは「対象がない」という意味です.ここに値があるべきではないです.
Object.getPrototypeof(object.prototype)
// null
undefinedは上のdemo 2-demo 7のような部分です.