数据类型
六种基本数据类型:Undefined、Null、Boolean、Number、String和Symbol
复杂数据类型:object
typeof操作符
返回值及对应类型
“undefined”——值未定义
“Boolean”——布尔值
“string”——字符串
“number”——数值
“object”——对象或null
“function”——函数
对为声明的变量进行typeof不会报错,只会返回undefined
null
alert(null == undefined);//true
Boolean
布尔值区分大小写且只有两个值:true和false。
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
String | 非空字符 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | 无 | undefined |
Number
ECMAScript会将浮点数值转换成整数值
表示的最大数值:Number.MIN_VALUE 5e-324
最大值:Number.MAX_VALUE 1.7976931348623157e+308
如果超过数值范围,会自动转成Infinity值(有正负之分)
判断是否有穷:isFinite()函数
NaN
Not a Number
表示本来要返回数值的操作数未返回数值的情况。(如除以0)
NaN与任何值都不相等,包括NaN本身
isNaN()函数确定参数是否“不是数值”,会先用Number()进行参数的转换,若传唤成功返回false,失败返回true。此函数也使用与对象(先调用valueOf()方法)
数值转换
- Number()—— 将任意数据类型转换成数值
- Boolean:true——>1,false——>0
- 数字值,简单的转入和返回
- null——>0
- undefined——> NaN
- 字符串
- 只有数字(包括带正负号)——>十进制数值
- 有效浮点格式——>对应的浮点数职(前面有零则忽略)
- 空字符串——>0
- 以上除外——>NaN
- parseInt()——>转换成整数型(可以转换八进制、十进制、十六进制)
//ECMAScript 3认为是56(八进制),ECMAScript 5认为是70(十进制)
//var num = parseInt(“0xAF”, 16); //175 - parseFloat()——>转换成浮点型
String类型
表示零或多个16位Unicode字符组成的字符序列,即字符串。
字符字面量
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 空格 |
\r | 回车 |
\f | 进纸 |
\ | 斜杠 |
’ | 单引号(‘),在用单引号表示的字符串中使用 |
" | 双引号(“) |
\xnn | 以十六进制代码nn表示的一个字符(其中n为0~f) |
\unnnn | 以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F) |
十六进制的转义字符表示一个字符
改变某个变量保存的字符串,首先要销毁原来的字符串,然后在用一个包含新值的字符型填充该变量(在后台发生)
toString可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值。
null和undefined没有toString()方法,toString()函数返回了这两个值的字面量。
object
一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
object类型是所有它的实例的基础。
object的每个实例都具有下列属性和方法。
- constructor:保存着用于创建当前对象的函数
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例原型中标)是否存在。其中作为参数的属性名(propertyName)必须以字符串形式指定
- isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
- propertyIsEnum而able(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。参数的属性名必须以字符串形式指定。
- toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString():返回对象的字符串表示
- valueOf():返回对象的字符串、数值或布尔值表示