Js中的數(shù)據(jù)類(lèi)型
Js中的數(shù)據(jù)類(lèi)型一共有六種趟佃,即number扇谣,string,boolean闲昭,underfine罐寨,null,object序矩。
一鸯绿,number
Number數(shù)據(jù)類(lèi)型指的是數(shù)字,可以為整型,也可以是浮點(diǎn)數(shù)楞慈。如
var?a=12,b=12.5;
二幔烛,string
字符串由零個(gè)或多個(gè)字符構(gòu)成,字符包括字母囊蓝,數(shù)字饿悬,標(biāo)點(diǎn)符號(hào)和空格;需要注意的是
字符串必須放在引號(hào)里(單引號(hào)或雙引號(hào));
var?bob=”man”;
alert(“bob”);
alert(bob);
瀏覽器首先會(huì)彈出包含有“bob”的字符串,然后彈出包含有“man”的字符串聚霜,前者是直接彈出字符串狡恬,后者則是彈出變量的值。
三蝎宇,boolean
布爾型數(shù)據(jù)只能有兩種值?true?和?false弟劲,在js中true和false是關(guān)鍵字。通常姥芥,我們?cè)O(shè)置布爾值時(shí)多用于條件的判斷兔乞。如:
var?flag=true;
if(flag){
//js 代碼
}
在條件判斷語(yǔ)句中我們將所有的判斷條件看做一個(gè)布爾值(這里需要了解一些布爾值的轉(zhuǎn)換特性)。
四凉唐,underfine
underfine通常指的是沒(méi)有賦值的變量庸追,通過(guò)typeof可以對(duì)數(shù)據(jù)的類(lèi)型進(jìn)行判斷。如
var?a,b=underfine;
alert(a);
alert(typeof?a);
兩次結(jié)果都為underfine台囱。
五淡溯,null
null是一個(gè)只有一個(gè)值的特殊類(lèi)型。表示一個(gè)空對(duì)象引用簿训。如:
var a=null;
將a清空咱娶。
六,object
對(duì)象就是由一些彼此相關(guān)的屬性和方法集合在一起而構(gòu)成的一個(gè)數(shù)據(jù)實(shí)體强品。常見(jiàn)的對(duì)象有array膘侮,window,document等的榛。
通過(guò)創(chuàng)建對(duì)象實(shí)例就可以調(diào)用對(duì)象的方法了琼了,如上就是創(chuàng)建了一個(gè)Date的對(duì)象實(shí)例today,today通過(guò)調(diào)用Date的方法得出了現(xiàn)在的年月日等信息困曙。
數(shù)組array是作為經(jīng)常使用的對(duì)象表伦,是由多個(gè)?(鍵-值)?所組成的一個(gè)多容器谦去。其索引 默認(rèn)是從0開(kāi)始的慷丽。創(chuàng)建數(shù)組有兩種方法:1創(chuàng)建數(shù)組對(duì)象實(shí)例?var arr=new Array(1,2,3);2直接使用面向字面量?var a=[1,2,3];
js中的類(lèi)型轉(zhuǎn)換
一鳄哭,強(qiáng)制類(lèi)型轉(zhuǎn)換
1.強(qiáng)制轉(zhuǎn)成字符串
方法:?強(qiáng)制轉(zhuǎn)換為字符串 xxx.toString()
? ? ? ? ?// var age = 18;
? ? ? ? // console.log(typeof age);
? ? ? ? // console.log(typeof age.toString());
2.強(qiáng)制轉(zhuǎn)換為數(shù)字
方法:?-> 1. Number()
? ? ? ? ? ?-> 2. parseInt()
? ? ? ? ? ? -> 3. parseFloat()
1.Number():Number必須是數(shù)字字符串
? ? ? ? console.log(Number('1'));
? ? ? ? console.log(Number('1nihao'));
? ? ? ? console.log(Number('1.2.1.1'));
2.parseInt(), parseFloat() 字符串必須以數(shù)字開(kāi)頭要糊,直到遇見(jiàn)第一個(gè)字母結(jié)束。
? ? ? ?console.log(parseInt('aaa123456789'));
? ? ? ? // parseInt()只能返回整數(shù), parseFloat()可以返回浮點(diǎn)數(shù)
? ? ? ? console.log(parseInt('1234.1123')); // 1234
3.布爾類(lèi)型轉(zhuǎn)換為數(shù)字
方法:
? ? ? ? console.log(Number(true)); // 1
? ? ? ? console.log(Number(false)); // 0
4.?null, undefined 轉(zhuǎn)換為數(shù)字
? ? ? ? console.log(Number(null)); // 0
? ? ? ? console.log(Number(undefined)); // NaN
5.?布爾類(lèi)型轉(zhuǎn)換 Boolean()
? ? ? ? // 字符串轉(zhuǎn)為布爾類(lèi)型妆丘,空字符串為false;
? ? ? ? // 數(shù)字轉(zhuǎn)換為布爾類(lèi)型锄俄, 非0 即為true;
6.NaN
? ? ? ? // NaN 不是一個(gè)數(shù)字
? ? ? ? // 任何一個(gè)NaN 兩者是不相等的
? ? ? ? console.log(NaN == NaN)
? ? ? ? // 檢測(cè)NaN的方法: isNaN()
二局劲、隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)
1.加法中:
如果有字符串,把其他元素的數(shù)據(jù)類(lèi)型隱式轉(zhuǎn)為字符串
如果沒(méi)有字符串奶赠,轉(zhuǎn)為數(shù)字鱼填。
? ? ? ? var a = true + (1 + '你好') + null;//true1你好null
? ? ? ? var b = true + 1 + undefined;//NaN
? ? ? ? var c = true + 1 + null;//2
2.? - * / %: 隱式元素轉(zhuǎn)為number類(lèi)型
? ? ? ? var m = '11' - 1;//10
? ? ? ? var d = '11' * 1;//11
? ? ? ? var n = true + '11' - '20';//NaN
? ? ? ? var l = '12' - 0 + false;//12
? ? ? ? // 數(shù)字字符串轉(zhuǎn)為數(shù)字也可以使用下面方法:
? ? ? ? // a - 0 || a * 1 || a / 1;
? ? ? ? console.log(m, d, n, l)
3.關(guān)系運(yùn)算符:== === != !== > < >= <=中
? ? ? ?// 1.如果有布爾類(lèi)型,先轉(zhuǎn)換為數(shù)字類(lèi)型
? ? ? ? // 2.如果有數(shù)字類(lèi)型的,默認(rèn)都轉(zhuǎn)為數(shù)字
? ? ? ? // 【注意】: null 跟 undefined 互相相等毅戈,等于本身苹丸,其他的都不想等。
? ? ? ? //? === !== 是不會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換