js學習 資料型別

2022-06-12 07:18:08 字數 2361 閱讀 8874

object  、number 、string 、boolean 、null 、

undefined

其中,number、string、boolean、undefined為基本資料型別,與基本資料型別對應的是引用資料型別

null,object為引用資料型別。

只要記住:當基本資料型別複製時,就相當於有兩個儲存空間所存的值相同,此時當你改變其中乙個的值,另乙個是不受影響的:

當b的值變為2,a的值還是1。

但是,如果是引用資料型別複製時,就相當於兩個變數指向同乙個儲存空間(類似c語言中的指標),改變其中乙個的值,另乙個也會跟著變:

當我改變了obj1中的值,obj2中的值也跟著改變了。

typeof——返回乙個用來表示表示式的資料型別的字串。

typeof是個一元操作符:類似++a。所以不用加(),但是如果是個運算表示式則要加(),例如:typeof(a+b)。

下面就挨個來實驗一遍:

陣列、物件、函式、null都屬於引用型別,但是,typeof只能詳細區分出function,別的都是object。

需要注意的是null的型別也是object(類似乙個空指標)。

而每一種基本資料型別,typeof都能夠具體區分。

instanceof 可以用於測試是否為引用型別(object, array, function, date, regexp, 包裝類(number, string, boolean))。

由於typeof只能判斷型別,所以,陣列和物件返回的都是object,這時就需要使用instanceof來判斷是陣列還是物件。

判斷物件是否是指定的建構函式的例項。

還可以判斷原型鏈上是否有指定的原型。

father.prototype.lastname = "wang";

function father()

var father = new father()

son.prototype = father;

function son(name,age)

var person1 = new son("aaa",18);

console.log(person1 instanceof son); //true

console.log(person1 instanceof father); //true

只要記住:null就相當於空指標,就是不存在的物件。

而undefined是已經宣告了,但是還未賦值。

這樣說好像是區分開了一點,但是實際使用又有什麼需要注意的嗎?這個可以參考這篇文章。

然後又有個問題:兩者是否相等,來實驗一下:

第乙個報錯:賦值無效,說明null是不存在物件;

第二個為true:是因為「==」將兩邊都轉換為布林值false了,也就是null和undefined轉化為布林值是都是false。

第三個為false:是因為「===」是「嚴格等於」,必須型別相同,之前我們也試驗過:null為object型別,兩者不一樣。

再來實驗另外一種情況: 

第乙個為true:是因為x未賦值時預設為undefined,兩邊值型別相同,按照「===」規則比較,即看是否嚴格相同,所以為true。

第二個為true:是因為x的值為undefined,「==」將兩邊都轉換為布林值false,所以相等。

第三個為true:是因為兩邊都是undefined。

第四個為false:是因為兩邊型別不同。

由這個例子,可以得到:如果想要判斷乙個值為空時,用「==」則null和undefined都一樣,但是用「===」則會是相反。

原因在於:1、null和undefined型別不一樣;

2、「==」會隱式轉換型別。

JS學習 資料型別

字串值,數值,布林值,陣列,物件 var length 7 數字 var lastname gates 字串 var cars porsche volvo bmw 陣列 var x 物件1 當數值和字串相加時,j ascript 將把數值視作字串。例子 var x 911 porsche j asc...

JS學習 資料型別篇

es5標準中js主要有6種資料型別 1.數值 number 整數和小數 如123,3.14 2.字串 string 文字 如 hello 3.布林型別 boolean true和false 4.undefined 表示未定儀或不存在的值 5.null 表示空 6.物件 object 表示一系列值得集...

js資料型別

一.原始資料型別 1.typeof 運算子。var a alert typeof a 輸出結果為 undefined 2.undefined 未定義 型別 當變數未定義時,該變數值被預設為undefined 如 var a alert typeof a 輸出結果為 undefined 注意值unde...