1、編寫一個程式,用於判空和判斷物件是否被定義。
function isUndefined(arg){
if(typeof arg=='undefined'||JSON.stringify(arg)=="{}"){
return true;//第二個選項是把空物件篩選出去
}else{//這裡需要解釋一下,就是我們頂一個一個空物件,但是我們沒有給它進行賦值。所以也是undefined
return false;
}
}
function isNull(arg){
if(arg===null){
return true;
}
else{
return false;
}
}
2、JS中的資料型別有哪些?
它有Number類、Bigint類、String類、Boollean類、null類、undefined類、Object類和Symbol型別。
Number類:就是我們的數字型別,它用來表示-(253-1)~(253-1)這個範圍內的所有數值。然後我們還有兩個值需要注意:就是Infinity和NaN;Infinity是指無窮大,這個數字是數學上存在的,但是NaN這個數字是指我們的進行了一項不合法的數學操作,比方說我們使用字串/數字。
BigInt類,被拿來用於儲存非常大的數字,也就說這個數字已經大到Number類已經沒有辦法儲存了。
String類:就是我們所說的字串,它有三種表示方式1、“雙引號” 2、‘單引號’ 3、`反引號`;注意這個反引號是唯一一個可以允許我們將變數和表示式包裝在${...}內,將他們嵌入到字串當中,例如:
var name="Peter";
alert(`hello,${name}`);
Boollean類:它就兩個值,一個是true,一個是false;
null:僅僅代表一個“值”,這個值代表“無”,"空“,或者”值未知“。
undefined值:表示該值未被賦值。
3、undefined、null和NaN之間的區別:
首先NaN這個很好理解,就是它本身就是一個Nunber型別的值,這是這個數值的來源不合法。
undefined:表示此處應該有值,但是這個值此時並沒有被定義。
null:表示此處不應該有值。
4、var let const 的區別。
var它沒有塊區域的概念,可以跨塊訪問,但是不能跨函式訪問。
let,它不能跨塊訪問,也不能跨函式訪問,
const:它不能跨塊訪問,也不能跨函式訪問,並且它必須再定義的時候就進行初始化,這個值也不能修改。