- 5种简单数据类型(基本类型)+1种复杂数据类型:
- Undefined
- Null
- Boolean
- Number
- String
- Object,本质是由一组无序的名值对组成的。
1. typeof操作符
- typeof操作符会多返回一个数据类型“function”,本质上讲,函数在ECMAScript中是对象,但通过typeof区分函数和其他对象是有必要的。
- 调用typeof null会返回“object”,因为null是一个空的对象引用。
2. Undefined类型
- 只有一个值—undefined
- 变量只声明没有初始化,自动被赋予undefined值。
- 对未初始化的变量和未声明的变量执行typeof都会返回undefined值。
1
2
3
4
5
6
7
8
9var message;//变量声明后默认取得undefined值
//下面这个变量没有声明
//var age
alert(message); //"undefined"
alert(age); //产生错误
alert(typeof message); //"undefined"
alert(typeof age); //"undefined"
3. Null类型
- 只有一个值—null
- 逻辑角度来看,null值表示一个空对象指针,typeof操作符会返回“object”。因为JS中没有指针概念,空对象指针当作空对象,更好理解。
- undefined值派生自null值,因此ECMA-262规定对它们的相等性测试要返回true.
1
alert(null==undefined);//true
“undefined值派生自null值”的理解: 如果把null理解为给变量创建一个空对象,即空的状态(与{}不一样);undefined理解为什么都没给变量,即无的状态。
undefined与null的区别
4.Boolean类型
- 只有两个值,true和false。严格区分大小写。
- 调用Boolean()将其他类型所有值转换为Boolean值。
数据类型 | 转为true值 | 转为false值 |
---|---|---|
Boolean | true | false |
String | 非空字符串 | 空字符串 |
Number | 任何非零数字值 | 0和NaN |
Object | 任何对象 | Null |
Undefined | n/a | undefined |
5. Number类型
分为整数和浮点数。
- 整数可以用十进制、八进制、十六进制表示字面量,但在算术计算时,八进制和十六进制会转化为十进制。
- 浮点数,必须包含一个小数点,并且小数点后必须至少有一位数。会不失时机转换为整数。可以用科学计数法。
NaN
NaN是一个特殊值,用于表示本来要返回数值的操作数未返回数值的情况。两个显著特点:- 任何涉及NaN的操作都返回NaN.
- NaN与任何值都不相等,包括NaN本身。
数值转换
- Number()复杂且不够合理,不常用
- parseInt()字符串转换成整数。可以设置基数
- parseFloat()字符串可以转换成浮点数值和十进制整数值.
1 | var num1=parseInt("123blue"); //123 |
1 | var num1=parseFloat("123blue"); //123(整数) |
6.String类型
- 用于表示由零个或多个16位Unicode字符组成的字符序列。
- 不分(‘)和(“)。
- 转换为字符串
- toString()方法。可以指定基数,不适用于null和undefined类型。
- String()。没有参数。可用于null和undefined。
- 隐式转换:某个值+””
7.Object类型
ECMAScript中的对象是一组数据和功能的集合。
1 | var o=new Object(); |
一个重要思想: 在ECMAScript中,Object是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。
- 所有对象都具有以下属性和方法:
- constructor:保存着用于创建当前对象的函数。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
- isPropertyOf(Object):用于检查传入的Object是否是当前对象的原型。
- proertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。
- toLocaleString():返回对象的字符串表示,与执行环境对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值、布尔值表示。