JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?
定義了6種數(shù)據(jù)類型扒怖,分別是number、string、undefined、null、boolean以及object
number胳螟、string、boolean稱為原始類型筹吐,即它們是最基本的數(shù)據(jù)類型糖耸,不能再細(xì)分了。
將對象稱為復(fù)雜類型(complex type)的值丘薛,因為一個對象往往是多個原始類型的值的合成嘉竟,可以看作是一個存放各種值的容器。
至于undefined和null洋侨,一般將它們看成兩個特殊值舍扰。
typeof和instanceof的作用和區(qū)別?
都用于判斷數(shù)據(jù)的類型,是一種特殊的運(yùn)算符希坚。instanceof一般用于判斷對象實例的類型边苹,typeof用于判斷簡單的數(shù)據(jù)類型
如何判斷一個變量是否是數(shù)字、字符串裁僧、布爾个束、函數(shù)
var a = 1;
var b = 'jirengu';
var c = true;
var d = function() {};
console.log(typeof a); // number
console.log(typeof b); // string
console.log(typeof c); // boolean
console.log(typeof d); // function
NaN是什么? 有什么特別之處?
全局屬性 NaN 表示 Not-A-Number 的值,與任何值都不相等锅知,包括NaN自己播急,因此等號運(yùn)算符(== 和 ===) 不能被用來判斷一個值是否是 NaN脓钾。
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
- Number()
- parseInt()
- parseFloat()
==與===有什么區(qū)別
== 相等
=== 嚴(yán)格相等
==判等會在比較時進(jìn)行類型轉(zhuǎn)換售睹;===判等不會進(jìn)行類型轉(zhuǎn)換(如果類型不同會直接返回 false )
break與continue有什么區(qū)別
break 用于強(qiáng)制退出循環(huán)體,執(zhí)行循環(huán)后面的語句
continue 用于退出本次循環(huán)可训,執(zhí)行下次循環(huán)
void 0 和 undefined在使用場景上有什么區(qū)別
undefined在JavaScript中并不屬于保留字/關(guān)鍵字昌妹,因此在IE5.5~8中我們可以將其當(dāng)作變量那樣對其賦值(IE9+及其他現(xiàn)代瀏覽器中賦值給undefined將無效)捶枢,于是采用void方式獲取純正的未經(jīng)賦值的undefined則成了通用準(zhǔn)則。
以下代碼的輸出結(jié)果是飞崖?
console.log(1+1); //2
console.log('2'+'4') //'24'
console.log(2+'4') // '24'
console.log(+'4') // 4
var a = 1;
console.log(a+++a); // 3
console.log(typeof a+2); // 'number2'
var a = 1,b = 3;
console.log(a+++b); // 4
遍歷數(shù)組烂叔,把數(shù)組里的打印數(shù)組每一項的平方
var arr = [3, 4, 5];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i] * arr[i]);
}
遍歷 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for (var i in obj) {
console.log(obj[i]);
}
以下代碼輸出結(jié)果是?
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) // 'number2'
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data) // undefined
var data2 = d = 0 || console.log('haha')
console.log(data2) // undefined
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x) // 2