js數據類型


數據類型

數據類型指的就是字面量的類型。
js有6種數據類型:String 字符串、Number 數值、 Boolean 布爾值、Null 空值、Undefined 未定義、Object 對象。

基本數據類型

一、String
// 用引號括起來,單引號和雙引號都可以,但是不能混搭。
var a = 'hello';
var b = "world";

// 錯誤示例
var c = 'hello";

另,轉義符號:

/**
 \" 表示 "
 \' 表示 '
 \n 表示 換行
 \t 表示 制表符
 \\ 表示 \
 **/
// 單引號和雙引號嵌套使用
 var str = '我說:"今天的天氣不錯!"';
// 使用轉義字符
 str = "我說:\"今天的天氣不錯!\"";
 
 // 錯誤示例
 str = "我說:"今天的天氣不錯!""
二、Number
/**
    在js中所有數值都是Number類型,包括整數和浮點數
**/
var a = 123;
var b = 123.456;
// 可以使用typeof來檢查一個變量的類型
console.log(typeof a); // number

var c = "123";
console.log(typeof c); // string

var d = Number.MAX_VALUE; // 最大數值 d = 1.7976931348623157e+308
console.log(typeof d); // number

//如果數值超過數值能表示的最大值,則返回Infinity。
console.log(d * d); //Infinity

// 錯誤示例
console.log(typeof d*d); // NaN
// 正確示例(需要括號)
console.log(typeof (d*d)); // number

//如果小於數值能表示的最小值,則返回-Inifinity。
console.log(-Number.MAX_VALUE * Number.MAX_VALUE); //-Infinity

a = "abc" * "bcd";  
console.log(typeof a); // NaN NaN是一個特殊的數字,表示的是Not a Number

a = Infinity;
console.log(typeof a); // number

a = NaN ;
console.log(typeof a); // number

a = Number.MIN_VALUE; 
console.log(a); //5e-234  正數中能表示的最小值,並不是Number取值的最小值

注意:在js中的整數的基本運算基本可以保證精確,但是可能會出現不精確的情況,因為在2進制中不能表示1/10。所以千萬不要使用js進行對精確度要求比較高的運算。

三、Boolean
// Boolean的布爾值只有兩個,一個是true,一個是false
var bool = true;
console.log(bool); // true
console.log(typeof bool); // boolean
四、Null
// Null類型的值只有一個,就是 null,專門用來表示為一個空的對象
var a = null ;
console.log(a); // null
console.log(typeof a); // object
五、Undefined
// Undefined 類型的值只有一個,就是 undefined
var b;
console.log(b); //undefined 表示未定義,聲明了未賦值
console.log(typeof b); // undefined

強制類型轉換

強制類型轉換,指的是將一個數據類型強制轉換成其他的數據類型。類型轉換主要指將其他的數據類型轉換為String、Number、Boolean。

一、將其他數據類型轉換成String
方式一:調用被轉換數據類型的toString()方法,該方法不會改變原變量。但是注意,null 和undefined 這兩個值沒有toString()方法。
var a = 123;
a = a.toString(); // "123"

var b = false
b = b.toString(); // "false"

var c = null
c = c.toString(); // 會報錯

var d = undefined
d = d.toString(); // 會報錯
方式二:調用String()函數,並將被轉換的變量作為參數傳遞給函數,該函數不會改變原變量,對於Number和Boolean實際上就是調用的toString()方法,對於null直接轉換為“null”,將undefined直接轉換為"undefined"。
var a = 123;
a = String(a); // "123"

var b = false
b = String(b); // "false"

var c = null
c = String(c); // "null"

var d = undefined
d = String(d); // "undefined"
二、將其他數據類型轉換成Number
方式一:使用Number函數
  • 字符串轉數值
    1.如果是純數字的字符串,直接轉換成數字
    2.如果字符串中有非數字的內容,則轉換為NaN
    3.如果是空字符串或者全是空格的字符,則轉換為0
  • 布爾值轉數值,true轉換為1,false轉換為0
  • null轉數值,轉換為0
  • undefined轉數值,轉換為NaN
方式二:專門用來對付字符串
  • parseInt() 把一個字符串轉換為一個整數
  • parseFloat() 把一個字符串轉換為一個浮點數
var a = "123";
console.log(a); // "123"
console.log(typeof a); // string


a = Number(a); // number 123

var str = 'hello';
str = Number(str); // number NaN

a = "123px";
// parseInt可以將字符串中有效的整數取出來,再轉換為Number
a = parseInt(a); // 123

a = 'b1234ddd';
a = parseInt(a); // NaN

a = '123.456px';
a = parseFloat(a); // 123.456 

a = '123px';
a = parseFloat(a); // 123

// 如果對非String使用parseInt()和parseFloat(),它會先將其轉換為String,然后再操作。
a = true;
a = parseInt(a); // NaN
// 等同於
a = parseInt("true");

a = 198.23;
a = parseInt(a); // 198

// 在js中,如果需要表示16進制的數字,則需要以0x開頭
// 如果需要表示8進制的,則需要以0開頭
// 如果要表示2進制數字,則需要以0b開頭,但不是所有瀏覽器都支持。
a = 0x10;  // 16進制 16
a = 0xff; // 16進制 255

a = 070; // 8進制 56

a = "070"; //這種字符串,有些瀏覽器會當成8進制解析,有些會當成10進制解析
a = parseInt(a, 10); //可以傳遞第二個參數,來指定數字的進制
三、將其他數據類型轉換成Boolean
使用Boolean()函數
  • Number:除了0和NaN,其余都是true
  • String: 除了空串,其余都是true
  • null和undefined都會轉換為false
  • 對象都會轉換為true
var a = 123;
a = Boolean(a); // true

a = -123;
a = Boolean(a); // true

a = Infinity;
a = Boolean(a); // true

a = 0;
a = Boolean(a); // false

a = NaN;
a = Boolean(a); // false

a = 'true';
a = Boolean(a); // true

a = ''
a = Boolean(a); // false

a = '  '
a = Boolean(a); // true

a = null
a = Boolean(a); // false

a = undefined
a = Boolean(a); // false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM