1. 程式人生 > 其它 >2021.06.22(JS資料型別詳解)

2021.06.22(JS資料型別詳解)

JS資料型別詳解

Undefined型別

該型別只有一個值就是undefined

在定義一個變數的時候沒有賦初值,預設就是undefined

var box = undefined; //該操作沒有任何意義

Boolean型別(類class)

這個型別有兩個值 true false

邏輯運算:等於(==)、全等(===)、不等於(!=)、取反(!)

在JS中,==表示比較(只相等就可以,可以是轉換之後的值),=表示賦值,===表示全等判斷(表明了值以及型別都必須相等)

Boolean() 用來進行資料型別的轉換,將其他資料型別轉換為Boolean型別

NaN、""、null、undefined是可以直接轉換為false的(自身可以轉換)

Number型別

該數值中必須包含一個小數點,並且小數點後面必須至少有一位非零數字

var box = 7.8;

var box = .8; //不推薦大家使用,可讀性不強

var box = 3.0; //對於這樣的數,js底層會進行判斷,會自動轉換為整型

//(原因:因為浮點型儲存空間是整型的兩倍,節省記憶體空間)

JS在做運算時不嚴謹

console.log((0.1 * 10 + 0.2 * 10) / 10);    //0.3
console.log(0.1 + 0.2 == 0.3);    //false   0.1 + 0.2 = 0.30000000000000004

toFixed(n) 保留n位有效數字,返回一個字串

將數值呼叫toString()轉換為字串(能夠進行四捨五入)

NaN:表示一個本來要返回數字型別的值,但是沒有正確的返回數字型別

12/0(java中會報錯)

0/0 isNaN() 是在window中存在的一個方法,會有資料型別的轉換

Number轉型函式有三個:Number()、parseInt()、parseFloat()

Number(); 用於任何資料型別轉換成數值

parseInt(); 從左往右尋找能認識的數字,找到一個不認識的就停止,返回之前認識的(如果最開始就不認識則返回NaN),不認識小數點

parseFloat(); 比parseInt多認識一個小數點

轉型為Number有三個方法:

1、Number() 適用於任意資料型別的轉換

2、parseInt()、parseFloat() 適用於字串的轉換

Number(n) 將n強制的轉換為數值型

var box = "25x";
console.log(Number(box));    //NaN

true → 1  false → 0

var box = null;    //先將null轉換為false,然後變為0
var box = undefined;    //NaN
var box = "";    //0

對於物件轉數值:首先呼叫valueof(),如果沒有然後再呼叫toString();

String型別

建立String型別的兩種方式

1、字面量的形式(推薦大家使用)

2、new運算子的形式

var box = "king";
var box1 = new String("king");

String.prototype 可以用來檢視String型別的原型物件上所有的方法和屬性,任何字串都可以使用String型別的所有方法和屬性

Object型別

js中萬物皆物件

類是物件的具體細分,例項是類的具體表現

建立物件有三種方式

1、字面量的形式

var box = {};

2、new運算子的形式

var box = new Object();

3、Object,create({}) //不常用

var obj = {
    name:"king"
};
var box = Object.create(obj);

物件中可以包含任意的資料型別

key: value 一 一對應的

key:屬性名

value:屬性值

每一個鍵值對之間都是以逗號進行分割的,最後一個不需要任何的標點符號

一個物件中屬性名不能重複

物件兩種獲取值的方式

1、通過 . 運算子 點運算子後面接的都是確定的屬性名

parent.job = “程式猿”

2、通過[ ] 中括號裡面可以是一個字面量,也可以是一個變數名

var wg = "weight";
parent[wg] = "70kg";
parent['weight'] = "70kg";

如果沒有對應的屬性,獲取值會的得到一個undefined

在進行parent.job = "程式猿";操作時,如果原本物件中存在job屬性則是對該屬性的重新賦值,如果沒有該屬性就是新增該屬性

刪除物件上的屬性:

delete parent.wg

物件中存在一個遍歷的迴圈

for (當前迴圈到的屬性名 in 物件名)

實現:

for (var item in parent) {
    // statement
}

2021-06-22 10:47:57