JavaScript对象
对象只是带有属性和方法的特殊数据类型。访问对象的属性属性是与对象相关的值。 访问对象属性的语法是: objectName.propertyName
访问对象的方法方法是能够在对象上执行的动作。 您可以通过以下语法来调用方法: objectName.methodName()
创建 JavaScript 对象通过 JavaScript,您能够定义并创建自己的对象。 创建新对象有两种不同的方法:
创建直接的实例这个例子创建了对象的一个新实例,并向其添加了四个属性: 实例person=new Object();
替代语法(使用对象 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中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时) 创建 JavaScript 对象实例一旦您有了对象构造器,就可以创建新的对象实例,就像这样: var myFather=new person("John","Doe",50,"blue"); 把属性添加到 JavaScript 对象您可以通过为对象赋值,向已有对象添加新属性: 假设 personObj 已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor: person.firstname="John"; 在以上代码执行后,x 的值将是: John 把方法添加到 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("Doe");
JavaScript 类JavaScript 是面向对象的语言,但 JavaScript 不使用类。 在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。 JavaScript 基于 prototype,而不是基于类的。 JavaScript for...in 循环JavaScript for...in 语句循环遍历对象的属性。 语法for (variable in object) { 执行的代码…… } 注意: for...in 循环中的代码块将针对每个属性执行一次。 实例循环遍历对象的属性: 实例var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; }
结果是:johnDao25 |
JavaScript Number 对象
JavaScript 数字JavaScript 数字可以使用也可以不使用小数点来书写: 实例极大或极小的数字可通过科学(指数)计数法来写: 实例var y=123e5; // 12300000 所有 JavaScript 数字均为 64 位JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。 在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采用IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324
精度整数(不使用小数点或指数计数法)最多为 15 位。 实例var x = 999999999999999; // x 为 999999999999999 var y = 9999999999999999; // y 为 10000000000000000
小数的最大位数是 17,但是浮点运算并不总是 100% 准确: ((可以通过乘以10或除以10来计算: 0.3)) 实例var x = 0.2+0.1; // 输出结果为 0.30000000000000004
八进制和十六进制如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
默认情况下,JavaScript 数字为十进制显示。 但是你可以使用 toString() 方法 输出16进制、8进制、2进制。 实例var myNumber=128; 无穷大(Infinity)当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。 实例myNumber=2;
除以0也产生了无限: Infinity 实例var x = 2/0;
NaN - 非数字值NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。 你可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。 实例var x = 1000 / "Apple"; 一个数字除以一个字符串结果不是一个数字 一个数字除以一个字符串数字结果是一个数字 除以0是无穷大,无穷大是一个数字: 实例var x = 1000 / 0; 数字可以是数字或者对象数字可以私有数据进行初始化,就像 x = 123; JavaScript 数字对象初始化数据, var y = new Number(123); 实例var x = 123;
实例var x = 123; |
JavaScript 字符串(String) 对象
字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。
字符串(String)字符串(String)使用长度属性length来计算字符串的长度: 在字符串中查找字符串字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置: 如果没找到对应的字符函数返回-1 lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。 内容匹配match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。 替换内容replace() 方法在字符串中用某些字符替换另一些字符。 字符串大小写转换字符串大小写转换使用函数 toUpperCase() / toLowerCase(): 实例var txt="Hello World!"; // String
字符串转为数组字符串使用split()函数转为数组: 实例txt="a,b,c,d,e" // String
特殊字符Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号。
|
JavaScript Date(日期) 对象日期对象用于处理日期和时间。 getFullYear() getTime() setFullYear() toUTCString() getDay() Display a clock 创建日期Date 对象用于处理日期和时间。 可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象: 有四种方式初始化日期: new Date() // 当前日期和时间 上面的参数大多数都是可选的,在不指定的情况下,默认参数是0。 实例化一个日期的一些例子: var today = new Date() 设置日期通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。 在下面的例子中,我们为日期对象设置了一个特定的日期 (2010 年 1 月 14 日): var myDate=new Date(); 在下面的例子中,我们将日期对象设置为 5 天后的日期: var myDate=new Date(); 注意: 如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。 两个日期比较日期对象也可用于比较两个日期。 下面的代码将当前日期与 2100 年 1 月 14 日做了比较: var x=new Date(); x.setFullYear(2100,0,14); var today = new Date(); if (x>today) { alert("今天是2100年1月14日之前"); } else { alert("今天是2100年1月14日之后"); } |
JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值。
创建一个数组创建一个数组,有三种方法。 下面的代码定义了一个名为 myCars的数组对象: 1: 常规方式: var myCars=new Array(); 2: 简洁方式: var myCars=new Array("Saab","Volvo","BMW"); 3: 字面: var myCars=["Saab","Volvo","BMW"]; 访问数组通过指定数组名以及索引号码,你可以访问某个特定的元素。
在一个数组中你可以有不同的对象所有的JavaScript变量都是对象。数组元素是对象。函数是对象。 因此,你可以在数组中有不同的变量类型。 你可以在一个数组中包含对象元素、函数、数组: myArray[0]=Date.now; 数组方法和属性使用数组对象预定义属性和方法: var x=myCars.length // myCars 中元素的数量 创建新方法原型是JavaScript全局构造函数。它可以构建新Javascript对象的属性和方法。 实例:创建一个新的方法。<script> |
JavaScript Boolean(布尔) 对象Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
0 为布尔值 false 创建 Boolean 对象Boolean 对象代表两个值:"true" 或者 "false" 下面的代码定义了一个名为 myBoolean 的布尔对象: var myBoolean=new Boolean(); 如果布尔对象无初始值或者其值为:
那么对象的值为 false。否则,其值为 true(即使当变量值为字符串 "false" 时)! |
JavaScript Math(算数) 对象Math(算数)对象的作用是:执行常见的算数任务。
round() random() max() min() Math 对象Math(算数)对象的作用是:执行普通的算数任务。 Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。 使用Math的属性/方法的语法: var x=Math.PI; 注意: Math对象无需在使用这个对象之前对它进行定义。 算数值JavaScript 提供 8 种可被 Math 对象访问的算数值: 你可以参考如下Javascript常量使用方法: Math.E 算数方法除了可被 Math 对象访问的算数值以外,还有几个函数(方法)可以使用。 下面的例子使用了 Math 对象的 round 方法对一个数进行四舍五入。 document.write(Math.round(4.7)); 上面的代码输出为: 5 下面的例子使用了 Math 对象的 random() 方法来返回一个介于 0 和 1 之间的随机数: document.write(Math.random()); 上面的代码输出为: 0.2393118585714804 下面的例子使用了 Math 对象的 floor() 方法和 random() 来返回一个介于 0 和 11 之间的随机数: document.write(Math.floor(Math.random()*11)); 上面的代码输出为: 5 |
JavaScript RegExp 对象RegExp:是正则表达式(regular expression)的简写。 什么是 RegExp?正则表达式描述了字符的模式对象。 当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。 简单的模式可以是一个单独的字符。 更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。 您可以规定字符串中的检索位置,以及要检索的字符类型,等等。 语法var patt=new RegExp(pattern,modifiers);
RegExp 修饰符修饰符用于执行不区分大小写和全文的搜索。 i - 修饰符是用来执行不区分大小写的匹配。 g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。 实例 1在字符串中不区分大小写找"runoob" var str = "Visit RUnoob"; var patt1 = /runoob/i; 以下标记的文本是获得的匹配的表达式: Visit RUnoob 实例 2全文查找 "is" var str="Is this all there is?"; var patt1=/is/g; 以下标记的文本是获得的匹配的表达式: Is this all there is? 实例 3全文查找和不区分大小写搜索 "is" var str="Is this all there is?"; var patt1=/is/gi; 以下 标记的文本是获得的匹配的表达式: Is this all there is? test()test()方法搜索字符串指定的值,根据结果并返回真或假。 下面的示例是从字符串中搜索字符 "e" : 实例var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); 由于该字符串中存在字母 "e",以上代码的输出将是: true 当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \) 实例var re = new RegExp("\\w+"); exec()exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。 下面的示例是从字符串中搜索字符 "e" : 实例 1var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free")); 由于该字符串中存在字母 "e",以上代码的输出将是: e |