日期:2014-05-16 浏览次数:20458 次
继续上文 语法遍:
一、 数组
定义一个数组,两种方式 要不用 var arr1 = new Array(); 或者用 var arr2 = []; 显然第二次定义数组方便。
定义数组并初始化, 可以直接用 var arr3 = ["abc" , "bcd" , 18 , 12.98 , true] ; // 注意 数组中可以存放任意类型数据,不一定非得是同一类型数据。
获取数组长度 用 数据名.length。 数组中,还可以直接 arr3[6] = "bdsaf" ; 这样arr3 数组会自动扩容,变成7个元素数组了。注意arrs[5]会是一个undefine的常量。
遍历数组:
for(var i=0; i< arrs.length; i++){
document.write("arrs["+i+"]="+ arrs[i] +" <br />");
}
二、函数
函数与数组一样,都是当成对象来看待着(如上面arrs3看类型,可以用 alert(typeof(arr3)); )。函数定义有格式为:
function 函数名(函数参数列表){
函数体
}
调用函数是,可以直接用 函数名(实参列表); 如
function add(x,y){ return x + y }
调用add(3,4); 注意若写在 add(3,5,6)也可以调用上面的函数,返回结构是8,那传3个参数过去后,在函数体中会不会丢失参数呢。 其实不会,因为函数体中有个内置的arguments数组,这个数组会记录所以传入进来的参数。 只要遍历这个数组,一样也可以拿到第三个参数6。
上面说到函数也是对象,那么函数名其它是此对象引用的一个地址值。也就是你可以进行如下操作。
var ss = add; // 这个动作 会把 add函数的地址值,赋值给ss变量了,那么若alert(ss),会调用ss引用变量的toString方法,即add的toString会把函数签名体都打印出来。
而且可以这样的调用 ss(3,9) 也会返回12.
2.2 动态函数
var add = new Function("x,y","var sum; sum=x+y; return sum;"); var he = add(4,8);
2.3 匿名函数
常用如窗口的onload,或unonload等事件上,当然也可这样用:
var add3 = function (a,b){ return a+b; } alert(add3(7,8));
三、变量的作用范围 作用域
. 一般只要在script中定义的变量都是全局变量,当然函数体中定义的变量,与函数的形参变量除外,他们是局部变量。
如
for(var i=0; i< arrs.length; i++){ document.write("arrs["+i+"]="+ arrs[i] +" <br />"); } //可以在循环外,使用循环中声明的变量i document.write("i="+i);
四、String对象
定义 可以直接var str = "abc" ; 当然也可以笨笨的使用 var str = new String("abc");
String的长度,可以直接使用length属性的,与java区别开来,不是方法哦。 alert(str.length);
常用的几个方法 str.bold(); 会在str字符前后加个 b 加粗的标签, str.fontcolor("red"),可以指定str字符串文本的颜色呢。 str.link(http://ww...) 可以链接到...呢。
如:自定义一个去string空格的函数
/* * 发现js中的string对象方法有限,想要对字符串操作的其他功能。 * 比如:去除字符串两端的空格。这时只能自定义。 */ //去除字符串两端的空格。 function trim(str){ //定义两个变量,一个记录开始的位置。一个记录结束的位置。 //对开始的位置 的字符进行判断,如果是空格,就进行递增,直到不是空格为止。 //对结束的位置 的字符进行判断,如果是空格,就进行递减,直到不是空格为止。 //必须要保证开始<=结束,这样才可以进行截取。 var start,end; start=0; end=str.length-1; while(start<=end && str.charAt(start)==' '){ start++; } while(start<=end && str.charAt(end)==" "){ end--; } return str.substring(start,end+1); }
五、prototype属性 原型属性
原型:就是该对象的一个描述。该描述中如果添加了新功能。那么该对象都会具备这些新功能。而prototype就可以获取到这个原型对象。通过prototype就可以对对象的功能进行扩展。
如:需求给String对象 增强一个功能,可以去除掉空格,那么可以使用原型来搞定了。 具体代码如下 :
String.prototype.trim = trim; //搞定。当然若没有已经定义好的trim时,要自己弄了。 //如String.prototype.trim = function (xx){...}
定义了这个原型,接着就可能直接使用trim功能了。如:
alert("-"+" ab cd ".trim()+"-");
六、数组基本操作