导航

Javascript数据类型

Posted on 2013-03-29 17:50  曙光城邦  阅读(186)  评论(0编辑  收藏  举报

Javascript标示符是大小写敏感的,首字母必须以 字母、_、$开头。

共有6中数据类型:

 1 Undefined类型  只有一个值undefined

 2 Null类型           只有一个值null

 3 Boolean类型 true false

 4 Number类型 123

 5 String类型 'abc'

 6 Object类型,包括对象数组等

 

Javascirpt中可以直接使用Json格式声明的对象和数组。

 

typeof操作符用于检测变量的数据类型。typeof 运算符返回一个用来表示表达式的数据类型的字符串。 因为函数也可以作为参数。所以typeof检测到的类型有6种。

比较容易混淆....像function,对象类型都应该归结为引用类型。

undifined 即变量未初始化   如 var a;  并为对a初始化,所以该变量为Undifineed类型。

boolean 即Boolean类型,值为true 、false。

string即String类型,如"abc",'abc'

number即Number类型 如123

object 即Object类型或者null  如{name:'zhangsan'},  对于null,它的类型是null。但它typeof返回的是object,但它确实不是Object类型!传说是为了向下兼容才这样做的。

 

null==undifined返回true,null===undefined 返回false。 

!null, !undefined  返回true,true 
null==false 返回false
undefined==false 返回false

 ===恒等于的比较会多一个类型的验证。

 

 对象的声明:使用的Json格式,对象包含属性和方法。Js相当方便灵活

如:

var person = {
 name:'zhangsan',
 age:18,
 chinese:true,
 ok:new Object(3),
 print:function(){
  return this.name+" "+this.age+" "+this.chinese+" "+this.ok;
 }
};
delete person.ok;  //delete操作符用于删除对象的某个属性
alert(person.print());

 

对象的构成都是键值对形式。

键可以用引号括或者不括 如name可以是"name"或'name'

键的访问,可以是 对象.  或者  对象['键'] 的方法访问。

 上面的person对象包含了属性以及print方法,它的属性又包含了JS的基本数据类型。 this就是当前对象的指针。

 

 

数组:

  数组的push  pop 方法,构成栈数据结构。  push在数组尾部添加元素并返回数组长度,pop弹出尾部的元素并返回该弹出的元素。后进先出。

  数组的push shift方法,构成队列数据结构。push在数组尾部添加元素并返回数组长度,shift弹出尾部元素并返回该弹出的元素。先进先出。

 push和unshift方法,分别可以在数组的末尾和前端插入元素,并返回最新的数组长度。 注意:在ie浏览器中unshift无法返回数组长度,但可以插入成功。

 

JS的字面量对象:字面量对象就是除了基本数据类型之外,可以直接标示出的对象。

1. {} 是对象。如 var p = {name:'zk',age:18}; 声明了一个p对象,含有两个属性name,age  等价于new Object()

2. [] 是数组。如 var p = [1,"2",3];  声明了一个数组,含有三个元素。等价于new Array()

3. /abc/ 是正则表达式。var p = /abc/; 则声明了一个模型为abc的正则表达式。 可以调用p.test p.exec等方法。  等价于 new RegExp().

 /abc/i  最后一个斜杆后面是匹配模式。  i是忽略大小写, g全局匹配,  m多行匹配

如:

exec方法:多用于获取分组信息

 var pattern=/(hi\d{4})/;  //匹配hi加四个数字并分组
var a = pattern.exec("hi2013 hi2012"); //exec用正则去匹配一个字符串,成功则返回一个数组,失败则返回null
if(a){
alert(a.length);
alert(a[1]);//数组的index为1开始的元素为匹配到的分组。 index为0的是原字符串。所以索引从1开始。
alert(a[2]);
}else{
 alert("匹配失败");
}

test方法:

pattern.test("hi2222");//用正则表达式匹配一个字符串,返回是否匹配。返回值为布尔型。

 

捕获类型:

前瞻捕获

 ?=   如abc(?=123)  只有abc后面紧跟123的abc才能被捕获。