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

ECMAscript數(shù)據(jù)類型分為;
5種基本數(shù)據(jù)類型(簡(jiǎn)單數(shù)據(jù)類型或原始類型)和1種復(fù)雜數(shù)據(jù)類型。

5種基本數(shù)據(jù)類型分別是:
undefined 未定義類型
null 空類型
Boolean 布爾類型
number 數(shù)值型
string 字符串類型

1種復(fù)雜數(shù)據(jù)類型:object 對(duì)象類型

檢測(cè)變量的數(shù)據(jù)類型(typeof操作符):typeof 變量名 或者 typeof(變量名)
可能返回以下類型(字符串):
"undefined" 如果這個(gè)值未定義;
"boolean" 如果這個(gè)值是布爾值;
"number" 如果這個(gè)值是數(shù)值;
"string" 如果這個(gè)值是字符串;
"object" 如果這個(gè)值是對(duì)象或null;
"function" 如果這個(gè)值是函數(shù);

^ Undefined --未定義類型
Undefined類型只有一個(gè)值,即特殊的 undefined。

1).使用var聲明變量但未賦值(未初始化)時(shí),這個(gè)變量的值就是undefined。檢測(cè)其類型也是undefined。

var a;
console.log(a);  //undefined
console.log(typeof  a);//undefined
微信截圖_20190724204300.png

2).變量從未定義過,檢測(cè)其類型為undefined,值報(bào)錯(cuò)。

console.log(a);  //報(bào)錯(cuò):a is not defined
console.log(typeof  a);//undefined
微信截圖_20190724204300.png

^ Null--空類型
Null類型是第二個(gè)只有一個(gè)值的類型,這個(gè)特殊值是null。null值表示一個(gè)空對(duì)象指針。
Null是特殊的對(duì)象類型:object。

var a = null;
    console.log(a);//null
    console.log(typeof a);//object
微信截圖_20190724204300.png

實(shí)際上,undefined值是派生子null值的,因此ECMA-262規(guī)定他們的相等性測(cè)試要返回true。

console.log(undefined == null);//true
微信截圖_20190724204300.png

^ Boolean --布爾類型
Boolaen類型是ECMAScript中使用的最多的一種類型。
Boolean類型只有兩個(gè)值:true(真)/flase(假)。

調(diào)用轉(zhuǎn)型函數(shù):Boolean()可以將ECMAScript中所有類型的值都轉(zhuǎn)換城相應(yīng)的布爾值。

var a = 'hello world';
    console.log(Boolean(a));//true
微信截圖_20190724204300.png
微信截圖_20190724204300.png

1).除0和NaN之外的所有數(shù)字,轉(zhuǎn)換為布爾型都是true。
2).除" "之外的所有字符,轉(zhuǎn)換為布爾型都為true。
3).null和undefined轉(zhuǎn)換為布爾型為false。

總結(jié):轉(zhuǎn)換為false的值只有6個(gè):fslae本身;" "(空字符串);0;NaN(非數(shù)值);null;undefined。

^ Number--數(shù)值類型
整數(shù) : 100、13、5、33
浮點(diǎn)數(shù)值(有些語言中稱為雙精度數(shù)值) :1.2 3.1415

[圖片上傳中...(微信截圖_20190724204300.png-2c27df-1563975423037-0)]
*NaN:not a Number 不是一個(gè)數(shù)字。特殊的數(shù)值類型。
表示一個(gè)本來要返回?cái)?shù)值的操作數(shù) 未返回?cái)?shù)值的情況。

NaN特點(diǎn):
1).任何涉及NaN的操作都會(huì)返回NaN。
2).NaN與任何值都不相等,包括NaN本身。

console.log(NaN == NaN);//falsa
微信截圖_20190724204300.png

isNaN(參數(shù)):判斷參數(shù)是否 “不是數(shù)值”。如果是,數(shù)值返回false,不是數(shù)值返回true。

console.log(isNaN(NaN));//true
    console.log(isNaN(10));//false (10是一個(gè)數(shù)值)
    console.log(isNaN('10'));//false (可以轉(zhuǎn)換為數(shù)值10)
    console.log(isNaN('hello'));//true (不能轉(zhuǎn)換為數(shù)值)
    console.log(isNaN(true));//false (可以被轉(zhuǎn)換為數(shù)值1)
微信截圖_20190724204300.png

*數(shù)值轉(zhuǎn)換:有三個(gè)函數(shù)可以把非函數(shù)轉(zhuǎn)換為數(shù)值:
1).Number()
2).parseInt()
3)parseFloat()

**Number():轉(zhuǎn)型函數(shù)Number()可以用于任何數(shù)據(jù)類型。
Number(變量/變量名)

console.log(Number(true))//1
    console.log(Number(false))//0
    console.log(Number(null))//0
    console.log(Number(' '))//0
    console.log(Number('123'))//123
    console.log(Number(3.14))//3.14
    console.log(Number(undefined))//NaN
    console.log(Number('11zbf'))//NaN
微信截圖_20190724204300.png

**parseInt()和parseFloat()這兩個(gè)函數(shù)專門用于吧字符串轉(zhuǎn)換成數(shù)值。

parseInt():從第一位起取到整數(shù)部分;

console.log(parseInt('123holle'))//123
    console.log(parseInt(' '))//NaN (區(qū)別:Number(' ') //0)
    console.log(parseInt(3.14))//3
    console.log(parseInt('  11zbf'))//11
微信截圖_20190724204300.png

parseFloat():從第一位起取到小數(shù)部分(只識(shí)別第一個(gè)小數(shù)點(diǎn)),只解析十進(jìn)制數(shù)。

console.log(parseFloat('123holle'))//123
    console.log(parseFloat(3.14))//3.14
    console.log(parseFloat('5.21.22'))//5.20
微信截圖_20190724204300.png

^ String 字符串類型。
字符串可以由 雙引號(hào)或單引號(hào)表示。

var a = "hello world";
var a = 'hello world';

查看字符串的長(zhǎng)度:length屬性

var a = 'hello world';
    console.log(a.length);//11
{78C08DD0-90A9-40CB-A792-34C4CEE30556}_20190725084735.jpg

查看字符串相應(yīng)位置的字符。

var a = 'hello world';
    console.log(a[1]);//e
{78C08DD0-90A9-40CB-A792-34C4CEE30556}_20190725084735.jpg

注意 :在字符串中的每個(gè)元素占據(jù)了字符串的位置。第一個(gè)元素的索引為0,下一個(gè)是索引1,依此類推。字符串的長(zhǎng)度是它的元素的數(shù)量。

轉(zhuǎn)換字符串的兩種方法:

  1.    .toString()
    

數(shù)組、布爾值、對(duì)象和字符串值都有toString()方法。
但nul和undefined沒有。

var a = [1,2,3,4];
console.log(a.toString());

2).String(變量)
強(qiáng)轉(zhuǎn)函數(shù),可以轉(zhuǎn)化任何類型的值。

console.log(String(123));//'123'
    console.log(String(3>4));//'false'
    console.log(String(3<4));//'true'
    console.log(String(null));//'null'
    console.log(String(num1));//'undefined'
{78C08DD0-90A9-40CB-A792-34C4CEE30556}_20190725084735.jpg

"+"也可以把某個(gè)值轉(zhuǎn)換為字符串,也可以拼接多個(gè)字符串。

var a = 11 + ' ';//'11'
    var b = 'hello' + 'world';//'hello world'

^ Object --類型:ECMAScript中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合。

var a = {};//對(duì)象字面量方法創(chuàng)建
    var a = new Object();//構(gòu)造函數(shù)方法創(chuàng)建  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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