一.typeof操作符
兩種寫(xiě)法:
- (1)typeof()
括號(hào) 最好用法 - (2)typeof object
中間加一個(gè)空格
typeof 返回的數(shù)據(jù)類(lèi)型
- number
- string
- boolean
- object
- undefined
- function
typeof 返回的值是一個(gè)string
1.number (數(shù)字)
NaN 不等于任何東西
var object=11;
typeof(object)
//結(jié)果 number
var num=123.1254
num.toFixed(3) //結(jié)果為123.125 結(jié)果保留三位有效數(shù)字,并且進(jìn)行四舍五入
2.string(字符串)
var object="sss";
typeof(object)
//結(jié)果 string
3.boolean (布爾值)
var object=true;
typeof(object)
//結(jié)果 boolean
4.object
不僅對(duì)象返回的數(shù)據(jù)類(lèi)型為object
數(shù)組返回的對(duì)象也是object
null返回的也是object ,是為了給對(duì)象的占位符
var object={};
typeof(object)
//結(jié)果 object
5.undefined
var object=undefined;
typeof(object)
//結(jié)果 undefined
6.function
var object=function(){};
typeof(object)
//結(jié)果 function
二.顯示類(lèi)型轉(zhuǎn)換
1.Number (轉(zhuǎn)換成數(shù)字)
null :0
flase:0
true:1
但是undefined轉(zhuǎn)換成NaN
字符a不能轉(zhuǎn)換成NaN
var demo =Number(null);
console.warn(typeof(demo)+" : "+demo )
//結(jié)果number :0
2.parseInt(轉(zhuǎn)換成整數(shù))
基本和Number相同,但是只能轉(zhuǎn)換成整數(shù)
- null ,boolean值,undefined 都不能轉(zhuǎn)換成數(shù)字只能轉(zhuǎn)換成NaN
*a-z,A-Z能轉(zhuǎn)換成整數(shù)
*parseInt(demo,16) 后面那個(gè)代表demo的進(jìn)制為16進(jìn)制,轉(zhuǎn)換成16進(jìn)制顯示結(jié)果
*如果字符串里面包括了數(shù)字,會(huì)取到數(shù)字為止
var demo = ("10");
console.warn(typeof(demo)+" : "+demo )
//結(jié)果number :10
var demo =parseInt("10aaaa");
console.warn(typeof(demo)+" : "+demo )
//結(jié)果number :10
3.parseFloat(轉(zhuǎn)換成浮點(diǎn)類(lèi)型數(shù)字)
基本等同于 parseInt,除了小數(shù)點(diǎn)
4.String 和toString(轉(zhuǎn)換成字符串)
- toString不能undefined和null進(jìn)行轉(zhuǎn)換,會(huì)報(bào)錯(cuò)
- toString(radix) 可以進(jìn)行轉(zhuǎn)換目標(biāo)進(jìn)制,之后成相應(yīng)的字符串
var demo=10;
var string1 =demo.toString(8);
console.warn(typeof(string1 )+":"+string1)
//結(jié)果 12
eg:paseInt和toString的混合應(yīng)用實(shí)例
var demo=10000;
var test = parseInt(demo,2);
console.warn(test.toString(16))
//結(jié)果 10
4.Boolean(轉(zhuǎn)換成布爾值)
Boolean()
二.隱式類(lèi)型轉(zhuǎn)換
1.isNaN(檢驗(yàn)數(shù)字)
判斷一個(gè)數(shù)字是否為NaN
console.log(isNaN('abc'));//true
//進(jìn)行了Number轉(zhuǎn)換成結(jié)果,然后結(jié)果和NaN比較
Number('abc') NaN -->NaN
2.++/-- +/-
++/-- +/- 都會(huì)把他的參數(shù)先進(jìn)行Number()轉(zhuǎn)換
var a = "abc"
a++; //結(jié)果NaN
+a; //結(jié)果NaN
var a ="123";
a++; 124 類(lèi)型Number
3.-*/% ->Number()轉(zhuǎn)換
4.&& || !
進(jìn)行Boolean類(lèi)型轉(zhuǎn)換
5.<> >= <=
如果有一個(gè)數(shù)字,先把兩邊轉(zhuǎn)換成數(shù)字進(jìn)行比較,如果都是字符串,進(jìn)行 asc碼值進(jìn)行比較
var a= "2">1; //結(jié)果true
var a= 2> "3"; //結(jié)果false
5.== !=
var a=1 == "1" //結(jié)果true
NaN ==NaN //結(jié)果false