Java Web基础回顾 —Javascript

Javascript是脚本语言,浏览器解析读取代码是逐行地执行脚本代码;相对于传统编程语言,会在执行前对所有代码进行编译。

  1. Javascript定义在函数外面的变量一定是全局变量; 定义在函数内的变量,如果声明了var,那该变量就是局部变量,如果不声明var,那该变量就是全局变量。如果重新声明 JavaScript 变量,该变量的值不会丢失。

  2. with 语句:对象操作语句。为一段程序建立默认对象。

  3. for…in语句:重复执行指定 对象的所有属性。

  4. 默认对象:
    1)Date对象
    2)Array对象

  5. 事件:
    1)js中为某个对象空间绑定时间通常可以采取两种手段

      <input type=“button” onclick=“clickHandler();”>
      <input type=“button” id=“button1”>
     
     <scrip type=“text/javascript”>
     var v = document.getElementById(“button1”);
     v.onclick=clickHandler;
     </script>
    
  6. 在javascript中,函数function就是对象。

  7. 在javascript中,没有方法(函数)重载的概念。

  8. 在javascript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接收的参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。

  9. 在javascript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。arguments有一个length属性,可以得出实际函数的长度。

  10. 每一个函数对象都有一个length属性,表示该函数期望接收的参数格式,它与函数的arguments不同。

  11. javascript中有五种原始数据类型:Undefined、Null、Boolean、Number、String。

    • Undefined数据类型的值只有一个:undefined
    • Null数据类型的值只有一个:null
    • Boolean数据类型有两个:true 、 false
  12. typeof是一元运算符,有五个返回值:undefined、boolean、number、string、object。

  13. 在javascript中, 如果函数没有声明返回值,那么会返回undefined

  14. null与undefined的关系:undefined实际上是从null派生出来的。

  15. 强制类型转换:在javascript中有3中强制类型转换:Boolean(value), Number(value), String(value)。

  16. 在javascript中,可以动态添加对象的属性,也可以动态删除对象的属性。

  17. javascript中定义对象:
    *对象可以以name:value方式来定义:var person={firstname:"Bill", lastname:"Gates", id:5566}

    var object = new object();
    object.name = “name”;
    object[“password”] = “password”;
    delete object.name;
    
  18. javascript定义对象第二种方式:
    var object = {name:”name”, password:”password”};

  19. javascript数组的sort方法,会先将待排序的内容转换为字符串(toString()方法),按照字符串的先后顺序进行排序。

  20. javascript最佳定义对象的方式:使用原型+构造函数的方式来定义对象,对象之间的属性互不干扰,各个对象间共享同一个方法。

    function person(){
    this.username = new Array();
    this.password=“123”;
    }
    Person.prototype.getInfo=function(){
    alert(this.username+”, “+this.password);
    }
    var p = new Person();
    var p2 = new Person();
    p.username.push(“zhangsan”);
    p2.username.push(“lisi”);
    p.getInfo();
    p2.getInfo();
    
  21. javascript的继承:

    • 对象冒充:
      最重要的三行:
      this.method=Parent;
      this.method(username);
      delete this.method;

    • call方法:call方法是Function对象中的方法,因此我们定义的每个函数都拥有该方法。通过函数名来调用call方法,call 方法的第一个参数会被传递给函数中的this,从第二个参数开始,逐一赋值给函数中的参数。
      Parent.call(this,username);

    • apply方法:Parent.call(this, new Array(username));

    • 原型链prototype chain方式:无法给构造函数传递参数。

    • 混合方式:

        function Parent(username){
        this.username= username;
        }
        Parent.prototype.sayName=function(){
        alert(this.username);
        }
        function Child(username,password){
        Parent.call(this,username);
        }
        Child.prototype = new Parent(); //这样就继承了parent的所有方法。
      
  22. javascript的编码规范:一般不希望外界访问的成员和方法名以下划线开始。

原文地址:https://www.cnblogs.com/nextStep/p/6694853.html