數(shù)據(jù)類型

1 概念:

程序在運(yùn)行過程中會產(chǎn)生各種各樣的臨時數(shù)據(jù),為了方便數(shù)據(jù)的運(yùn)算和操作,JavaScript對這些數(shù)據(jù)進(jìn)行了分類,提供了豐富的數(shù)據(jù)類型

1.1 數(shù)據(jù)類型的劃分:

簡單的數(shù)據(jù)類型:

Number    //整數(shù)和小數(shù)
String    //字符串,引號擴(kuò)起
Boolean    //真假
Undefined    //未賦值
Null    //空的對象

引用(復(fù)雜)的數(shù)據(jù)類型:

Object

1.2 數(shù)據(jù)類型查看:

typeof操作符
會將檢查結(jié)果以字符串的形式返回給我們
示例:

console.log(typeof 100);    //number
var name='MRX';
console.log(typeof name);    //string

2 簡單數(shù)據(jù)類型:

2.1 Number

在JS中所有的數(shù)值都是Number類型(整數(shù)和小數(shù))

var num1=123;
var num2=3.14;
console.log(typeof num1);
console.log(typeof num2);

由于內(nèi)存限制,ECMAScript并不能保存世界上所有的數(shù)值

// 最大值:Number.MAX_VALUE
console.log(Number.MAX_VALUE);     //1.7976931348623157e+308
// 最小值:Number.MIN_VALUE
console.log(Number.MIN_VALUE);     //5e-324
// 無窮大:Infinity,如果超過了最大值就會返回該值
console.log(Number.MAX_VALUE + Number.MAX_VALUE);     //Infinity
// 無窮小:-Infinity,如果超過了最大值就會返回該值
console.log(Number.MIN_VALUE - Number.MIN_VALUE);     //0
console.log(typeof Infinity);     //number
console.log(typeof -Infinity);     //number

NaN非法數(shù)字(Not A Number)
JS中當(dāng)對數(shù)值進(jìn)行計算時沒有結(jié)果返回,則返回NaN

var num=NaN;
console.log(num);
console.log(typeof num);     //返回number

使用注意:
JS中整數(shù)的運(yùn)算可以保證精準(zhǔn)的結(jié)果

var counter=120+20;
console.log(counter);     //返回140

在JS中浮點(diǎn)運(yùn)算可能得到一個不精確的結(jié)果

var counter=100.1+20.1;
console.log(counter);     //返回120.19999999999999

2.2 String

字符串由單引號或雙引號擴(kuò)起
正常的情況:

var str1="baga"
var str2='YES'
var str3=`MRX`     //ES6新增,反括號
console.log(typeof str1);
console.log(typeof str2);
console.log(typeof str3);

注意事項(xiàng):
不能一單一雙,必須成對出現(xiàn)

//錯誤的
// var str4="hello word';

相同引號不能嵌套,不同引號可以嵌套

var str4="hello 'World'";

給變量加上引號,那么變量將成為字面量

var sex='男'
console.log(sex);     //輸出:男
console.log('sex');     //輸出:sex

2.3 Boolean

概念:布爾型也被稱為邏輯值類型或者真假值類型,只能夠取真(true)和(false)兩種數(shù)值,

var boo1=true;
var boo2=false;
console.log(typeof boo1);
console.log(typeof boo2);

雖然Boolean類型的字面值只有兩個,但ECMAScript中所有類型的值都與這兩個Boolean值等價的值
任何非零數(shù)值都是true,包括正負(fù)無窮大,只有0和NaN是false
任何非空字符串都是true,只有空字符串是false
任何對象都是true,只有null和undefined是false

var boo1=Boolean(0);
console.log(boo1);     //false
var boo2=Boolean(1);
console.log(boo2);     //true
var boo3=Boolean(-1);
console.log(boo3);    //true
var boo4=Boolean("hello");     //非空字符串
console.log(boo4);     //true
var boo5=Boolean("");     //空字符串
console.log(boo5);     //false
var boo6=Boolean(undefined);
console.log(boo6);     //false
var boo7=Boolean(null);
console.log(boo7);     //false

2.4 Null和Undefined

Undefined是一種比較特殊的類型,表示變量未賦值,這種類型只有一種值就是undefined

var str;
console.log(str);     //輸出:Undefined

undefined是Undefined類型的字面量
undefined和168"MRX"'itlike'一樣是一個字面量
Undefined和Number/String一樣是一個數(shù)據(jù)類型
typeof對沒有初始化和沒有聲明的變量都會返回undefined

var str1=undefined;
console.log(typeof str1);     //undefined
var str2;
console.log(str2); //undefined

Null類型也是只有一個值的數(shù)據(jù)類型,這個特殊的值是null
從語義上看null表示的是一個空的對象,所以使用typeof檢查null會返回一個Object

var str3=null;
console.log(str3);     //返回Object

undefined值實(shí)際上是由null值衍生出來的,所以如果比較undefined和null是否相等,會返回true

var str4=null;
var str5=undefined;
console.log(str4==str5);     //值比較,true
console.log(str4===str5);     //類型比較,false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容