07-14
-
数据类型指字面量的类型
基本数据类型
- String
字符串需要使用引号引起来(双引号或单引号都可以)
var str = "hello";
引号不能嵌套,\可以作为转义字符
str = "我说:\"你怎么了\"";
- Number
JS中的所有数值都是Number类型,不特别区分整数和浮点数
var num = 123 num = 98.0 console.log(num) //输出结果为98.0,不需要为98.0重新声明Number变量
typeof运算符可以检测变量类型
var a = 123; var b = "123"; console.log(typeof a); console.log(typeof b); /*输出结果为 number string **/
JS中可以表示的数字的最大值
console.log(Number.MAX_VALUE); //输出为1.7976931348623157e+308
如果数据超过了Number的最大值会返回无穷
var max = Number.MAX_VALUE * Number.MAX_VALUE; console.log(max) //输出结果为Infinity
NaN(Not a Number)表示非数字,但是其数据类型为Number
JS中整数运算基本可以保证精确,浮点数运算可能会有误差
var num1 = 123 + 123; var num2 = 0.1 + 0.2; console.log(num1); console.log(num2); //输出结果为 246 0.30000000000000004
- Boolean
Boolean的值只有true和false用于进行逻辑判断
- Null
Null的是数值只有null,用来表示一个空的对象
使用typeof检查Null变量时,返回object
var a = null; console.log(typeof a); //返回结果为object
- Undefined
声明变量不进行赋值,该变量类型为Undefined
var b; console.log(b); console.log(typeof b); //返回结果为undefined undefined
引用数据类型
- Object
-
强制类型转换
主要指将其他类型转换为String Number Boolean
将其他数据类型转换为String
方法一:调用被转换类型的toString()方法,但是此方法并不影响到原变量
var a = 123; console.log(a); console.log(typeof a); var b = a.toString(); console.log(b) console.log(typeof b); //null和undefined没有toString方法
方法二:调用String()函数
var c = 123; c = String(c); c = null; c = String(c); c = undefined; c = String(c); //使用String()函数进行数据类型转换时,对于Number和Boolean实际上就是家用了toString()方法 //对于null和undefined不用调用toString()方法,而是直接转换为字符串
将其他类型数据转换为Number
方法一:使用Number()函数
var a = "123"; a = Number(a); //String-->Number //1.如果是纯数字的字符串,直接转换为数字 //2.如果字符串中有非数字内容,则转换成NaN //3.如果字符串为空或者为空白串,转换为0 //Boolean-->Number //false-->0 true-->1 //Null-->Number == 0 //Undefined-->Number == NaN
方法二:适用于字符串
parseInt()和parseFloat()将一个字符串转换为整数或浮点数
var a = "123px"; var result; result = Number(a); console.log(result); result = parseInt(a); console.log(result); //输出结果为NaN 123
如果对非String使用方法二会将变量先转换成String,再进行转换
var c = true; result = Number(c); console.log(result); //输出结果为1 result = parseInt(c); console.log(result); //输出结果为NaN
转换为Boolean
使用Boolean()函数
var a = 123; //true a = -123; //true a = Infinity; //true a = NaN; //false //数字-->Boolean //除了0和NaN,都是true //字符串-->Boolean //除了空串,其他都是true //null和undefined --> false //对象也会转换为true