Bagaimana cara memeriksa variabel jika itu
nullatauundefineddan apa perbedaan antaranulldanundefined?Apa perbedaan antara
==dan===(sulit untuk mencari Google untuk "===")?
Bagaimana cara memeriksa variabel jika itu nullatau undefineddan apa perbedaan antara nulldan undefined?
Apa perbedaan antara ==dan ===(sulit untuk mencari Google untuk "===")?
Jawaban:
Bagaimana cara saya memeriksa variabel jika
nullatauundefined...
Apakah variabel null:
if (a === null)
// or
if (a == null) // but see note below
... tetapi perhatikan yang terakhir juga akan benar jika aada undefined.
Apakah itu undefined:
if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below
... tapi sekali lagi, perhatikan bahwa yang terakhir tidak jelas; itu juga akan benar kalau aada null.
Sekarang, terlepas dari hal di atas, cara yang biasa untuk memeriksa itu adalah dengan menggunakan fakta bahwa mereka palsu :
if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}
Ini didefinisikan oleh ToBoolean dalam spec.
... dan apa perbedaan antara
nulldanundefined?
Keduanya adalah nilai yang biasanya digunakan untuk menunjukkan tidak adanya sesuatu. undefinedadalah yang lebih umum, digunakan sebagai nilai default variabel sampai mereka diberi nilai lain, sebagai nilai argumen fungsi yang tidak disediakan ketika fungsi dipanggil, dan sebagai nilai yang Anda dapatkan ketika Anda meminta objek untuk properti yang tidak dimilikinya. Tetapi itu juga dapat secara eksplisit digunakan dalam semua situasi itu. (Ada perbedaan antara objek yang tidak memiliki properti, dan memiliki properti dengan nilai undefined; ada perbedaan antara memanggil fungsi dengan nilai undefineduntuk argumen, dan meninggalkan argumen itu sepenuhnya.)
nullsedikit lebih spesifik daripada undefined: Ini adalah referensi objek kosong. JavaScript diketik secara longgar, tentu saja, tetapi tidak semua hal yang berinteraksi dengan JavaScript diketik secara longgar. Jika API seperti DOM di browser membutuhkan referensi objek yang kosong, kami menggunakan null, bukan undefined. Dan juga, getElementByIdoperasi DOM mengembalikan referensi objek - baik yang valid (jika menemukan elemen DOM), atau null(jika tidak).
Menariknya (atau tidak), mereka tipe mereka sendiri. Artinya, nulladalah satu-satunya nilai dalam tipe Null, dan undefinedmerupakan satu-satunya nilai dalam tipe Undefined.
Apa perbedaan antara "==" dan "==="
Satu-satunya perbedaan di antara mereka adalah yang ==akan melakukan tipe paksaan untuk mencoba mendapatkan nilai yang cocok, dan ===tidak mau. Jadi misalnya "1" == 1benar, karena "1"paksaan untuk 1. Tetapi "1" === 1itu salah , karena tipenya tidak cocok. ( "1" !== 1Benar.) Langkah pertama (nyata) ===adalah "Apakah jenis operan sama?" dan jika jawabannya "tidak", hasilnya adalah false. Jika tipenya sama, ia melakukan apa yang ==dilakukannya.
Jenis paksaan menggunakan aturan yang cukup rumit dan dapat memberikan hasil yang mengejutkan (misalnya, "" == 0benar).
Lebih banyak di spec:
==, juga disebut kesetaraan "longgar")===)if (a) { ... }akan berarti "jika aitu benar," di mana "benar" adalah nilai yang tidak nol, tidak nol, tidak terdefinisi, tidak palsu, tidak kosong. :-)
nullbukan objek , itu referensi objek yang berarti "tidak ada objek". Ini penting, karena yang digunakan dengan antarmuka yang disediakan oleh host ketika mereka memberikan referensi objek tetapi tidak memiliki satu untuk menyediakan (misalnya, node.nextSiblingkapan nodeelemen terakhir dalam induknya, atau getElementByIdketika tidak ada elemen dengan ID itu). Teknologi yang digunakan oleh tuan rumah untuk ini mungkin tidak sefleksibel JavaScript adalah tentang jenis variabel / properti, jadi itu perlu untuk memiliki objek nullref (sebagai lawan dari undefined).
typeof nullmengembalikan "objek" masuk akal. Satu-satunya nilai lain yang masuk akal adalah "nol", karena pasti mengembalikan sesuatu yang berbeda typeof undefined. null mewakili referensi objek nol, yang, paling tidak, berarti variabel yang menahannya dimaksudkan untuk beberapa jenis 'objek'. Jika itu adalah kesalahan, itu adalah kesalahan yang baik. Bagaimanapun, dalam hal jawabannya, tip tentang undefined! == undefinedselama skrip lintas-jendela baik untuk diketahui, terutama untuk tujuan debugging.
Perbedaannya halus.
Dalam JavaScript, undefinedvariabel adalah variabel yang tidak pernah dideklarasikan, atau tidak pernah diberi nilai. Katakanlah Anda menyatakan var a;misalnya, maka aakan menjadi undefined, karena tidak pernah diberi nilai apa pun.
Tetapi jika Anda kemudian menetapkan a = null;maka asekarang akan null. Dalam JavaScript nulladalah sebuah objek (coba typeof nulldi konsol JavaScript jika Anda tidak percaya kepada saya), yang berarti bahwa null adalah sebuah nilai (bahkan sebenarnya undefinedadalah sebuah nilai).
Contoh:
var a;
typeof a; # => "undefined"
a = null;
typeof null; # => "object"
Ini terbukti bermanfaat dalam argumen fungsi. Anda mungkin ingin memiliki nilai default, tetapi anggap null diterima. Dalam hal ini Anda dapat melakukan:
function doSomething(first, second, optional) {
if (typeof optional === "undefined") {
optional = "three";
}
// do something
}
Jika Anda menghilangkan optionalparameter doSomething(1, 2) thenopsional akan menjadi "three"string tetapi jika Anda lulus doSomething(1, 2, null)maka opsional akan menjadi null.
Adapun pembanding yang sama ==dan benar-benar sama ===, yang pertama adalah tipe lemah, sementara benar-benar sama juga memeriksa jenis nilai. Itu berarti 0 == "0"akan kembali benar; sementara 0 === "0"akan mengembalikan false, karena angka bukan string.
Anda dapat menggunakan operator tersebut untuk memeriksa antara undefinedsebuah null. Sebagai contoh:
null === null # => true
undefined === undefined # => true
undefined === null # => false
undefined == null # => true
Kasus terakhir menarik, karena memungkinkan Anda untuk memeriksa apakah suatu variabel tidak terdefinisi atau nol dan tidak ada yang lain:
function test(val) {
return val == null;
}
test(null); # => true
test(undefined); # => true
Spek adalah tempat untuk mencari jawaban penuh untuk pertanyaan-pertanyaan ini. Berikut ringkasannya:
x, Anda dapat:nullmenggunakan perbandingan langsung ===. Contoh:x === nullundefineddengan salah satu dari dua metode dasar: perbandingan langsung dengan undefinedatau typeof. Karena berbagai alasan , saya lebih suka typeof x === "undefined".nulldan undefineddengan menggunakan ==dan bergantung pada aturan paksaan jenis yang sedikit misterius yang berarti x == nullmelakukan apa yang Anda inginkan.==dan ===adalah bahwa jika operan memiliki tipe yang berbeda, ===akan selalu kembali falsesementara ==akan mengubah satu atau kedua operan menjadi tipe yang sama menggunakan aturan yang mengarah pada beberapa perilaku yang sedikit tidak intuitif. Jika operan memiliki tipe yang sama (misalnya keduanya adalah string, seperti dalam typeofperbandingan di atas), ==dan ===akan berperilaku sama persis.Lebih banyak membaca:
Bagaimana cara saya memeriksa variabel apakah itu nol atau tidak terdefinisi
cukup periksa apakah suatu variabel memiliki nilai yang valid seperti ini:
if(variable)
itu akan mengembalikan true jika variabel tidak mengandung:
tidak terdefinisi
Itu berarti variabel belum diinternisasi.
Contoh:
var x;
if(x){ //you can check like this
//code.
}
sama dengan (==)
Hanya memeriksa nilai sama dengan bukan tipe data.
Contoh:
var x = true;
var y = new Boolean(true);
x == y ; //returns true
Karena hanya memeriksa nilai.
Sama dengan Ketat (===)
Cek nilai dan tipe data harus sama.
Contoh:
var x = true;
var y = new Boolean(true);
x===y; //returns false.
Karena memeriksa datatype x adalah tipe primitif dan y adalah objek boolean.
Iklan 1. nullbukan pengidentifikasi untuk properti objek global, seperti undefined dapat
Iklan 2. ===Nilai dan tipe cek. The ==dont memerlukan jenis yang sama dan membuat konversi implisit sebelum perbandingan (menggunakan .valueOf()dan .toString()). Di sini Anda memiliki semua ( src ):
jika
== (negasinya ! = )
=== (negasinya ! == )
document.all == nulldandocument.all !== null
Jika pemeriksaan (logis) Anda adalah negasi (!) Dan Anda ingin menangkap kedua JS nulldan undefined (karena Peramban yang berbeda akan memberi Anda hasil yang berbeda), Anda akan menggunakan perbandingan yang kurang ketat: misalnya:
var ItemID = Item.get_id();
if (ItemID != null)
{
//do stuff
}
Ini akan menangkap keduanya nulldanundefined
Coba Dengan Logika Berbeda . Anda dapat menggunakan kode di bawah ini untuk memeriksa keempat (4) kondisi untuk validasi seperti tidak nol, tidak kosong, tidak terdefinisi dan tidak nol hanya menggunakan kode ini (! (! (Variabel))) dalam javascript dan jquery.
function myFunction() {
var data; //The Values can be like as null, blank, undefined, zero you can test
if(!(!(data)))
{
//If data has valid value
alert("data "+data);
}
else
{
//If data has null, blank, undefined, zero etc.
alert("data is "+data);
}
}
==dan dijelaskan dengan===baik di sini .