javascript学习笔记--基础

1<noscript></noscript>

  当用户浏览器禁用或不支持javascript时 还想在页面显示一些内容可以使用<noscript></noscript>标签对。

2http mailto javascript

 <a href="javascript:alert(new Date())">javascript</a>

3javascript区分大小写 html不区分

4转义字符

  \b退格

 \t跳格

 \n回车换行

 \r换行

 \""双引号

 \'单引号

 \\  \

5特殊数据类型

undefined null

undefined用来表示不存在或者尚未赋值的变量。

null 是一个表示该变量被赋予了一个空值。

 

6+号的特色含义

  var w=5;

  var x=20;

  var y="xxxxxxxx";

  alert(w+x+y); 结果:25xxxxxxx

 

  var w=5;

  var x=20;

  var y="xxxxxxxx";

  alert(""+w+x+y); 结果:520xxxxxxx

 

7typeof运算符

typeof运算符返回一个字符串,指明其操作数的数据类型。

a=3;

b=null;

name="three";

alert((typeof a))

alert((typeof b))

alert((typeof name))

 

8参数变量可变的函数 类似于c#中的param

arguments数值对象,包含了调用程序传递给行数的所有参数。

fuction testparams()

{

  var params="";

    for( var i=0;i<argument.length;i++)

   {

       params=params+arguments[i];

   }

   alert(params);

}

 testparams(11,22)

 testparams(11,112,22)

 

9创建动态函数

var square=new Function("x","y","var sum;sum=x*y*Y;returen sum;");

alert(square(3,2))

注意:这里的x y 参数一定要用双引号或单引号引起来。

 

10URI编码处理函数

encodeURI

decodeURI

 

11字符串编码处理函数

escape 所有空格 标点重音符号以及任何其他非ascii码字符都用%xx编码替换,其中xx等于表示该字符的unicode编码的十六进制数

unescape

eval方法将某个参数字符串作为一个javascript表达式执行。

如果想在运行时修改变量的名称

for(var i=0;i<n;i++)

{

 eval("var a"+i+"="+i);

}

上面代码定义了n个变量 分别为a0 a1.。。。。

 

12array对象及其属性与方法

    join方法:将一个数值的所有元素转换为字符串,并把这些字符串连接起来。

                 可以指定一个字符串来分割结果字符串中的元素。

                若未指定分隔字符串,将使用“,”来分隔。

   reverse方法:对数组进行重新排序,颠倒。

   sort方法:排序

   alice方法:返回的是指定数组的一个子数组。

                 带两个参数 分别表示要返回的子数组的起止点。

                 如果只要一个参数,返回的子数组表示从改点到最后。

                 如果是一个负数,则指定的是相对于数组中最后一个元素。

  splice方法:可以报元素从数组中删除,也可以向数组中插入新元素。

                  位于被插入(删除)元素之后的数组元素会自动进行必要的移动。

   

 13.javascript中replace()

   在javascript中,String的函数replace()简直太让人喜爱了。它灵活而强大的字符替换处理能力,让我不禁想向大家介绍它。

  replace()最简单的算是能力就是简单的字符替换。示例代码如下:

<script language="javascript">
 var strM = "javascript is a good script language";
 //在此我想将字母a替换成字母A
 alert(strM.replace("a","A"));
</script>

  我想大家运行后可以看到结果,它只替换了首字母。但如果加上正则表达式结果就不一样了!呵呵,没错。replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换!

<script language="javascript">
 var strM = "javascript is a good script language";
 //在此我想将字母a替换成字母A
alert(strM.replace(/a/,"A"));
 </script>

  呵呵,您一定发现了。这样还是只替换了第一个字母a。如果您熟悉正则,那这就难不住您。稍加修改就OK了。

<script language="javascript">
var strM = "javascript is a good script language";
 //在此将字母a全部替换成字母A
alert(strM.replace(/a/g,"A"));
</script>

  还可以这样,看看效果!

<script language="javascript">
 var strM = "javascript is a good script language";
 alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2"));
</script>

  我这儿举的例子都是很简单的应用,replace()在此点上与您使用正则表达式的能力成正比。您正则表达式越强,呵呵,那您就会越疯狂的爱上它。

  当然,我这儿推荐replace()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。

  先看看简单例子:将所有单词首字母换成大写。

<script language="javascript">
 var strM = "javascript is a good script language";
 function change(word)
{
 return word.indexOf(0).toUpperCase()+word.substring(1);
}
 alert(strM.replace(/\b\w+\b/g,change));
</script>

  由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。

  有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!

  最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。

<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
 var result = word.match(/(\w)/g);
 if ( result )
{
 var str = "";
  for ( var i=result.length-1; i>=0; i-- )
 {
   str += result;
 }
 return str;
}
else
{
  return "null";
}
}
alert(strM.replace(/\b(\w)+\b/g,change));
</script>

0
0
(请您对文章做出评价)

 

 14.数组的处理

 

 <script type="text/javascript">
        Array.prototype.clear = function() {
            this.length = 0;
        }
        Array.prototype.insertAt = function(index, obj) {
            this.splice(index, 0, obj);
        }
        Array.prototype.removeAt = function(index) {
            this.splice(index, 1);
        }
        Array.prototype.remove = function(obj) {
            var index = this.indexOf(obj);
            if (index >= 0) {
                this.removeAt(index);
            }
        }


        var t = ["1:2", "2:2"];

       // t.push({ 'a': 3 }); //增
        // t[0].a = 11; //改
        t.remove("1:2"); //删
        alert(eval(t));
        alert(t);
    </script>

 

15 josn增删改查操作

<script type="text/javascript">
        Array.prototype.clear = function() {
            this.length = 0;
        }
        Array.prototype.insertAt = function(index, obj) {
            this.splice(index, 0, obj);
        }
        Array.prototype.remove = function(index) {
            this.splice(index, 1);
        }


        var t = [{ 'a': {'c':22}, 'b': 2 }, { 'a': 2}];
        t.push({ 'a': 3 }); //增
        //t[0].a = 11; //改
        //t.remove(0); //删
        alert(t[0].a.c);
    </script>


 16 闭包之间的交互

fuction outerfun(){

var outvar=0;

fuction innerFun(){

outervar++;

alert(outvar);

}

fuction inneFun2(){

outervar=outervar+2;

alert(outervar);

}

}

 

var glvar=outerFun();

glvar.innFun();//1

glvar.innFun2();//3

glvar.innFun();//4

 

 

 

 

posted @ 2009-07-18 10:01  awp110  阅读(176)  评论(0编辑  收藏  举报