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');
        }
  • 相关阅读:
    python第二课
    python第一课
    Python基础20-类的创建与删增改查
    Python基础19模块-hashlib模块
    Python基础18模块-configerparse模块
    Python基础17模块-logging模块
    Python基础16模块-re模块
    Python基础-15模块-OS模块
    Python基础-14模块-random模块
    Python基础-13模块-时间模块
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2086920.html
Copyright © 2011-2022 走看看