zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计学习笔记1: 基础

    JavaScript高级程序设计学习笔记1: 基础

    一、语法:

    1、区分大小写。
    2、变量是弱类型。
    3、每行结尾的分号可有可无。如果没有分号,以这行代码的结尾看作该语句的结尾。

    二、变量

    1、同一个var语句可以定义多个变量,而且不必具有相同的类型。
       如:var test = "hi", age = 25;

    2、变量名需要遵守两条简单的规则:
       (1)第一个字符必须是字母、下划线(_)或美元符号($)。
       (2)余下的字符可以是下划线、美元符号或任何字母或数字字符。

    3、使用变量之前不必声明,解释程序遇到未声明过的标识符时,用该变量名创建一个全局变量,并将其初始化为指定的值。

          var sTest = "hello ";
          sTest2 = sTest + "world";
          alert(sTest2); //输出 "hello world"

    三、原始类型

    5种原始类型:Undefined、Null、Boolean、Number、String
    可以用 typeof 运算符检查变量或值的类型,其中对于引用类型或null值会返回“object”:
        如:

          var sTemp = "test";
          var sTemp2;          //输出 "string" 
          var oNull = null;    //输出 "string"
          alert(typeof sTemp); //输出 "string"
          alert(typeof 9);     //输出 "number"
          alert(typeof sTemp2); //输出 "undefined"
          alert(typeof oNull);  //输出 "object"

    1、Undefined
    声明的变量未初始化时,该变量默认值是Undefined;
    当函数无明确返回值时,返回值也是Undefined;

    2、Null
    用于表示尚未存在的对象。

    3、Boolean
    进行比较时,==与===的区别:
    进行双等号==比较时,先检查两个操作数数据类型,如果相同,则进行===比较,如果不同,则进行类型转换成相同类型后再进行比较:
    (1)如果其中一个是Boolean值,则转换成数字,false转换成0,true转换成1;
    (2)如果其中一个是字符串,一个是数字,字符串转成数字;
    (3)如果一个是对象,一个是字符串,对象转成字符串(调用toString()方法);
    (4)如果一个是对象,一个是数字,对象尝试转成数字;
    (5)null 和 undefined相等;
    (6)如果两个都是对象,比较它们引用值;
    而===比较时,如果类型不同,直接就是false。
    例子:

    null == undefined //true
    0==true //false
    1==true //true
    2== true //false
    null === undefined //false
    0===true //false
    1===true //false
    2=== true //false

    4、Number
    八进制字面量的首数字是0,如 var iNum = 070; //即等于10进制的56
    十六进制字面量的前2位是0x,如var iNum = 0x1f; //即等于10进制的31
    浮点值必须包括小数点和小数点后一位数字,如1.0而不是1
    NaN表示非数(不是数字),NaN == NaN等于flase,一般用函数isNaN判断是否数字

    5、String
    字符串字面量可使用双引号或单引号声明。

    四、转换

    1、Number类型转换成字符串
       有两种模式:默认模式和基模式,基模式可以用不同的基输出数字,例如二进制的基是2,八进制的基是8,十六进制的基是16。

       var iNum = 10;
       alert(iNum.toString());     //输出 "10"
       alert(iNum.toString(2));    //输出 "1010"
       alert(iNum.toString(8));    //输出 "12"
       alert(iNum.toString(10));    //输出 "10"
       alert(iNum.toString(16));  //输出 "A"

    2、非数字的原始值转换成数字
    (1) parseInt() 转换成整数
    (2) parseFloat()  转换成浮点数
    parseInt()方法首先查看位置0处的字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再进行继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的测试,这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。如

    var iNum1 = parseInt("1234blue); //return "1234"
    var iNum2 = parseInt("0xA"); //return "10"
    var iNum3 = parseInt("22.5"); //return "22"
    var iNum4 = parseInt("blue"); //return "NaN"

    3、强制类型转换
    (1) Boolean(value)
    如果要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。
    如果该值是空字符串、数字0、undefined或null,它将返回false。

    var b1 = Boolean("");            //false
    var b2 = Boolean("hi");          //true
    var b3 = Boolean(100);           //true
    var b4 = Boolean(null);          //false
    var b5 = Boolean(0);             //false
    var b6 = Boolean(new Object());  //true

    (2) Number(value)
    Number()的强制类型转换与parseInt()和parseFloat()的处理方式相似,不同的是它转换的是整个值,而不是部分值。

    Number(false)             //0
    Number(true)              //1
    Number(undefined)         //NaN
    Number(null)              //0
    Number("5.5")             //5.5
    Number("56")              //56
    Number("5.6.7")           //NaN
    Number("new Object()")    //NaN
    Number("100")             //100

    (3) String(value)
    可把任何值转换成字符串,和toString()的区别是转换null或undefined可以生成字符串而不引发错误。

    var s1 = String(null);   //null
    var oNull = null;
    var s2 = oNull.toString() ; //引发错误

    五、用arguments对象模拟函数重载

    function test(){
        if(arguments.length == 1)
            alert(arguments[0] + ",你好");
        else if(arguments.length == 2)
            alert(arguments[0] + "," + arguments[1] + ",你们好")
        else
            alert("大家好");   
    }
    test();   //输出: 大家好
    test("a");  //输出: a,你好
    test("a","b");  //输出: a,b,你们好
    test("a","b","c","d");  //输出: 大家好

    六、创建函数

    创建函数有2种方式:
    1、函数声明

        function test(){
            console.log('test');
        } 

    调用函数,FunctionName(),上面例子:

    test();

    如果直接像下面这样,会报语法错误:

        function test(){
            console.log('test');
        }();

    但是如果将函数体部分用()包裹起来,解析器会以函数表达式的方式去调用定义函数。结果会正常的立即执行。
    大多数情况下用!,因为比()节省一个字符。

        (function test(){
            console.log('test');
        })();

    或者用!、+、-也是同样的结果

        !function test(){
            console.log('test');
        }();

    2、函数表达式

        var test = function(){
            console.log('test');
        }
  • 相关阅读:
    ASP.NET 表单验证 Part.1(理解表单验证)
    Silverlight 简介 Part.3(设计 Siverlight 页面)
    ASP.NET 成员资格 Part.3(LoginStatus、LoginView、PasswordRecovery)
    ASP.NET 网站部署 Part.1(安装IIS、复制文件部署网站)
    ASP.NET Dynamic Data Part.1(创建动态数据应用程序)
    ASP.NET 安全模型 Part.2(SSL)
    ASP.NET MVC Part.2(扩展基本的 MVC 应用程序)
    ASP.NET 网站部署 Part.2(使用 Web 部署)
    开发高级 Web 部件
    创建 Web 部件(WebPart 类、简单的 Web 部件)
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2086920.html
Copyright © 2011-2022 走看看