1. 7种数据类型
Undefined、Null、Boolean、Number、String、Symbol、Object
其中前6种是简单数据类型,Object是复杂数据类型
Symbol数据类型是Es6新增的
2.typeof操作符
typeof是用来确定任意变量的数据类型,结果主要包括以下字符串:
undefined
boolean
string
number
object
function
symbol
其中比较特殊的是: typeof null的返回值是object,因为null被作为是空对象的引用,所以其数据类型是object
3.Undefined类型
undefined类型只有一个值,就是undefined
当使用var或者let声明变量但是没有初始化时,就相当于给变量赋予了undefined值
4.Null类型
Null类型只有一个值,就是null
null值表示一个空对象指针
当变量保存对象,但是没有这个对象时,可以用null来填充
比如: let car = null;
5. Boolean类型
Boolean类型有两个值: true和false
6.string类型
将一个值转换为字符串的方法 toString()和String()
null 和 undefined 值没有 ttoSting()方法
String()规则如下
- 如果值有 toString()方法,则调用该方法(不传参数)并返回结果。
- 如果值是 null,返回"null"。
- 如果值是 undefined,返回"undefined"。
7.Number类型
1.浮点值
存储浮点值使用的内存空间是存储整数值的两倍
2.NaN
NaN不是数值,表示本来要返回的数值操作失败了(不是报错)
比如 console.log(0/0)
2.1 isNaN()函数用于判断该参数是否“不是数值”
不能转换为数值的值isNaN()函数的结果是true,否则false
3.数值转换
将非数值转换为数值的三种方法:Number() parseInt() parseFloat()
3.1 Number()
主要用于任何数据类型,转换规则如下:
- 布尔值,true 转换为 1,false 转换为 0。
- 数值,直接返回。
- null,返回 0。
- undefined,返回 NaN。
- 字符串,应用以下规则。
如果字符串包含数值字符,包括数值字符前面带加、减号的情况,则转换为一个十进制数值。 因此,Number("1")返回 1,Number("123")返回 123,Number("011")返回 11(忽略前面 的零)。
如果字符串包含有效的浮点值格式如"1.1",则会转换为相应的浮点值(同样,忽略前面的零)。
如果字符串包含有效的十六进制格式如"0xf",则会转换为与该十六进制值对应的十进制整数值。
如果是空字符串(不包含字符),则返回 0。 console.log(Number(""))
如果字符串包含除上述情况之外的其他字符,则返回 NaN。
- 对象,调用 valueOf()方法,并按照上述规则转换返回的值。如果转换结果是 NaN,则调用 toString()方法,再按照转换字符串的规则转换
3.2 parseInt()
主要用于将字符串转换为数值,转换规则如下:
- 字符串最前面的空格会被 忽略,从第一个非空格字符开始转换。如果第一个字符不是数值字符、加号或减号,parseInt()立即 返回 NaN console.log(parseInt(""))
- 如果第一个字符 是数值字符、加号或减号,则继续依次检测每个字符,直到字符串末尾,或碰到非数值字符。比如, "1234blue"会被转换为 1234,因为"blue"会被完全忽略。
3.3 parseFloat()
主要用于将字符串转换为数值,转换规则如下:
- 第一次出现的小数点是有 效的,但第二次出现的小数点就无效了,此时字符串的剩余字符都会被忽略。
8.Symbol类型
Symbol的用途是确保对象属性使用唯一标识符,不会发生属性冲突。
Symbol()函数不能与 new 关键字一起作为构造函数使用
9.Object类型
每个 Object 实例都有如下属性和方法。
- constructor:用于创建当前对象的函数。
- hasOwnProperty(propertyName):用于判断当前对象实例(不是原型)上是否存在给定的属性。要检查的属性名必须是字符串(如 o.hasOwnProperty("name"))或符号。
- isPrototypeOf(object):用于判断当前对象是否为另一个对象的原型。
- propertyIsEnumerable(propertyName):用于判断给定的属性是否可以使用for-in 语句枚举。与 hasOwnProperty()一样,属性名必须是字符串。
- toLocaleString():返回对象的字符串表示,该字符串反映对象所在的本地化执行环境。
- toString():返回对象的字符串表示。
- valueOf():返回对象对应的字符串、数值或布尔值表示。通常与 toString()的返回值相