在 JavaScript 中,对象是拥有属性和方法的数据
属性和方法
属性是与对象相关的值。
方法是能够在对象上执行的动作
创建 JavaScript 对象
通过 JavaScript,您能够定义并创建自己的对象。
创建新对象有两种不同的方法:
- 定义并创建对象的实例
- 使用函数来定义对象,然后创建新的对象实例
创建直接的实例
这个例子创建了对象的一个新实例,并向其添加了四个属性:
实例
person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue";替代语法(使用对象 literals):
实例
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};使用对象构造器
本例使用函数来构造对象:
实例
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; }
创建 JavaScript 对象实例
一旦您有了对象构造器,就可以创建新的对象实例,就像这样:
var myFather=new person("Bill","Gates",56,"blue"); var myMother=new person("Steve","Jobs",48,"green");把方法添加到 JavaScript 对象
方法只不过是附加在对象上的函数。
在构造器函数内部定义对象的方法:
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; this.changeName=changeName; function changeName(name) { this.lastname=name; } }
changeName() 函数 name 的值赋给 person 的 lastname 属性。
现在您可以试一下:
myMother.changeName("Ballmer");
JavaScript String(字符串)对象
1.字符串的长度:document.write(txt.length)2.为字符串添加样式:document.write("<h1>This is a heading</h1>");document.write( "<p>Link: " + txt.link("#") + "</p>")document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")3. 使用 indexOf() 来定位字符串中某指定字符首次出现的位置var str="Hello world!"document.write(str.indexOf("World") + "<br />")4. 使用 match() 来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。var str="Hello world!"document.write(str.match("world") + "<br />")5. 使用 replace() 方法在字符串中用某些字符替换另一些字符var str="Visit Microsoft!"document.write(str.replace( /Microsoft/, "W3School")JavaScript Date(日期)对象
1. 使用 Date() 方法获得当日的日期document.write(Date())2. getTime() 返回从 1970 年 1 月 1 日至今的毫秒数var d=new Date();document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒");3. 使用 setFullYear() 设置具体的日期。var d=new Date();document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒");4. 使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串var d = new Date()document.write (d.toUTCString())5. 使用 getDay() 和数组来显示星期,而不仅仅是数字
6. 在网页上显示一个钟表JavaScript 数组对象
定义数组:
var myArray=new Array();赋值:方法1.var mycars=new Array(3)
mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="BMW"方法2. var mycars=new Array("Saab","Volvo","BMW")
Boolean 对象
创建 Boolean 对象
使用关键词 new 来定义 Boolean 对象。下面的代码定义了一个名为 myBoolean 的逻辑对象:
var myBoolean=new Boolean()如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)!
Math(算数)对象
1.用 random() 来返回 0 到 1 之间的随机数
document.write(Math.random())
用了Math 对象的 floor() 方法和 random() 来返回一个介于 0 和 10 之间的随机数
document.write(Math.floor(Math.random()*11)
)Math.floor:求一个最接近它的整数,它的值小于或等于这个浮点数。
2.使用 max() 或min()来返回两个给定的数大小document.write(Math.max(5,7) + "<br />")
3.使用 round()取整(四舍五入)document.write(Math.round(-4.40) + "<br />") -4
正则表达式:RegExp
RegExp 是正则表达式的缩写。对象用于规定在文本中检索的内容。
当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。
简单的模式可以是一个单独的字符。
更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。
您可以规定字符串中的检索位置,以及要检索的字符类型,等等。
定义 RegExp
RegExp 对象用于存储检索模式, 通过 new 关键词来定义 RegExp 对象通过 new 关键词来定义 RegExp 对象。以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e":var patt1=new RegExp("e");当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。
new RegExp(pattern, attributes);参数
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。
返回值
一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。
RegExp 对象的方法
RegExp 对象有 3 个方法:test()、exec() 以及 compile()
1.test()
test() 方法检索字符串中的指定值。返回值是 true 或 false。
例子:
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free"));由于该字符串中存在字母 "e",以上代码的输出将是:
true
2.exec()
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
例子 1:
var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free"));由于该字符串中存在字母 "e",以上代码的输出将是:
e
compile()
compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
例子:
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free"));由于字符串中存在 "e",而没有 "d",以上代码的输出是:
truefalse