数据类型的检测:typeof运算符
- 使用typeof运算符可以检测值或者变量的类型。
5种基本数据类型的typeof检测结果
类型名 | typeof检测结果 | 值举例 |
---|---|---|
数字类型 | number | 5 |
字符串类型 | string | "hello" |
布尔类型 | boolean | true |
undefined类型 | undefined | undefined |
null类型 | object | null |
Number(数字)类型
- 所有数字不分大小、不分整浮、不分正负,都是数字类型。
小数中0可以省略
- 介于0和1之间的小数,可以不书写0。
科学计数法
- 较大数或较小数(绝对值较小)可以写成科学计数法。
不同进制的数字
- 二进制数值以0b开头。
- 八进制数值以0开头。
- 十六进制数字以0x开头。
一个特殊的数字型值NaN
- NaN是英语“not a number”的意思,即“不是一个数”,但它是一个数字类型的值。
- 0除以0的结果是NaN,事实上,在数学运算中,若结果不能得到数字,其结果往往都是NaN。
- NaN有一个“奇怪”的性质:不自等。
String(字符串)类型
- 字符串就是“人类的自然语言”。
- 字符串要用引号包裹,双引号或者单引号均可。
字符串的拼接
- 加号可以用来拼接多个字符串。
字符串和变量的拼接
- 要将一个变量的值“插入”到字符串中,要“斩断链接”。
空字符串
- 一些时候需要使用空字符串,直接书写闭合的引号对即可。
字符串的length属性
- 字符串的length 属性表示字符串的长度。
字符串的常用方法
- “方法”就是能够打点调用的函数,字符串有丰富的方法。
方法
功能
charAt()
得到指定位置字符
substring()
提取子串
substr()
提取子串
slice()
提取子串
toUpperCase()
将字符串变为大写
toLowerCase()
将字符串变为小写
indexOf()
检索字符串
charAt()方法
- charAt()方法可以得到指定位置的字符。
substring()
- substring(a, b) 方法得到从a开始到b结束(不包括b处)的子串。
- substring(a, b) 方法如果省略第二个参数,返回的子串会一直到字符串的结尾。
- substring(a, b) 中,a可以大于b,数字顺序将自动调整为小数在前。
substr()
- substr(a, b)中,将得到从a开始的长度为b的子串。
- substr(a, b)中,b可以省略,表示到字符串结尾。
- substr(a, b)中,a可以是负数,表示倒数位置。
slice()
- slice(a, b)方法得到从a开始到b结束(不包括b处)的子串。
- slice(a, b)的参数a,b可以是负数。
- slice(a, b)中,参数a必须小于参数b。
substring()、substr()和slice()对比总结
- substring(a, b)和slice(a, b)功能基本一致,都是得到从a开始到b结束(不包括b)的子串,区别:
1.substring()可以自动交换两个参数位置,而slice()不行;
2.slice()的参数a,b可以是负数,而substring()不行。
- substr(a, b)中参数b是子串长度,而不是位置编号。
toUpperCase()和toLowerCase()
- toUpperCase() 转为大写。
- toLowerCase() 转为小写。
indexOf()
- indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置。
- 如果要检索的字符串值没有出现,则该返回-1。
Boolean(布尔)类型
- 布尔型值只有两个:true和false,分别表示真和假。
undefined类型
- 一个没有被赋值的变量的默认值是undefined,而undefined的类型也是undefined。
- 即:undefined又是值,又是一种类型,这种类型只有它自己一个值。
null类型
- null表示“空”,它是“空对象”。
- 当我们需要将对象销毁、数组销毁或者删除事件监听时,通常将它们设置为null。
- 使用typeof检测null值,结果是object,这点尤其要注意。
- 类型和typeof检测结果并不总是一一对应,比如数组用typeof检测结果也是object。
数据类型的转换
其他值 → 数字
使用Number()函数:
- 字符串 → 数字
纯数字字符串能变为数字,不是纯数字的字符串将转为NaN。
- 布尔值 → 数字
true变为1,false变为0
- undefined和null → 数字
undefined变为NaN,null变为0。
使用parseInt()函数:
- parseInt()函数的功能是将字符串转为整数。
- parseInt()将自动截掉第一个非数字字符之后的所有字符。
- 所有文字都将被截掉。
- 如果字符串不是以数字开头,则转为NaN。
- parseInt()函数不四舍五入。
使用parseFloat()函数:
- parseFloat()函数的功能是将字符串转为浮点数。
- parseFloat()可以将小数字符串转为数字小数。
- parseFloat()将自动截掉第一个非数字字符、非小数点之后的所有字符。
- 如果字符串并不是以数字开头,则转为NaN。
- 不四舍五入。
其他值 → 字符串
使用String()函数:
- 数字 → 字符串
变为“长得相同”的字符串。科学计数法和非10进制数字会转为10进制的值。
- 布尔值 → 字符串
变为“长得相同”的字符串。
- undefined和null → 字符串
变为“长得相同”的字符串。
使用toString()方法:
- 几乎所有值都有toString()方法,功能是将值转为字符串。
其他值 → 布尔值
使用Boolean ()函数:
- 数字 → 布尔值
0和NaN转为false,其他数字都转为true。
- 字符串 → 布尔值
空字符串变为false,其他都转为true。
- undefined和null → 布尔值
转为false。