数据类型(红宝书)
- 语法
- 数据类型
- 控制流语句
- 函数
1、语法区分大小写(变量、函数名、操作符)
2、标识符(指变量、函数、属性的姓名或者函数的参数)
标识符的格式
- 第一个字符是字母、下划线(_)或者一个美元符号($)
- 驼峰大小写
3、严格模式 在顶部添加一行代码 “use strict”
4、基本数据类型
原始类型(6个)
- Undefined
- Null
- Boolean
- Number
- String
- symbol
引用类型(1)
- Object
(a)Array类型 数组的每一项可以用来保存任何类型的数据
(b)Object类型 我们看到的大多数类型值都是Object类型的实例
(c)Function 每个函数都是Function类型的实例
5、NaN,即非数值(not a number)是一个特殊的数值
特性 (1)任何涉及NaN的操作都会返回NaN
(2) NaN与任何值都不等,包括NaN本身
判断是否是“不是数值”的函数 isNaN(),任何不能被转化为数值的值都会返回true
6、数值转换
有三个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()
Number()可以用于任何数据类型,后面连两个专用于字符串
(1)Number()函数的转换规则【不太合理不常用】
- 如果是Boolean值,true和false会分别转换为1和0
- 如果是数字值,只是简单的传入和返回
- 如果是null值,返回0
- 如果是Undefined, 返回NaN
- 如果是字符串
- 如果字符串只包含数字(包括前面带正号和负号的情况),则将其转换为十进制数值,也就是“1”转换为1,“345”转换为345,而“022”会转换为22
- 如果字符串中包含有效的浮点格式,例如“1.1”则转换为1.1
- 如果字符串是空的(不包含任何字符),那么就会将其转换为0
- 如果字符串包含上述格式之外的字符,则转换为NaN
- 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回到阿字符串
(2)parseInt()【处理整数时更常用】
- 如果第一个字符不是数值字符或者负号,parseInt()就会返回NaN(换句话说i就是如果parseInt()转换空字符串就会返回NaN)
- 如果第一个字符是数字字符,就会继续解析一直到解析完所有后续字符或者遇到了一个非数字字符 例如:“1234blue”会转换为1234,类似的“22.4”会转化为22
(3)parseFloat()
- 字符串第一个小数点是有效的,而第二个小数点是无效的,例如:“22.44.55”会转化为22.44
- 忽略前面的0
7、转化为字符串
要把一个值转换为字符串有两种方法。第一种是使用几乎每个值都有的toString()方法【null 和 undefined没有】,该方法唯一要做的就是返回相应值的字符型表现
例如:var age= 11; var ageAsString = age.toString()
如果在不知道转化的值是不是null或者undefined的情况下,可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。
- 如果有toString()方法,则调用该方法并返回相应的结果
- 如果值是null,则返回“null”
- 如果值是undefined,则返回“undefined”
【问题】
1、检测给定变量的数据类型 (typeof)
特殊情况
l typeof null 会返回 "Object" (特殊值null会被认为一个空对象引用)
2、0.1 + 0.2 = 0.3 ?