js数据类型
一、数据类型
字符串类型string 数值型number 布尔型boolean undefined null object
1、数值型
number()
2、类型转换
(1)隐式类型转换:自动将数据从一种数据类型转换成另一种数据类型的过程
console.log("50"-"30")//20
(2)显示类型转换(强制类型转换)
需要手动转换成目标类型
Number() :将其他数据类型转换成数值型
对于boolean 转换为0,1
带浮点
console.log(Number("12.45")); //12.34
console.log(Number(true)); //1
console.log(Number(false)); //0
console.log(Number("")); //0
console.log(Number(null)); //0
console.log(Number(undefined)); //NaN
console.log(Number(NaN)); //NaN
parseInt() :
将其他类型转换为整型
console.log(parseInt(12.34)); //12
console.log(parseInt(0.12)); //0
console.log(parseInt(true)); //NaN X
console.log(parseInt(false)); //NaN X
console.log(parseInt(" ")); //NaN X
console.log(parseInt(25,16)); //37 X 2*16+5
console.log(parseInt(25,8)); //21 X 2*8+5
console.log(parseInt(1001,2)); //9 X 1*2*2*2+1
console.log(parseInt("30e5")); //30
console.log(parseInt(25,10)); //25
parseFloat() :
console.log(parseFloat("23.24")); //23.24
console.log(parseFloat("23.45.78")); //23.45
NaN:not a number 非数值
一个本来要返回数值的操作数而没有返回数值的情况
NaN是不等于任何数值
3.进制转换
(1)其他进制转换为十进制parseInt()
(2)十进制转换为其它进制
v1=23;
v1.toString(16)
v1.toString(8)
v1.toString(2)
v1.toString(10)
4.常用方法
isNaN() 判断是否为非数值
(1)任何设计NaN的操作都返回NaN
(2)NaN与任何值都不相等,包括它本身
alert(isNaN(true));//false
alert(isNaN(false));//false
alert(isNaN("10")) ;//false X
alert(NaN/8);//NaN
alert(NaN+8);//NaN
alert(NaN-8);//NaN
alert(NaN==NaN);//false
alert(0/0); //NaN
5.常见的转换
console.log(null*5)//隐式转换null number(null)=0 //0
console.log(NaN*3) //NaN
console.log(undefined*5) //NaN
console.log("hello"*5) //NaN X
console.log("23"+5) //235 X
console.log("23"*5) //115
isFinite()
判断是否有穷,无穷为false 有穷为true
alert(isFinite(200e500));//false
alert(isFinite(200e5)); //true
6.boolean型
true false小写
if(10>0){
}else{
}
if((10>5)==true){}
等价于
if(10>5)
if(!10>5){}
布尔类型转换
Boolean()
console.log(Boolean(23)); //true
console.log(Boolean(0)); //false
console.log(Boolean("hello")); //true
console.log(Boolean("")); //false
console.log(Boolean(null)); //false
console.log(Boolean(undefined));//false
对于数值型的转换 :非空为true 0为false
对于字符型的转换 :非空串为true ""为false
对于undefined的转换:返回false
对于null的转换 返回false
对于object的转换 任意对象返回的都是true
7.undefined类型:
(1)变量只声明未赋值
var a;
alert(a);//undefined 变量被声明但没赋值
alert(typeof(a));//undefined
alert(c)//报错
(2)函数没有返回值默认为undefined
(3)调用函数时,应该提供参数,但没用提供,该参数返回undefined
8.null 空类型
对象类型
var a=null
alert(typeof(a));//object null是一种特殊的object
var b={}//创建对象的详解
b.a=23
b.f1=function(){}
b=null
if(b==null){}
9.object 对象类型
对象就是一定属性和方法的封装体,通过对象能够引用这些方法和属性
10.*** typeof ***
(1)数值类型,typeof返回number
console.log(typeof(1)) //number
console.log(typeof(NaN)) //number
console.log(typeof(Number.MAX_VALUE))//number
console.log(typeof(Number.MIN_VALUE))//number
console.log(typeof(Infinity)) //number
(2)字符串类型:typeof返回 string
console.log(typeof("123")) //string
(3)boolean类型,typeof返回boolean
console.log(typeof(true)) //boolean
(4)对象、数组、null,typeof返回object
console.log(typeof([])); //object
console.log(typeof(window)) //object
console.log(typeof(document)) //object
console.log(typeof(null)) //object
console.log(typeof(Math)) //object
(5)函数类型,typeof返回function
function f1(){}
console.log(typeof(f1));//function
console.log(typeof(eval));//function
console.log(typeof(Date));//function
(6)未定义的变量或undefined本身
console.log(typeof(c)) //undefined
console.log(typeof(undefined)) //undefined