js基礎知識點(一)

2021-09-12 10:33:24 字數 1318 閱讀 7478

js原始型別有哪幾種 , null是物件嗎?

boolean ,number ,null ,undefined ,string ,symbol

另外對於null來說,很多人會認為他是個物件型別,其實這是錯誤的。雖然typeof null會輸出object,但是這只是 js 存在的乙個悠久 bug。在 js 的最初版本中使用的是 32 位系統,為了效能考慮使用低位儲存變數的型別資訊,000開頭代表是物件,然而null表示為全零,所以將它錯誤的判斷為object。雖然現在的內部型別判斷**已經改變了,但是對於這個 bug 卻是一直流傳下來。

物件型別和原始型別的不同之處?函式引數是物件會發生什麼問題?

在js中除了原始型別其他都是物件型別 , 原始型別儲存的是值,物件型別儲存的是位址(指標)

假設 var a =

那麼就是代表儲存的位址

函式引數是物件的情況:

function test(person) 

return person

}const p1 =

const p2 = test(p1)

console.log(p1) // -> ?

console.log(p2) // -> ?

對於以上**,你是否能正確的寫出結果呢?接下來讓我為你解析一番:

所以最後person擁有了乙個新的位址(指標),也就和p1沒有任何關係了,導致了最終兩個變數的值是不相同的。

對於原始型別typeof,除了null以外都可以判斷型別,如果我們想判斷乙個物件的正確型別可以用instanceof

在js中只有三種型別轉換分別為 :boolean , number , string

在條件判斷時,除了undefinednullfalsenan''0-0,其他所有值都轉為true,包括所有物件。

物件在轉換型別的時候,會呼叫內建的[[toprimitive]]函式,對於該函式來說,演算法邏輯一般來說如下:

加法運算子不同於其他幾個運算子,它有以下幾個特點:

如果是物件,就通過toprimitive轉換物件

如果是字串,就通過unicode字元索引來比較

JS基礎知識點

1.js基本資料型別 number 數字型別 string 字串 boolean 布林型別 ture false 非0即為真 null 空值 有值,值為空 undefined 未定義的 沒有值 object 物件型別 array 陣列 js語言特點 1.解釋性執行,指令碼語言 2.物件導向 一切事物...

js基礎知識點及常考知識點 一

涉及面試題 原始型別有哪幾種?null 是物件嘛?在js中,存在著6中原始值,分別是 typeof string function typeof string undefined typeof string string 除了會在必要的情況下強轉型別以外,原始型別還有一些坑。最為明顯的就是js的0....

JS基礎知識點梳理

1.資料型別 ecmascript有五種簡單 基本 資料型別,分別是undefined,null,boolean,number,string,還有一種複雜資料型別object。物件可以理解成一組資料和功能的集合。可以通過new object 方法來建立。js不支援自己建立資料型別。鑑於資料型別是鬆散...