Javascript s03

 

1.函数

         函数也是一个对象.

         alert(func instanceof Object);

         注意点:

         (1)形参不能带有默认值

         (2)函数可以嵌套函数

        

2.常用的调用方式

                   作为函数调用 test();

                   作为方法调用 this.test();

                   作为构造方法 new Object(); Object其实是一个函数

                   作为命名空间 (function(){ alert('tttt') })();

                                               避免使用全局变量,防止变量污染的问题

                                              

                   在原型上添加了属性,就算之前实例话的对象,也自动拥有

 

3.对象的constructor属性

         可以查看到该对象是由那个对象构造的

        

4.如何在js中,定义对象

         /*

                   class Student{ 

                            var name;

                            var age;

                            function Student(){

                                     //var name='无名氏';//局部变量,不是属性

                                     this.name="无名氏";

                                     this.age=18;   

                                     alert('ddddd');

                                    

                                     //this.run();

                                     //this.run=function(){}//等同于将下面的run()方法,重写了

                            }

                            function run(){}

                   }

                   */

                  

                   function Student(){

                            //var name='无名氏';//局部变量,不是属性

                            this.name="无名氏";//定义属性

                            this.age=18;

                           

                            //alert('ddddd'); //当new时,会执行构造函数,这句代码在构造函数中,会被执行

                           

                            this.say=function(){

                                     document.write("大家好呀,我是" + this.name + "<br>");

                            }

                   }

                           

                   var stu1=new Student();

                   document.write(stu1.name);

                   document.write(stu1.age);

                   stu1.say();

                  

 

5.给函数定义属性

 

         function test(){

                            return  ++test.i;

                   }

                  

                   test.i=0;           

                   document.write(test());

                   document.write(test());

                   document.write(test());          

                   document.write(test());

                  

        

6.arguments.callee 只当前正在执行的函数

 

7.sum.length是函数定义了多少个形参?

arguments.length 与 函数名.length的区别?

         arguments.length:只能在函数的内部使用,表示函数在调用的那一刻,实际传递了多少个参数

         函数名.length,可以在外部使用(内部一样),表示定义了多少个形参

         实参arguments.length有可能大于形参(函数名.length)

        

在PHP中         ,func_num_args(),func_get_args();

function(a,b)  如果多传的形参,则没用,这就是为什么有效形参要放前面

        

8.prototype      原型

 

         function Student(){

                   Student.prototype.age=18;

                   Student.prototype.email="a@a.com";

 

         }

        

         var obj=new Student();

         document.write(obj.email);

         //每一个函数,都有一个原型对象prototype,属于函数的

         //有什么用?

         //当在使用new通过函数创建对象时,对象就继承自这个prototype

         //可以使用this,在函数(构造方法)中,调用这个对象的属性

         //如果这个对象,没有该属性,则去原型对象prototype中寻找

        

        

9.常用对象的属性和方法

                     a.数组Array

                            length

                            join() toString 跟PHP(implode)

                            sort()排序

                            reverse() 反转

                            concat()

                            splice()

                            push()   pop()

                            shift()        unshift();

                           

                           

                           

                     b.字符串Stirng

                            length       中文占几个? 1个

                            在PHP中 UTF-8 strlen($str) 3个

                                               ANSI                       2个

                                              gbk                                  2个

                                              

                            str.toLowerCase()

                            str.toUpperCase()

                            str.charAt(index)      //"lamp".charAt(1).toUpeerCase();  a

                            str.indexOf()    

                                     var email="aaa@dd.com";

                                     alert(email.indexOf("@"));      //3

                            str.substring    //substr

                                     alert(email.substring(4,7));     //只取到3

                                     js的substring与JAVA一样,第二个参数是索引

                                     php,与C#一样,第二个参数是长度

                           

                      d.数学Math

                      PI

                      Math.random()

                      Math.abs()

                      Math.ceil()

                                     floor()

                                     round()

                                     max()

                                     min()

                                     pow()

                                    

                      e.正则对象       

                     

                      1. / 正则表达式RegExp  /gim

                      2. new RegExp("正则表达式","模式修正符")

                            调用字符串的方法,把正则放进去

                               g   global 全局

                               i   ignoreCage 不区分大小写

                               m   mutiline 多行模式

        

                            方法:

                                     正则.test("要测试的字符串");

                                     str.match(正则对象);

                                     str.replace(正则对象,用于替换的新内容);

                                               "lamp".replace(/am/,"AM");  //lAMp

                                              

                                     str.search(正则)     

                                              

                                              

                            f.日期date

                                     对象是new出来的

                                     var now=new Date;

                                               两个方法setXxx()   getXxx()

                                              

                                               getFullYear();   //只能用这个了

                                               getMonth()      //特殊0-11 从0开始 要+1

                                               ...

                                               getDay()  0-6星期

                                               getTime() //从1970年开始 的毫秒 与PHP不一样

                                              

                                              

                                               new Date(1999,2,12,15,44,09)

                                              

        

posted @ 2013-06-01 13:41  午时的海  阅读(134)  评论(0编辑  收藏  举报