JS 里的数据类型及几个操作

189 阅读2分钟

JS中有五种简单数据类型(基本数据类型),分别是

  1. Undefined
  2. Null
  3. Boolean
  4. Number
  5. String
以及一种复杂类型:Object.

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类型

布尔值只有两个值,即falsetrue.因为区分大小写,所以大小写不一就不是布尔值.

Number类型

js中数字占64bit.其中包括:

  1. 十进制
  2. 二进制(前两位是0b,只由0和一组成)
  3. 八进制(第一位必须是0,其余位基数范围是0-7)
  4. 十六进制数(前两位必须是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()

  1. 值未定义--undefined
  2. 布尔值--boolean
  3. 字符串--string
  4. 数值--number
  5. 对象或null--objection
  6. 函数--function

删除delete

delete person.name  //键和值都被删除

判断指定的属性在指定的对象或其原型链中in

'name' in person //true 如果是数组则索引其下标
'dong' in person //false  不能索引值