js數(shù)據(jù)相關(guān)簡單的問題與理解

Q:
js數(shù)據(jù)類型?
A:
原始類型:number、string、boolean、特殊類型(null&undefined)

// 不區(qū)分整型和浮點數(shù)值
var a = 1;    // number類型
var b = 1.1;    // number類型

// ""和''均可構(gòu)成字符串
var c = "hello";    // 雙引號內(nèi)文本構(gòu)成字符串
var d = 'world';    // 單引號內(nèi)文本構(gòu)成字符串

// true和false為布爾值
var e = true;
var f = false;

//  null和undefined均為特殊類型
var g = null;
var h = undefined;

對象類型:array、function&object

Q:
==和===的區(qū)別?
A:
原始類型值的比較是值的比較:
它們的值相等時它們就相等(==);
它們的值和類型都相等時它們就恒等(===)。

console.log( false == 0 )    //true
console.log( false === 0 )    //false

部分值會在布爾值轉(zhuǎn)換的時候被轉(zhuǎn)換為false,但是并不意味著它們和false相等

undefined
null
0
-0
NaN
""    // 空字符串

console.log( undefined == true )    //false
console.log( undefined == false )    //false

console.log( undefined == null )    //true
console.log( undefined === null )    //false

console.log( null ==  false )    //false
console.log( null == true )    //false

console.log( "" == false )    //true
console.log( "" == true )    //false

console.log( 0 == false )    //true
console.log( 0 == true )    //false

console.log( -0 == false )    //true
console.log( -0 == true )    //false

Q:
null和undefined的區(qū)別?
A:
null:正常的或在意料之中的值的空缺
undefined:出乎意料的或類似錯誤的值的空缺

Q:
Infinity和NaN
A:
Infinity:表示無限大,超過JS的number所能夠表示的最大值。
NaN:表示not a number,無法計算的結(jié)果。

//    NaN與任何值都不相等,包括它自身
console.log( NaN == NaN )    //false

//    識別NaN的方法
console.log( isNaN(NaN) )    //true

Q:
為什么兩個空數(shù)組不相等?

var a = [], b = [];
console.log( a == b );    //false

A:
對象類型的比較和原始類型不同(原始類型見上Q),對象的比較并非值的比較,而是引用的比較:
對象:包含同樣的屬性及相同的值的兩個對象,它們也是不相等的
數(shù)組:各個索引元素完全相等的兩個數(shù)組,它們也是不相等的

var a = { n : 1 }, b = { n : 1 };    //同樣屬性&相同的值
console.log(a == b);    //false

var c = [], d = [];    //單獨的空數(shù)組
console.log( c == d );    //false

對象類型一般我們稱為引用類型,區(qū)別于基本類型,對于對象值的使用我們都是采用了引用的方式--reference,所以只有在引用對象為同一對象時,它們的值才會相等

var a = [];    //定義a來引用一個空的數(shù)組
var b = a;    //定義b來引用同一個數(shù)組
console.log(a == b);    //true
b[0] = 1;    //調(diào)用變量b來修改數(shù)組
console.log(a[0]);    //1,因為引用的是同一個數(shù)組,所以a也會改變
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容