在js中一共有六种数据类型
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
其中前五个属于基本数据类型,而Object属于引用数据类型
typeof
可以使用typeof来检测一个变量的类型,语法: typeof 变量,返回值就是变量的类型
console.log(typeof a);
console.log(typeof b);
Number
- js中表示最大的数值 Number.MAX_VALUE,表示最小的数值 Number.MIN_VALUE(是一个无限接近0的正数)
- Infinity表示正无穷, -Infinity表示负无穷
- NaN 是一个特殊的数字 Not A Number 使用typeof检查NaN返回的也是number
如果表示的数超过最大的数值,那么输出就是Infinity(字面量,就当成一个数字)来表示正无穷,反之就输出负无穷,在js中整数运算基本能保证精确,如果进行浮点运算,则结果可能是一个不精确的结果,所以不推荐用js进行对精确度要求高的运算。
Boolean
布尔值只有两个值
- true 表示真
- false 表示假
Null和Undefined
- Null类型的值只有一个,就是null,null的值专门用来表示为空的对象
- Undefined的值只有一个,就是undefined
当声明一个变量,但并不给变量赋值时,它的值就是undefined,使用typeof来检查undefined时也会返回undefined,用typeof来检查null会返回Object
强制类型转换
- 转换为String
String()和toString()都是将其他类型的变量转换为字符串类型。
方式一:
调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回
注意:null和undefined没有toString()方法
var a=123;
//调用a的toString()方法
a=a.toString();
a=true;
a=a.toString();
方式二:
调用String()函数,并将被转换的数据作为参数传递给函数
a=132;
a=null;
a=undefined;
a=String(a);
console.log(typeof a);
console.log(a);
- 转换为Number
方式一:
使用Number()函数
如果时纯数字字符串,则直接将其转换为数字
如果字符串中有非数字内容,则直接将其转换为NaN
如果字符串是空的或全为空格,则转为0;
如果字符串是Boolean 则true转为1,false转为0
null转为数字结果为 0,undefined转数字则为NaN
方式二:
使用parseInt()或者parseFloat()
parseInt()把一个字符串转为整数,取整,parseFloat()把一个字符串转换为浮点数,包括小数
调用parseInt()函数会读取字符串的有效整数位,然后转换为Number,遇到非数字就会停止读取后边的字符了,parseFloat也是类似的
如果对于非String使用parseInt()或parseFlaot(),它会先转换为String再操作
另外,可以在parseInt()中指定第二个参数来表示转换后数字的进制,比如像"070"这种字符串有些浏览器会把它当作8进制解析,有些会当作10进制解析。
var a="070";
a=parseInt(a,8);
console.log(typeof a);
console.log(a);
- 转换为Boolean
使用Boolean()函数
数字-->布尔,除了0和NaN,其余转换的都是true
字符串-->布尔,除了空串,其余的都是true
null和undefined转换都为false
对象也会转换为true