JavaScript 定義了幾種數據類型? 哪些是原始類型?哪些是復雜類型?原始類型和復雜類型的區別是什么?
六種:number、string、Boolean、object、undefined、null;
原始類型: number、string、boolean
復雜類型:object,其中又分為狹義的對象;數組arr;函數function;正則表達式regexp;
undefined和null作為特殊值,不考慮其中。
區別:原始類型是最基礎的類型,不能再分了;而復雜類型可以看成是基礎類型(值)的集合體,相當于一個容器中放有各種基礎類型值。typeof和instanceof的作用和區別?
typeof:可以查看類型的,但是對于對象的細分則無法辨別,只能返回object;當然對于函數還是能返回函數的。
instanceof:可以細分出對象的類型,看看是否屬于數組還是對象;如何判斷一個變量是否是數字、字符串、布爾、函數
typeof 變量,看返回什么值就知道是什么類型了。NaN是什么? 有什么特別之處?
NaN是not a number,非數字,其與任何數值都不想等同時NaN!=NaN如何把非數值轉化為數值?
parseInt();parseFloat();
parseInt( ,幾進制);parseFloat( ,幾進制)
number;==與===有什么區別
區別:==判斷是否相等;
===的要求更高,不光是值相等,還是其的類型也是相等的;break與continue有什么區別
區別:break是結束其以后的語句執行,跳出循環體。
continue:是結束這次其之后的語句執行,重新進行新一次的循環void 0 和 undefined在使用場景上有什么區別
void是執行其的表達式,在返回undefined;
void 0 是執行0,返回undefined;
undefined是表示不存在的值,就是此處不存在任何的值。分為1、變量聲明卻沒有賦值; 2、調用函數時,沒有提供參數,這參數則為undefined;3、在對象中沒有賦值屬性,則屬性為undefined;4、函數中沒有返回值,則返回undefined;以下代碼的輸出結果是?為什么?
console.log(1+1); 2,數值相加
console.log("2"+"4"); "24";其都是為字符串,是字符的相加
console.log(2+"4"); "24"當有字符出現的時候,js解釋器會將其他的非字符轉化為字符,然后在進行字符的相加
console.log(+"4");4;當只有一個字符串存在的時候,js解釋器會將其轉化為數值,還變成絕對值以下代碼的輸出結果是?
var a = 1;
a+++a; (a++)+a等于3,其中a++時,a還是等于1,然后+a時,a加上1,變成了2,所以轉為為1+2=3;
typeof a+2; (typeof a)+2等于number2以下代碼的輸出結果是? 為什么
var a = 1;
var b = 3;
console.log( a+++b ); (a++)+b等于4遍歷數組,把數組里的打印數組每一項的平方
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 key in obj) {
console.log(obj[key]);-
以下代碼輸出結果是? 為什么 (選做題目)
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
答案:number2 ;邏輯運算符的斷電,var val=((typeof a)+b )|| (c>0)。其中的(c>0)不執行,因為前面為真了。然后為什么會返回undefined不知道了;var d = 5; var data = d ==5 && console.log('bb') console.log(data)
答案: bb
undefined,
結構為var data= ( (d ==5) && (console.log('bb') ) )
語句運行到var data時,先運行d==5成立為true,然后進行console.log('bb'),然后打印出bb,然后為什么會返回undefined不知道了;
var data2 = d = 0 || console.log('haha')
console.log(data2)
答案:haha
undefined
var data2= ((d=0) ||(console.log('haha')),由于運算符的優先性,先進行||,然后d=0為false;符合||的定義,則進行console,打印haha,然后為什么會返回undefined不知道了;
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
答案: 2
因為!!為布爾類型,則會返回布爾值,先進行小括號中的逗號運算,返回true,然后進行??!hello,返回為true,然后不知道了。。。。。。。。。。。。。。蛋疼