JavaScript資料型別

2021-09-24 08:31:55 字數 2654 閱讀 1047

js中存在5種簡單資料型別:undefined、null、boolean、number和string。還有一種複雜資料型別——object。

所有的值最終都將是上述6種資料型別之一。

返回乙個代表變數的資料型別的字串

'undefined'——如果這個值未定義

'boolean'——如果這個值是布林值

'string'——如果這個值是字串

'number'——如果這個值是數值

'object'——如果這個值是物件或null

'function'——如果這個值是函式

該型別只有乙個值即 undefined。當乙個變數被定義但是未賦值,則其值為 undefined

當使用typeof的時候,未定義變數和未宣告變數都為 undefined

let a;

typeof a // undefined

typeof b // undefined

複製**

該型別只有乙個值即 null,其含義為空物件指標,所以typeof nullobject

當其他型別轉換為boolean型別時,具有以下對應關係:

資料型別

轉換為true的值

轉換為false的值

boolean

true

false

string

任何非空字串

空字串(即"")

number

任何非零數字值

0和nan

object

非null的物件

null

undefined

因為只有乙個值永遠時false

undefined

存在8進製,以0開頭,如果0後的字面量超出8進製則作為10進製,嚴格模式下不存在8進製 存在16進製制,以0x開頭

儲存浮點數的空間時儲存整數值的兩倍。所以1.0會被轉換為1做浮點數的一些測試的時候須小心,例如0.1 + 0.2 === 0.3 // false

最大最小值分別儲存在:math.max_value math.min_value

即非數值(not a number)其有兩個特點:

任何設計nan的操作都返回nan

nan與任何值都不相等,包括自身

該方法接受乙個任意資料型別的引數,返回布林值代表該引數是否是 非數值

當引數是簡單資料型別的時候,方法會將引數數值化,如果成功則返回false,否則返回true

當引數是物件時,會首先呼叫物件的valueof()方法,然後確定該方法的返回值是否可以轉換為數值,如果不能,則基於這個返回值的tostring()方法再判斷

可以將非數值轉換數值,有以下三個方法:

number()

parseint()

parsefloat()

複製**

number()

true轉1,false轉0

數字原樣返回(包括進製,8,16)

null轉0

undefined轉nan

如果是空字串轉0,如果是數字的字串('123'可以但是'x123'不可以)則轉數字,否則轉nan,16進製制字串轉16進製制轉換十進位制後的數字,八進位制忽略前導零

如果是物件則先呼叫valueof()方法,如果返回基本資料型別則走以上原則返回,如果返回乙個物件則呼叫tostring()方法走以上原則,且不遞迴處理兩個方法返回的值

parseint

其工作機制是先去除字串前面的空格,找到第乙個非空格字元,如果該字元為不是數字字元或者正負號,則返回nan,如果解析到數字或正負號則接著匹配,且測試中依舊不能識別八進位制,但是可以識別16進製制,所以需要第二個引數來確定返回的數字的進製

parsefloat

與parseint功能相似,但是值得注意的是會忽略前導零後16進製制永遠都解析成0,所以parsefloat只能解析十進位制數值

字串是不可變的,一旦建立,想要修改只能將原來的銷毀

除了null和undefined,其他資料型別都具有tostring方法,而且在number型別呼叫tostring方法時,可以加入乙個進製引數來獲取對應的進製的字串。

object的原型鏈上有幾個基本的屬性和方法:

constructor // 該屬性儲存了建立當前物件的函式

hasownproperty(propertyname) // 用於檢查給定的屬性在當前物件的例項中而不是在原型鏈上,引數為字串

isprototypeof(object) // 用於檢測傳入的物件是否是當前物件的原型

prototypeisenumerable(prototypename) // 用於檢測給定的屬性是否能夠用 for-in 來列舉

tolocalestring() // 返回物件的字串表示,和執行上下文環境的地區對應

tostring() // 返回物件的字串表示

valueof() // 返回物件的字串、數值或布林值表示。通常與tostring()方法的返回值相同

複製**

持續更新在github

JavaScript 資料型別

變數 宣告區域性變數 varmessage 宣告全部變數 message typeof 例如 var message some string alert typeof message string alert typeof message string alert typeof 95 number ...

Javascript資料型別

ecmascript中有5種簡單資料型別 也稱為基本資料型別 1.undefined 該型別只有乙個值,即undefined。在使用var宣告但未初始化時,這個變數就是undefined 2.null 該型別只有乙個值,即null。null undefined 3.boolean 4.number ...

JavaScript資料型別

undefined派生於null,因此在使用 進行比較時會返回true 沒有必要將變數值顯示宣告undefined 宣告空物件時應將其值賦值為nullundefined與null的關係 3 boolean true為真,false為假 true不一定 1,false不一定 0 使用boolean 進...