日期:2014-05-16  浏览次数:20436 次

javascript js 入门 二

继续上文 语法遍:

一、 数组

定义一个数组,两种方式 要不用 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()+"-");

六、数组基本操作