1638011663
undefined
とnull
はJavaScriptの2つのデータ型であり、混乱を招くことがあります。このチュートリアルは、それらについて学ぶのに役立ちます。それは何かを説明しますundefined
とnull
されているJavaScriptで。また、これら2つの違いとその操作方法についても学習します。
両方とも、undefined
およびnull
、原始的なデータ型はJavaScriptに存在します。これらのデータ型は、ブール値、数値、文字列、記号、ヌル、および未定義です。JavaScriptの残りの値はオブジェクトです。もう一つundefined
とnull
共通しているのは、彼らは両方であるということですfalsy値。
これはundefined
、ブールコンテキストで使用する場合、それが考慮されることを意味しますfalse
。ブールコンテキストは、true
またはのいずれかのブール値に評価されるコンテキストfalse
です。ブールコンテキストの一例は、if…elseステートメントの条件です。これは、緩い等式のテストを避ける必要がある理由でもあります。
緩い等式をテストすると、バックグラウンドで型強制が発生します。undefined
とnull
、はどちらも偽物であり、これが考慮されます。緩い等式のテストの結果は一致します。このテストの結果はになりますtrue
。ただし、これは実際には正しくありません。
これらの2つのデータ型は同じではありません。多くの問題を回避したい場合は、緩い等式のテストを避けてください。緩い等式の代わりに、厳密な等式をテストします。厳密な同等性をテストする場合、JavaScriptは型強制を実行しません。厳密なチェックでは、値だけでなくデータ型も比較されます。
undefined
そして、null
JavaScriptでさまざまなデータ型です。これは、厳密な等式テストにより、これら2つが同じではないことが正しくわかることを意味します。
// Testing for loose equality:
console.log(null == undefined)
// Output:
// true
// Testing for strict equality:
console.log(null === undefined)
// Output:
// false
// Other examples of loose equality:
console.log(null == 0)
// Output:
// false
console.log(null == 0n)
// Output:
// false
console.log(null == null)
// Output:
// true
console.log(null == false)
// Output:
// false
console.log(null == NaN)
// Output:
// false
console.log(null == '')
// Output:
// false
// Other examples of strict equality:
console.log(null === 0)
// Output:
// false
console.log(null === 0n)
// Output:
// false
console.log(null === null)
// Output:
// true
console.log(null === undefined)
// Output:
// false
console.log(null === false)
// Output:
// false
console.log(null === NaN)
// Output:
// false
console.log(null === '')
// Output:
// false
変数を宣言するが、値を割り当てない場合、変数はになりundefined
ます。これは、JavaScriptが自動的に行うことの1つです。ただし、必要にundefined
応じて、自分で変数を割り当てることもできます。ただし、これはJavaScript開発者の間では一般的な方法ではありません。
// Declare variable without assigning it a value:
let car
// Log the value of "car":
console.log(car)
// Output:
// undefined
// Declare variable as undefined:
let house = undefined
// Log the value of "house":
console.log(house)
// Output:
// undefined
あなたが得るとき、他のシナリオがありますundefined
。これらのシナリオの2つの例は、存在しない配列要素、存在しないオブジェクトプロパティです。存在しないオブジェクトプロパティを操作しようとすると、JavaScriptはundefinedを返します。存在しない配列要素についても同様です。
// Non-existing object properties and array elements:
const book = {
title: 'Zero to One',
author: ['Peter Thiel', 'Blake Masters'],
publicationDate: 'September 18, 2014'
}
// Try to access non-existing property:
console.log(book.genre)
// Output:
// undefined
// Try to access non-existing array element:
console.log(book.author[2])
// Output:
// undefined
// Or:
const myObj = {}
const arr = []
// Log the value of myObj.prop:
console.log(myObj.prop)
// Output:
// undefined
// Log the value of first element:
console.log(arr[0])
// Output:
// undefined
を取得するときの別のシナリオundefined
は、明示的に何も返さない関数がある場合です。次に、暗黙的にを返しundefined
ます。関数にreturn
ステートメントがあるが、それに続くものがない場合も同じことが起こります。また、暗黙的にを返しundefined
ます。
// Create a function that doesn't return:
function myFunc() {}
// Call myFunc():
myFunc()
// Output:
// undefined
// Create a function that returns nothing:
function myFunc() {
return
}
// Call myFunc():
myFunc()
// Output:
// undefined
興味深いのはundefined
、JSONでは無効なことですnull
。もう一つ面白いことがあります。未定義の変数の型を取得しようとすると、JavaScriptは「undefined」を返します。JavaScriptでは、undefinedのデータ型は、独自の型「Undefined」を持つ特別な値です。
// Trying to use undefined in JSON
console.log(JSON.stringify({ name: undefined, age: null }))
// Output:
// '{"age":null}'
// Getting the data type of undefined:
console.log(typeof undefined)
// Output:
// 'undefined'
デフォルトのパラメータ値は、ES6で導入された便利な機能の1つです。この機能を使用すると、デフォルト値でパラメーターを宣言できます。この機能は、変数および関数で使用できます。デフォルトでは、値が未定義の場合、デフォルトのパラメーターが使用されます。関数の場合、パラメータが未定義の場合、つまり欠落している場合。
// Create function with default parameter value:
function myFunc(name = 'Unknown') {
return name
}
// Call myFunc without any argument (parameter being undefined):
myFunc()
// Output:
// Unknown
// Call myFunc with argument (parameter being defined):
myFunc('Jack')
// Output:
// 'Jack'
破壊的割り当ては、ES6で導入されたもう1つの機能であり、すぐに非常に人気がありました。この機能を使用すると、配列から値を抽出し、オブジェクトからプロパティを抽出して、それらを変数に割り当てることができます。これらすべてを1行のコードで実行できます。破棄の便利な機能の1つは、デフォルト値をサポートしていることです。
配列があると想像してください。必要なのは、この配列からいくつかの項目を抽出し、それらをいくつかの変数に割り当てることです。問題は、各変数に十分な値があるかどうかわからないことです。できることは、デフォルト値を使用することです。一部の変数が配列内で一致するものを見つけられない場合、デフォルト値を使用します。
これは、配列から受け取った値がになるためundefined
です。これにより、JavaScriptに割り当てるものがなく、デフォルト値を使用する必要があることが通知されます。
// Create an array:
const myArray = ['1 is one', '2 is two', '3 is three']
// Use destructuring assignment
// to assign values from myArray:
const [one, two, three, four = 'Four doesn\'t exist'] = myArray
// Get the value of one:
console.log(one)
// Output:
// '1 is one'
// Get the value of two:
console.log(two)
// Output:
// '2 is two'
// Get the value of three:
console.log(three)
// Output:
// '3 is three'
// Get the value of four:
// four will be undefined because the array
// contains only three items.
// This will trigger default value 'Four doesn\'t exist'.
console.log(four)
// Output:
// "Four doesn't exist"
null
JavaScriptでは遭遇するのが難しい場合があります。undefined
いくつかの条件が発生したときに自動的に割り当てられないのとは異なります。このため、誰かが割り当てる必要があります。多くのJavaScript開発者が一時的な値として使用することを好むため、これは非常に頻繁に発生する可能性があります。空または存在しない値を示します。
// Variable automatically assigned undefined:
let name
// Log the value of "name":
console.log(name)
// Output:
// undefined
// Variable explicitly assigned null:
let position = null
// Log the value of "position":
console.log(position)
// Output:
// null
undefined
独自のタイプ「未定義」があることを覚えていますか?null
JavaScriptにも興味深いことが1つあります。それは実際にはオブジェクトです。このオブジェクトには有効な値がありますが、プロパティがなく、変更できません。typeof演算子を使用すると、これを自分で簡単にテストできます。
でtypeof
演算子を使用するとnull
、たとえば「null」のようなものは得られません。代わりに、「オブジェクト」を取得します。これは最初からJavaScriptで行われています。これは、JavaScriptの元の実装では間違いと見なされています。
// Test type of null:
console.log(typeof null)
// Output:
// 'object'
console.log(typeof null === 'object')
// Output:
// true
ご存知のように、デフォルトのパラメータ値を使用すると、必要な値がundefined
。の場合にデフォルト値を宣言できます。興味深いことに、これはでは機能しませんnull
。関数を作成し、デフォルトのパラメーター値を使用するとします。少し後で、でその関数を呼び出して、を渡しnull
ます。
この場合に起こることは、あなたが期待することではありません。指定したデフォルト値は取得されません。代わりに取得するのはnull
です。デフォルトのパラメータを使用したい場合、またはそれらを使用したい場合は、これを覚えておいてください。そうしないと、問題が発生する可能性があります。
// Create function with default parameter value:
function myFunc(name = 'Unknown') {
return name
}
// Call myFunc with null as an argument:
myFunc(null)
// Output:
// null
JavaScriptには、ガベージコレクションと呼ばれるものがあります。これは、コード、オブジェクトに割り当てられたメモリを解放するためのプロセスです。このプロセスは、メモリ内の未使用の既存のオブジェクトを探して削除します。JavaScriptは、オブジェクトが使用されているかどうか、または参照されているかどうかを判別します。
一部のオブジェクトが参照されなくなると、JavaScriptはそのオブジェクトが不要になったと見なし、削除します。これにより、そのオブジェクトに割り当てられたメモリが解放されます。このプロセスは、バックグラウンドで自動的かつ定期的に行われます。これは、JavaScriptなどの高級言語の利点の1つです。
オブジェクトを作成するたびにメモリを割り当てる必要はありません。同様に、オブジェクトが不要になったときにそのメモリを解放する必要はありません。JavaScriptがこのメモリ管理を行います。どうnull
ですか?JavaScriptはメモリを自動的に管理しますが、一部のオブジェクトをガベージコレクションできることをJavaScriptに伝えることができます。
これを行う1つの方法は、オブジェクトを格納する変数を割り当てることですnull
。そのオブジェクトへの他の参照がない場合、JavaScriptはそれを削除します。これはすぐには起こりません。これは、ガベージコレクションの次のサイクルで発生します。
// Create an object:
let myObj = { name: 'Stuart' }
// Assign the variable myObj to null
// to make { name: 'Stuart' } available for garbage collection:
myObj = null
// { name: 'Stuart' } can be garbage collected.
// Multiple references:
// First reference to { isAlive: true }:
let objOne = { isAlive: true }
// Second reference to { isAlive: true }:
let objTwo = objOne
// Remove all references to { isAlive: true }
// so the object can be garbage collected:
objOne = null
objTwo = null
// { isAlive: true } can be garbage collected.
JavaScriptでundefinedとnullをチェックするのは、簡単で簡単です。厳密な等価性チェックと正しいデータ型を使用してチェックできます。typeof
演算子を使用することもできます。ただし、null
「null」ではなく「object」であることを覚えておく必要があります。
// Check if value is null:
const myVar = null
console.log(myVar === null)
// Output:
// true
// Check if value is undefined:
let myVar
console.log(myVar === undefined)
// Output:
// true
確認に使用できるもう1つのオプションnull
は、typeof
演算子を使用して値が偽であるかどうかを確認することです。null
偽物になり、空のオブジェクトはになりますtruthy
。
// Check if value is null:
const myVar = null
console.log(typeof myVar === 'object' && !myVar)
// Output:
// true
undefined
そしてnull
時々初心者のために混乱することができます2つのデータ型です。これは特に、いくつかの癖や予期しないことがあるためです。このチュートリアルが、JavaScriptの動作方法undefined
とnull
動作、およびJavaScriptの使用方法を理解するのに役立つことを願っています。
この記事が気に入ったら、今後の投稿を見逃さないように購読してください。
リンク: https://blog.alexdevero.com/undefined-and-null-in-javascript-explained/
1638011663
undefined
とnull
はJavaScriptの2つのデータ型であり、混乱を招くことがあります。このチュートリアルは、それらについて学ぶのに役立ちます。それは何かを説明しますundefined
とnull
されているJavaScriptで。また、これら2つの違いとその操作方法についても学習します。
両方とも、undefined
およびnull
、原始的なデータ型はJavaScriptに存在します。これらのデータ型は、ブール値、数値、文字列、記号、ヌル、および未定義です。JavaScriptの残りの値はオブジェクトです。もう一つundefined
とnull
共通しているのは、彼らは両方であるということですfalsy値。
これはundefined
、ブールコンテキストで使用する場合、それが考慮されることを意味しますfalse
。ブールコンテキストは、true
またはのいずれかのブール値に評価されるコンテキストfalse
です。ブールコンテキストの一例は、if…elseステートメントの条件です。これは、緩い等式のテストを避ける必要がある理由でもあります。
緩い等式をテストすると、バックグラウンドで型強制が発生します。undefined
とnull
、はどちらも偽物であり、これが考慮されます。緩い等式のテストの結果は一致します。このテストの結果はになりますtrue
。ただし、これは実際には正しくありません。
これらの2つのデータ型は同じではありません。多くの問題を回避したい場合は、緩い等式のテストを避けてください。緩い等式の代わりに、厳密な等式をテストします。厳密な同等性をテストする場合、JavaScriptは型強制を実行しません。厳密なチェックでは、値だけでなくデータ型も比較されます。
undefined
そして、null
JavaScriptでさまざまなデータ型です。これは、厳密な等式テストにより、これら2つが同じではないことが正しくわかることを意味します。
// Testing for loose equality:
console.log(null == undefined)
// Output:
// true
// Testing for strict equality:
console.log(null === undefined)
// Output:
// false
// Other examples of loose equality:
console.log(null == 0)
// Output:
// false
console.log(null == 0n)
// Output:
// false
console.log(null == null)
// Output:
// true
console.log(null == false)
// Output:
// false
console.log(null == NaN)
// Output:
// false
console.log(null == '')
// Output:
// false
// Other examples of strict equality:
console.log(null === 0)
// Output:
// false
console.log(null === 0n)
// Output:
// false
console.log(null === null)
// Output:
// true
console.log(null === undefined)
// Output:
// false
console.log(null === false)
// Output:
// false
console.log(null === NaN)
// Output:
// false
console.log(null === '')
// Output:
// false
変数を宣言するが、値を割り当てない場合、変数はになりundefined
ます。これは、JavaScriptが自動的に行うことの1つです。ただし、必要にundefined
応じて、自分で変数を割り当てることもできます。ただし、これはJavaScript開発者の間では一般的な方法ではありません。
// Declare variable without assigning it a value:
let car
// Log the value of "car":
console.log(car)
// Output:
// undefined
// Declare variable as undefined:
let house = undefined
// Log the value of "house":
console.log(house)
// Output:
// undefined
あなたが得るとき、他のシナリオがありますundefined
。これらのシナリオの2つの例は、存在しない配列要素、存在しないオブジェクトプロパティです。存在しないオブジェクトプロパティを操作しようとすると、JavaScriptはundefinedを返します。存在しない配列要素についても同様です。
// Non-existing object properties and array elements:
const book = {
title: 'Zero to One',
author: ['Peter Thiel', 'Blake Masters'],
publicationDate: 'September 18, 2014'
}
// Try to access non-existing property:
console.log(book.genre)
// Output:
// undefined
// Try to access non-existing array element:
console.log(book.author[2])
// Output:
// undefined
// Or:
const myObj = {}
const arr = []
// Log the value of myObj.prop:
console.log(myObj.prop)
// Output:
// undefined
// Log the value of first element:
console.log(arr[0])
// Output:
// undefined
を取得するときの別のシナリオundefined
は、明示的に何も返さない関数がある場合です。次に、暗黙的にを返しundefined
ます。関数にreturn
ステートメントがあるが、それに続くものがない場合も同じことが起こります。また、暗黙的にを返しundefined
ます。
// Create a function that doesn't return:
function myFunc() {}
// Call myFunc():
myFunc()
// Output:
// undefined
// Create a function that returns nothing:
function myFunc() {
return
}
// Call myFunc():
myFunc()
// Output:
// undefined
興味深いのはundefined
、JSONでは無効なことですnull
。もう一つ面白いことがあります。未定義の変数の型を取得しようとすると、JavaScriptは「undefined」を返します。JavaScriptでは、undefinedのデータ型は、独自の型「Undefined」を持つ特別な値です。
// Trying to use undefined in JSON
console.log(JSON.stringify({ name: undefined, age: null }))
// Output:
// '{"age":null}'
// Getting the data type of undefined:
console.log(typeof undefined)
// Output:
// 'undefined'
デフォルトのパラメータ値は、ES6で導入された便利な機能の1つです。この機能を使用すると、デフォルト値でパラメーターを宣言できます。この機能は、変数および関数で使用できます。デフォルトでは、値が未定義の場合、デフォルトのパラメーターが使用されます。関数の場合、パラメータが未定義の場合、つまり欠落している場合。
// Create function with default parameter value:
function myFunc(name = 'Unknown') {
return name
}
// Call myFunc without any argument (parameter being undefined):
myFunc()
// Output:
// Unknown
// Call myFunc with argument (parameter being defined):
myFunc('Jack')
// Output:
// 'Jack'
破壊的割り当ては、ES6で導入されたもう1つの機能であり、すぐに非常に人気がありました。この機能を使用すると、配列から値を抽出し、オブジェクトからプロパティを抽出して、それらを変数に割り当てることができます。これらすべてを1行のコードで実行できます。破棄の便利な機能の1つは、デフォルト値をサポートしていることです。
配列があると想像してください。必要なのは、この配列からいくつかの項目を抽出し、それらをいくつかの変数に割り当てることです。問題は、各変数に十分な値があるかどうかわからないことです。できることは、デフォルト値を使用することです。一部の変数が配列内で一致するものを見つけられない場合、デフォルト値を使用します。
これは、配列から受け取った値がになるためundefined
です。これにより、JavaScriptに割り当てるものがなく、デフォルト値を使用する必要があることが通知されます。
// Create an array:
const myArray = ['1 is one', '2 is two', '3 is three']
// Use destructuring assignment
// to assign values from myArray:
const [one, two, three, four = 'Four doesn\'t exist'] = myArray
// Get the value of one:
console.log(one)
// Output:
// '1 is one'
// Get the value of two:
console.log(two)
// Output:
// '2 is two'
// Get the value of three:
console.log(three)
// Output:
// '3 is three'
// Get the value of four:
// four will be undefined because the array
// contains only three items.
// This will trigger default value 'Four doesn\'t exist'.
console.log(four)
// Output:
// "Four doesn't exist"
null
JavaScriptでは遭遇するのが難しい場合があります。undefined
いくつかの条件が発生したときに自動的に割り当てられないのとは異なります。このため、誰かが割り当てる必要があります。多くのJavaScript開発者が一時的な値として使用することを好むため、これは非常に頻繁に発生する可能性があります。空または存在しない値を示します。
// Variable automatically assigned undefined:
let name
// Log the value of "name":
console.log(name)
// Output:
// undefined
// Variable explicitly assigned null:
let position = null
// Log the value of "position":
console.log(position)
// Output:
// null
undefined
独自のタイプ「未定義」があることを覚えていますか?null
JavaScriptにも興味深いことが1つあります。それは実際にはオブジェクトです。このオブジェクトには有効な値がありますが、プロパティがなく、変更できません。typeof演算子を使用すると、これを自分で簡単にテストできます。
でtypeof
演算子を使用するとnull
、たとえば「null」のようなものは得られません。代わりに、「オブジェクト」を取得します。これは最初からJavaScriptで行われています。これは、JavaScriptの元の実装では間違いと見なされています。
// Test type of null:
console.log(typeof null)
// Output:
// 'object'
console.log(typeof null === 'object')
// Output:
// true
ご存知のように、デフォルトのパラメータ値を使用すると、必要な値がundefined
。の場合にデフォルト値を宣言できます。興味深いことに、これはでは機能しませんnull
。関数を作成し、デフォルトのパラメーター値を使用するとします。少し後で、でその関数を呼び出して、を渡しnull
ます。
この場合に起こることは、あなたが期待することではありません。指定したデフォルト値は取得されません。代わりに取得するのはnull
です。デフォルトのパラメータを使用したい場合、またはそれらを使用したい場合は、これを覚えておいてください。そうしないと、問題が発生する可能性があります。
// Create function with default parameter value:
function myFunc(name = 'Unknown') {
return name
}
// Call myFunc with null as an argument:
myFunc(null)
// Output:
// null
JavaScriptには、ガベージコレクションと呼ばれるものがあります。これは、コード、オブジェクトに割り当てられたメモリを解放するためのプロセスです。このプロセスは、メモリ内の未使用の既存のオブジェクトを探して削除します。JavaScriptは、オブジェクトが使用されているかどうか、または参照されているかどうかを判別します。
一部のオブジェクトが参照されなくなると、JavaScriptはそのオブジェクトが不要になったと見なし、削除します。これにより、そのオブジェクトに割り当てられたメモリが解放されます。このプロセスは、バックグラウンドで自動的かつ定期的に行われます。これは、JavaScriptなどの高級言語の利点の1つです。
オブジェクトを作成するたびにメモリを割り当てる必要はありません。同様に、オブジェクトが不要になったときにそのメモリを解放する必要はありません。JavaScriptがこのメモリ管理を行います。どうnull
ですか?JavaScriptはメモリを自動的に管理しますが、一部のオブジェクトをガベージコレクションできることをJavaScriptに伝えることができます。
これを行う1つの方法は、オブジェクトを格納する変数を割り当てることですnull
。そのオブジェクトへの他の参照がない場合、JavaScriptはそれを削除します。これはすぐには起こりません。これは、ガベージコレクションの次のサイクルで発生します。
// Create an object:
let myObj = { name: 'Stuart' }
// Assign the variable myObj to null
// to make { name: 'Stuart' } available for garbage collection:
myObj = null
// { name: 'Stuart' } can be garbage collected.
// Multiple references:
// First reference to { isAlive: true }:
let objOne = { isAlive: true }
// Second reference to { isAlive: true }:
let objTwo = objOne
// Remove all references to { isAlive: true }
// so the object can be garbage collected:
objOne = null
objTwo = null
// { isAlive: true } can be garbage collected.
JavaScriptでundefinedとnullをチェックするのは、簡単で簡単です。厳密な等価性チェックと正しいデータ型を使用してチェックできます。typeof
演算子を使用することもできます。ただし、null
「null」ではなく「object」であることを覚えておく必要があります。
// Check if value is null:
const myVar = null
console.log(myVar === null)
// Output:
// true
// Check if value is undefined:
let myVar
console.log(myVar === undefined)
// Output:
// true
確認に使用できるもう1つのオプションnull
は、typeof
演算子を使用して値が偽であるかどうかを確認することです。null
偽物になり、空のオブジェクトはになりますtruthy
。
// Check if value is null:
const myVar = null
console.log(typeof myVar === 'object' && !myVar)
// Output:
// true
undefined
そしてnull
時々初心者のために混乱することができます2つのデータ型です。これは特に、いくつかの癖や予期しないことがあるためです。このチュートリアルが、JavaScriptの動作方法undefined
とnull
動作、およびJavaScriptの使用方法を理解するのに役立つことを願っています。
この記事が気に入ったら、今後の投稿を見逃さないように購読してください。
リンク: https://blog.alexdevero.com/undefined-and-null-in-javascript-explained/