zoukankan      html  css  js  c++  java
  • JavaScript要点

    JavaScript要点

    命名变量

    变量名需要遵守两条简单的规则:

    • 第一个字符必须是字母、下划线(_)或美元符号($)
    • 余下的字符可以是下划线、美元符号或任何字母或数字字符

    下面的变量都是合法的:

    var test;
    var $test;
    var $1;
    var _$te$t2;

    注:与C++相比,多了美元符号$这个东西可用,所以$不是像shell中是一种对变量的引用。

    Object 对象

    Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。

    Object 对象具有下列属性:

    constructor
    对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。
    Prototype
    对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。

    Object 对象还具有几个方法:

    hasOwnProperty(property)
    判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))
    IsPrototypeOf(object)
    判断该对象是否为另一个对象的原型。
    PropertyIsEnumerable
    判断给定的属性是否可以用 for...in 语句进行枚举。
    ToString()
    返回对象的原始字符串表示。对于 Object 对象,ECMA-262 没有定义这个值,所以不同的 ECMAScript 实现具有不同的值。
    ValueOf()
    返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。

    arguments 对象

    在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。

    例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。

    因此,无需明确命名参数,就可以重写函数:

    function sayHi() {
      if (arguments[0] == "bye") {
        return;
      }
    
      alert(arguments[0]);
    }

    模拟函数重载

    用 arguments 对象判断传递给函数的参数个数,即可模拟函数重载:

    function doAdd() {
      if(arguments.length == 1) {
        alert(arguments[0] + 5);
      } else if(arguments.length == 2) {
        alert(arguments[0] + arguments[1]);
      }
    }
    
    doAdd(10);	//输出 "15"
    doAdd(40, 20);	//输出 "60"
    

    当只有一个参数时,doAdd() 函数给参数加 5。如果有两个参数,则会把两个参数相加,返回它们的和。所以,doAdd(10) 输出的是 "15",而 doAdd(40, 20) 输出的是 "60"。

    请看下面这个例子:

    function doAdd(iNum) {
      alert(iNum + 20);
    }
    
    function doAdd(iNum) {
      alert(iNum + 10);
    }
    
    doAdd(10);	//输出 "20"
    

    如你所知,第二个函数重载了第一个函数,使 doAdd(10) 输出了 "20",而不是 "30"。

    如果以下面的形式重写该代码块,这个概念就清楚了:

    var doAdd = new Function("iNum", "alert(iNum + 20)");
    var doAdd = new Function("iNum", "alert(iNum + 10)");
    doAdd(10);

    用 Function 类直接创建函数的语法如下:

    var function_name = new function(arg1, arg2, ..., argN, function_body)

    在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。

    记得下面这个函数吗?

    function sayHi(sName, sMessage) {
      alert("Hello " + sName + sMessage);
    }
    

    还可以这样定义它:

    var sayHi 
    = 
    new Function("sName", "sMessage", "alert(\"Hello \" + sName + sMessage);");
  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2604533.html
Copyright © 2011-2022 走看看