1.JavaScript 定義了幾種數據類型? 哪些是簡單類型?哪些是復雜類型?
基本數據類型:
- 簡單數據類型:
- number數據類型 —— var num=123;
- string數據類型 —— var str=“abcdefg”;
- boolean數據類型 —— var bool=false;
- 特殊數據類型:
- 未定義undefined —— var a;
- 空 null —— var a=null;
復雜數據類型:
- object —— var obj={“name”:“茶姬”,“age”:“14”};
2:NaN、undefined、null分別代表什么?
-
NaN
表示非數字 屬于數字類型。NaN和任何值都不等于包括自己
null :表示空值,即該出的值現在為空
用法: 1. 作為函數的參數,表示該函數的參數是一個沒有任何內容的對象. 2. 作為對象原型鏈的終點undefined:表示不再在的值。即此處不存在任何值
法 1. 變量被聲明,但沒有賦值時,等于undefined. 2. 調用函數時,沒有提供相應的參數,該參數等于undefined. 3. 對象沒有賦值屬性,該屬性的值為underfined. 4. 函數沒有返回值時,默認返回undefined.
3:typeof和instanceof的作用和區別?
- 作用
typeof
: 一般只能返回如下幾個結果:number,boolean,string,function,object,undefined。對于 Array,Null 等特殊對象使用 typeof 一律返回 object,這正是 typeof 的局限性。
instanceof
用于判斷一個變量是否某個對象的實例 - 區別
-
typeof
用于區別簡單數據類型;instanceof
用于識別變量是否屬于該對象 -
typeof
在運算一個引用類型時是有局限的,無法判斷其是哪種函數的實例,此時就需要用到instanceof
-
4:完成如下代碼判斷一個變量是否是數字、字符串、布爾、函數
Paste_Image.png
5:以下代碼的輸出結果是?
Paste_Image.png
6:以下代碼的輸出結果是?
Paste_Image.png
7
Paste_Image.png
第二句中a的聲明被提升到頂部,a未賦值,所以
第一個console輸出undefined。
第二個console輸出時a已經被賦值為1所以輸出1.
第三個console輸出的b未被聲明所以出現錯誤。