JS中有五种简单数据类型(基本数据类型),分别是
- Undefined
- Null
- Boolean
- Number
- String
Undefined
Undefined类型只有一个值,即Undefined.在使用var声明变量但未对其初始化时其值就是Undefined.(非对象)
var a ;
if(typeof(a) === 'undefined'){
console.log(a);
}//true
未声明的变量只能执行typeof()操作,返回undefined.
Null类型
Null类型只有一个值,即null.如果定义的变量在将来是用来保存对象的,最好将该变量初始化为null,这样可以直接判断null值来知道是否已经保存了一个对象的引用.
alert(null == undefined) //true
alert(null === undefined) //false
Boolean类型
布尔值只有两个值,即false与true.因为区分大小写,所以大小写不一就不是布尔值.
Number类型
js中数字占64bit.其中包括:
对于极大和极小的数可以采用科学记数法,格式为:
- 十进制
- 二进制(前两位是0b,只由0和一组成)
- 八进制(第一位必须是0,其余位基数范围是0-7)
- 十六进制数(前两位必须是0x,基数范围是0-9,a-f)
数值a(可以是整数或浮点数)+e+数值b(可正可负).意即 a乘10的b次方 .
此外还有一特殊的NaN(Not a Number),即非数值.这个数值用于一个本来要返回数值的操作数未返回数值的情况.任何数值除以非数值都会返回 NaN.
他有两个特点,一个是任何涉及NaN的操作都会返回NaN.第二个特点是NaN与任何值都不相等,包括它本身
String类型
String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.由单或双引号包裹.字符串是不可变的,一旦被创建,他们的值就不能更改(可被覆盖).
Object类型(复杂类型)
一个对象就是一系列属性的集合,一个属性包含一个名和一个值。
var person = new Object();
person.name = 'dong'
person.age = 18
person.gender = 'male'
就构成一个如下的对象
person{
name: 'dong'
age: 18
gender: 'male'
}
对象里也可以包含对象等属性.
几个操作
遍历for in
for(var key in person){
console.log(key);
} //打印出person中的键值
for(var key in person){
console.log(person.key);
} //此为错误示范.key等价于字符串'key',而person中没有一个叫'key'的键
for(var key in person){
console.log(person[key]);
} //可正确打出person中的key
判断类型typeof()
- 值未定义--undefined
- 布尔值--boolean
- 字符串--string
- 数值--number
- 对象或null--objection
- 函数--function
删除delete
delete person.name //键和值都被删除
判断指定的属性在指定的对象或其原型链中in
'name' in person //true 如果是数组则索引其下标
'dong' in person //false 不能索引值