打印本文 打印本文 关闭窗口 关闭窗口
JavaScript中的高级特性及特别对象、属性和方法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2591  更新时间:2009/4/23 11:28:07  文章录入:mintao  责任编辑:mintao
function array_max( ) {
  var i, max = this[0];
  for (i = 1; i < this.length; i++) {
    if (max < this[i])
      max = this[i];
  }
  return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );
该代码执行后,y 保存数组 x 中的最大值,或说 6。

所有 JScript 固有对象都有只读的 prototype 属性。可以象该例中那样为原型添加功能,但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。



-------------------
apply 方法:应用某一对象的一个方法,用另一个对象替换当前对象。

apply([thisObj[,argArray]])

参数:-thisObj。可选项。将被用作当前对象的对象。
      -argArray。可选项。将被传递给该函数的参数数组。

说明:如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。

如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

要求:版本5.5或以上。


-------------------
call 方法:调用一个对象的一个方法,以另一个对象替换当前对象。

call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

参数:-thisObj。可选项。将被用作当前对象的对象。
      -arg1, arg2,  , argN。可选项。将被传递方法参数序列。

说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

要求:版本5.5或以上。


-------------------
concat 方法 (Array):返回一个新数组,这个新数组是由两个或更多数组组合而成的。

array1.concat([item1[, item2[, . . . [, itemN]]]])

参数:-array1。必选项。其他所有数组要进行连接的 Array 对象。 
      -item1,. . ., itemN。可选项。要连接到 array1 末尾的其他项目。

说明:concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。

要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。

以下为从源数组复制元素到结果数组: 

对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。 
对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。 

示例:下面这个例子说明了使用数组时 concat 方法的用法: 
function ConcatArrayDemo() {
  var a, b, c, d;
  a = new Array(1,2,3);
  b = "JScript";
  c = new Array(42, "VBScript);
  d = a.concat(b, c);  // 返回数组 [1, 2, 3, "JScript", 42, "VBScript"]
  return(d);
}


-------------------
escape 方法:对 String 对象编码以便它们能在所有计算机上可读。

escape(charString)

必选项 charstring 参数是要编码的任意 String 对象或文字。 

说明:escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %uxxxx 格式存储。 

注意:escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。


-------------------
unescape 方法:解码用 escape 方法进行了编码的 String 对象。 

unescape(charstring) 

必选项 charstring 参数是要解码的 String 对象。 

说明:unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集中等价的字符代替。 

以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。 

注意:unescape 方法不能用于解码统一资源标识码 (URI)。解该码可使用 decodeURI 和 decodeURIComponent 方法。


-------------------
eval 方法:检查 JScript 代码并执行。

eval(codeString)

必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。

说明:eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :

eval("var mydate = new Date();");

传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样. 


-------------------
encodeURI 方法:将文本字符串编码为一个有效的统一资源标识符 (URI)。

encodeURI(URIString)

必选的 URIString 参数代表一个已编码的 URI。

说明:encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

要求:版本5.5或以上。


-------------------
decodeURI 方法:返回一个已编码的统一资源标识符 (URI) 的非编码形式。

decodeURI(URIstring)

必要的 URIstring 参数代表一个已编码 URI 的值。

说明:使用 decodeURI 方法代替已经过时的 unescape 方法。

decodeURI 方法返回一个字符串值。

如果 URIString 无效,那么将产生一个 URIError。

要求:版本5.5或以上。


-------------------
encodeURIComponent 方法:将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。

encodeURIComponent(encodedURIString)

必选的 encodedURIString 参数代表一个已编码的 URI 组件。

说明:encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。

要求:版本5.5或以上。


-------------------
decodeURIComponent 方法:返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。

decodeURIComponent(encodedURIString)

必选的 encodedURIString 参数代表一个已编码的 URI 组件。

说明:URIComponent 是一个完整的 URI 的一部分。 

如果 encodedURIString 无效,将产生一个 URIError。

要求:版本5.5或以上。


-------------------
for...in 语句:对应于一个对象的每个,或一个数组的每个元素,执行一个或多个语句。 

for (variable in [object | array])
   statements 

参数:-variable。必选项。一个变量,它可以是 object 的任一属性或 array 的任一元素。 
      -object, array。可选项。要在其上遍历的对象或数组。
      -statement。可选项。相对于 object 的每个属性或 array 的每个元素,都要被执行的一个或多个语句。可以是复合语句。

说明:在循环的每次迭代前,variable 被赋予 object 的下一个属性或 array 的下一个元素。然后可以在循环内的任一语句中使用它,就好像正在使用 object 的该属性或 array 的该元素一样。

当在一个对象上迭代时,没有办法决定或控制把对象的成员赋给 variable 的次序。在数组内将按元素的次序执行迭代,也就是,0、1、2、......

示例:下面示例说明了 for ... in 语句的用法,它把一个对象用作一个联合数组: 
function ForInDemo() {
  var a, key, s = "";                                     // 创建某些变量
  a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}  // 初始化对象
  for (key in a)   {                                      // 迭代属性
     s += a[key] + "<BR/>";
  }
  return(s);
}


-------------------
join 方法:返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。

arrayObj.join(separator)

参数:-arrayObj。必选项。Array 对象。
      -separator。必选项。是一个 String 对象,作为最终的 String 对象中对数组元素之间的分隔符。如果省略了这个参数,那么数组元素之间就用一个逗号来分隔。

说明:如果数组中有元素没有定义或者为 null,将其作为空字符串处理。

示例:下面这个例子说明了 join 方法的用法。 
function JoinDemo() {
  var a, b;
  a = new Array(0,1,2,3,4);
  b = a.join("-");
  return(b);
}


-------------------
pop 方法:移除数组中的最后一个元素并返回该元素。

arrayObj.pop( )

必选的 arrayObj 引用是一个 Array 对象。

说明:如果该数组为空,那么将返回 undefined。

要求:版本5.5或以上。


-------------------
push 方法:将新元素添加到一个数组中,并返回数组的新长度值。

arrayObj.push([item1 [item2 [. . . [itemN ]]]])

参数:-arrayObj。必选项。一个 Array 对象。
      -item, item2,. . . itemN。可选项。该 Array 的新元素。

说明:push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。

要求:版本5.5或以上。


-------------------
reverse 方法:返回一个元素顺序被反转的 Array 对象。 

arrayObj.reverse( )

必选项 arrayObj 参数为 Array 对象。

说明:reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。 

如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

示例:下面这个例子说明了 reverse 方法的用法: 
function ReverseDemo() {
  var a, l;                  // 声明变量。
  a = new Array(0,1,2,3,4);  // 创建数组并赋值。
  l = a.reverse();           // 反转数组的内容。
  return(l);                 // 返回结果数组。
}


--------------

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口