JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?
JavaScript共定義了六種數(shù)據(jù)類型。分別為:
1.number:數(shù)值侈咕。整數(shù)和小數(shù)怜俐。
2.string:字符串制圈。由零或多個16位Unicode字符組成的字符序列候引。
3.boolean:布爾值侯养。Boolean類型只有兩個字面量,分別是true和false澄干。雖然true可以轉(zhuǎn)換成數(shù)字值1逛揩,false可以轉(zhuǎn)換成數(shù)字值0柠傍,但是true和false與數(shù)字值不是一個概念,因此true不一定等于1息尺,false也不一定等于0携兵。
4.undifined:undefined類型只有一個值疾掰,那就是undefined搂誉,在使用var操作符定義一個變量,但是并未給該變量賦值静檬,也就是沒有初始化炭懊,此時該變量的值就是undefined。
5.null:ull類型與Undefined類型一樣拂檩,也是只有一個值null侮腹,當(dāng)使用typeof操作符檢測null值時,返回object稻励,表明null為一個空對象指針父阻。如果要聲明一個變量用來保存對象,那么最好將該變量初始化為null而不是其他的值望抽,這樣只需要檢測該變量是否為null值就可以確定該變量是否保存了一個對象的引用加矛。
6.object:對象。Javascript中的對象其實就是一組數(shù)據(jù)和功能的集合煤篙,也可以說是一組無序的名值對的集合斟览。
其中number、string辑奈、boolean被稱為原始類型苛茂,object為復(fù)雜類型。
如何判斷一個變量是否是數(shù)字鸠窗、字符串妓羊、布爾、函數(shù)
用typeof運算符稍计。
var a="aaa"
var b= 123
var c= 4>3
var d= ;
var e= function ( ) {}
typeof a //返回string;
typeof b //返回number;
typeof c //返回boolean;
typeof d //返回undefined;
typeof e //返回function
==與===有什么區(qū)別
==表示相等操作符侍瑟,先轉(zhuǎn)換再比較,轉(zhuǎn)換之后比較相等則返回true丙猬;===表示全等操作符涨颜,僅比較而不轉(zhuǎn)換,未經(jīng)轉(zhuǎn)換就相等則返回true茧球。
以下代碼的輸出結(jié)果是?為什么?
console.log(1+1); //2,在兩個操作數(shù)都是數(shù)字的時候庭瑰,會做加法運算
console.log("2"+"4"); //24,兩個都是字符串會拼接
console.log(2+"4"); //24,一個數(shù)值一個字符串,數(shù)值會被轉(zhuǎn)化成字符串然后與另一字符串拼接
console.log(+"4"); //4,在只有一個字符串參數(shù)時會嘗試將其轉(zhuǎn)換成數(shù)值
以下代碼的輸出結(jié)果是?
var a = 1;
a+++a;
typeof a+2;
number2抢埋。原因:a+++a等于3弹灭,typeof3返回"number"是一個字符串督暂,字符串與數(shù)值做加法,數(shù)值會被轉(zhuǎn)化成字符串然后與另一字符串拼接穷吮,得到number2