一、数据类型有哪些?
数据类型大致分为基本数据类型和引用数据类型。基本数据类型有number,string,Boolean,undefined,null,symbol(ES6新增的)。引用数据类型有纯object(对象),array(数组),function(函数)
二、怎么确定变量的数据类型
使用typeof操作符,'undefined'表示值为未定义,'boolean'表示值为布尔值,'string'表示值为字符串,'number'表示值为数值,'object'表示值为对象(可能是数组或纯对象,而不是函数)或null,'function'表示值为函数,'symbol'表示值为符号。注意如果需要判断是否为null还是对象,可以使用转为字符串的办法(String())进行判断
console.log(typeof []); //object
console.log(typeof null); //object
console.log(typeof {}); //object
console.log(String(null)); //null
console.log(String({})); //[object Object]
三、各个数据类型的取值
- undefined类型的值只有undefined
- null的值只有null
- Boolean类型的值有true,false
- Number类型的值有整数(包含正负),小数(浮点数,有正负) ,无穷值(Infinity,有正负),NaN(一个不是数的数值类型)
- String类型的值是字符串,字符串可以使用双引号(""),单引号(''),或者反引号(``)标示
- Symbol类型。符号是原始值,且符号实例是唯一的,不可变的。符号的用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。
- Object类型就是一组数据和功能的集合,可以分为纯对象,数组,函数
四、数据类型之间的转换
- Number(变量名) 将其它类型转为数字,(还有parseInt()和parseFloat,这两个函数主要用于字符串转换为数值)
- String(变量名); 转字符串 // 另一种转换方式: 变量名+""
- Boolean(变量名); // 另一种转换方式 !!变量名
五、undefined和null的异同
都表示‘空’,‘不存在’等意思。undefined类型只有一个值那就是undefined,当声明了变量但没有初始化时,就相当于给变量赋予了undefined值。Null类型也是只有一个值,即为null,逻辑上讲null表示一个空对象指针,在定义将来要保存对象值的变量是建议使用null来初始化。