JavaScript中的引用类型(JS对象)(一)

JavaScript中的所有事物都是对象。
JavaScript中的对象(引用类型):

1Object类型(自定义对象)
2、基本包装类型(Number类型、Boolean类型、String类型)
3RegExp类型(正则表达式)
4Date类型(日期)
5Array类型(数组)

————————————————————————————————————————————
Object类型
Object是目前使用最多的一个类型

创建Object对象的方式有两种:
1、使用new操作符后跟Object构造函数,例如

var person=new Object();
person.name="llllll";
person.age=20;

2、使用对象字面量表示法,例如:

var person={name:"llllll",age:20};

注:
在使用对象字面量时,属性名也可以使用字符串。例如:
var person={"name":"llllll","age":20,5:"haha"};
注意:此处的5会自动转换为字符串。

在使用对象字面量时,下面这种定义方法与上面的定义方法也是等价的。
var person={};
person.name:"llllll";
person.age=20;

访问对象属性的两种方法:

1var x=person.name;
2var x=person["name"];
上述两种方法的x的值都为llllll。

注:
当属性名中包含会导致语法错误的字符,或者属性名字使用的是关键字或保留字,可以使用方括号来表示。
例如:person["first name"]="lll";
由于属性名中包含了一个空格,所以不能使用点来表示。然而,在属性名中是可以包括非字母非数字的,这时就可以用方括号来表示。

————————————————————————————————————————————
基本包装类型(Number、Boolean、String类型)
为了便于操作基本类型值,每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象。
例:

var s1="hello world";
var s2=s1.substring(2);
这个例子中变量s1包含了一个字符串,字符串是基本类型值。而下一行调用了substring()方法,并将返回结果保存在s2中。但是基本类型不是对象,因此在逻辑上s1不应该有方法。但是在第二行访问s1时,访问过程处于一种读取模式,在读取模式中访问字符串时,后台会自动完成下列处理:
(1)创建String类型的一个实例
(2)在实例上调用指定的方法
(3)销毁这个实例
经过此番处理,基本的字符串就变得跟对象一样了。上面的这三个步骤也使用于BooleanNumber类型。

Number类型:

创建Number对象:
(1var num=new Number10);
(2var num=Number(10);
第一种方法是利用构造函数给对象赋值,第二种方法是把Number()作为一个转换函数使用,它把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则会返回NaN)。

属性:
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITIVE
POSITIVE_INFINITIVE
NaN
prototype
constructor
数字的属性是构造函数Number()自身的属性,而不是单独某个Number对象的属性。
例如:
var num=Number.MAX_VALUE;//这样使用是正确的

var num=new Number(2);
var number=num.MAX_VALUE;//这样使用则是错误的

Boolean类型:
Boolean对象用于将非逻辑值转换为逻辑值

创建Boolean对象:
var myB=new Boolean();

var b1=new boolean(false);
var result=b1&&true;
alert(result);//true
在例子中,结果为true。这是因为布尔表达式中所有对象都会被转换成true,因此b1对象在布尔表达式代表的是true。但是b1值仍然是false

String类型:
用于处理已有的字符串

String对象的创建方法
var str=new String("Hello world!");

(1)字符方法:
    document.write(str.charAt(1));//e
    document.write(str.charCodeAt(1));//101
    document.write(str[1]);//e  
(2)字符串操作方法
    1、concat(),用于将一个或多个字符串拼接起来。
        例:var str1="hello ";
           var str2="world";
           var result=str1.concat(str2);
           document.write(result+"<br>");//hello world
    注:用"+"操作符也可完成字符串的拼接,并且在大多数情况下都比concat()更简单易行。
    2、slice()、substr()、substring(),这三个方法都接受一个或两个参数,并且返回一个子字符串,不影响原字符串的值。第一个参数表示的是字符串的起始位置,若没有第二个参数,则默认从第一个参数开始到结尾。
    document.write(str.slice(3));//lo world
    document.write(str.substr(3));//lo world
    document.write(str.substring(3));//lo world

    document.write(str.slice(3,6));//lo w       
    document.write(str.substr(3,6));//lo wor第二个参数指明的是要返回的字符个数   
    document.write(str.substring(3,6));//lo w

    document.write(str.slice(-3));//rld
    document.write(str.substr(-3));//rld
    //在给上面这两个方法传递负值时,它们的行为相同。是因为-3会被转换成8(字符串长度加参数11+(-3)=8),  实际上相当于调用了slice(8)和substr(8)。
    document.write(str.substring(-3));//hello world
    //substring()方法返回为了全部字符串,因为它将-3转换成了0

    document.write(str.slice(3,-7));//l
    //这个方法会将第二个参数额负值转换为-7+11=4,实际上相当于是执行str.slice(3,4);
    document.write(str.substr(3,-6));//
    //这个方法将第二个参数转换为0,这也就意味着返回0个字符的字符串,也就是空串。
    document.write(str.substring(3,-6));//hell
    //substring会把第二个参数转换为0,即变为了str.substring(3,0),但是由于这个方法都是从较小的的数作为开始的,因此最终相当于调用了str.substring(0,3)。
(3)字符串大小写转换方法
    toLowerCase(),toLocaleLowerCase(),toUpperCase(),toLocaleUpperCase()四种方法,第一种和第三种是两个经典的方法,而第二个和第四个是针对特定地区的实现。对大多数地区来说,针对地区的方法和普通方法得到的结果相同,但少数语言(如土耳其语)会为Unicode大小写转换应用特殊规则,这时候就必须应用针对地区的的方法更稳妥一些。一般来说,在不知道自己的代码在哪种语言环境中运行时,还是使用针对地区的方法更稳妥一些。
(4)字符串的模式匹配方法
    1match()、match()方法只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。
    2、search()、此方法只接受一个参数,由字符串或一个正则表达式。这个方法返回的是指字符串中第一个匹配项的索引;若没有找到匹配项则返回-13、replace(),此方法接受两个参数。第一个参数可以是一个RegExp对象也可以是一个字符串,第二个参数可以是一个字符串或者是一个函数。
    第二个参数是字符串时,还可以使用一些特殊的字符序列,将正则表达式操作得到的值插入到结果的字符串。
    例:var str="cat,fat";
       var result=str.replace(/(.at)/g,"word($1)");
       alert(result);//word(bat),word(fat)

    字符序列               替换文本
 1. $$              $
 2. $&              匹配整个模式的子字符串。
 3. $'              匹配子字符串之前的子字符串
 4. $`              匹配子字符串之后的子字符串
 5. $n              匹配第n个捕获组的子字符串,其中n等于0-96. $nn             匹配第nn个捕获组的子字符串,其中nn等于01-99
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值