• 读javascript高级程序设计01-基本概念、数据类型、函数


    一. javascript构成

    1.javascript实现由三部分组成:

    ECMAScript:核心语言功能

    DOM:文档对象模型,提供访问和操作网页内容的方法和接口

    BOM:浏览器对象模型,提供与浏览器交互的方法和接口。

    2. ECMAScript宿主环境:浏览器、Node、Adobe Flash.

    二. 在HTML中引入javascript

    1.<script>标签:language属性已经废弃,一般使用type="text/javascript";

    2.不要再代码中出现</script>,如果需要的话用“</script>”;

    <script type="text/javascript">
    function test()
    {
    //alert("</script>");//×
    alert("</script>");//
    }
    test();


    </script>js代码一般放在body中内容的最后,例如<body>...........<script>....</script></body>

    3.<noscript>:当浏览器不支持脚本或者脚本被禁用时才会显示<noscript>标签中的内容。

    例如:<noscript> 您的浏览器不支持javascript或者已被禁用。 </noscript>

    三.基本数据类型

    基本数据类型有:null,undefined,string,number,boolean。几点说明:

    1. null值表示一个空指针引用,所以typeof null返回结果是object。如果定义一个变量是用来保存引用类型,那最好初始化为null。

    2. toString() 转换为字符串:

    toString():一般不带参数调用即可,但是null和undefined没有这个方法。

    toString()指定基数,可以返回指定进制的字符串。例如:

    var n=10;
    n.toString(2);//"1010"
    n.toString(4);//"22"
    

    3.String()转换为字符串:可以将任意类型的值转换为字符串形式。转换规则如下:

    如果变量有toString()方法,则调用toString()方法;

    如果变量为null,则返回"null";

    如果变量为undefined,则返回"undefined"。

    var a=10,b,c=true,d=null,e=new Object();
    console.log(String(a));//'10'
    console.log(String(b));//'undefined'
    console.log(String(c));//'true'
    console.log(String(d));//'null'
    console.log(String(e));//'[object Object]'

    四.函数-function

    1.函数参数

    ECMAScript中的参数是用类似数组的对象来表示的,可以使用arguments对象来访问每一个参数。例如,arguments[0]表示第一个参数,arguments.length表示传进来的参数个数。不过arguments其实并不是Array的实例。

    function add(a,b,c){
      console.log(arguments instanceof Array);  //false
      console.log("args number:"+arguments.length);
      if(arguments.length>=3){
        return a+b+c;
      }else if(arguments.length==2){
        return a+b;
      }else{
        return a;
      }
    }
    add(1);//1
    add(1,2)//3
    add(1,2,3);//6
    add(1,2,3,4,5);//6

    ECMAScript中的函数不能重载,但是通过这种方式也可以实现传递可变个数的参数来实现类似功能。

    2. 没有传递值得命名参数会自动赋予undefined。

    function add(a,b){
      return b;
    }
    add(1);//undefined
    add(1,2)//2

    3. arguments与命名参数

    如果在函数体中修改arguments的值,那么对应的命名参数也跟着发生变化。

    function add(a,b){
      arguments[1]=10;
      if(arguments.length>=2){
        return a+b;
      }else{
        return a;
      }
    }
    add(1);//1
    add(1,2)//11

    要注意arguments对象的长度是由调用时实际传入的参数个数决定的,而不是定义时的命名参数个数决定的。例如在上例的在add(1)调用时,只传入了一个参数,对arguments[1]的修改并不会生效。

    4. 传递参数

    函数的参数是按值传递的。当传递基本类型时,被传递的值被赋给一个局部变量,函数内部的修改不会影响函数外部的变量;当传递引用类型时,会把这个值在内存中的位置赋给局部变量,函数内部的修改会对函数外部有所影响。

    //基本类型
    function test(a){
      a=100;
      return a;
    }
    var m=1;
    var result=test(m);
    console.log(m);//1
    console.log(result);//100
    
    //引用类型
    function test(a){
      a.name='tom';
      return a;
    }
    var m=new Object();
    m.name='peter';
    var result=test(m);
    console.log(m.name);//tom
    console.log(result.name);//tom
  • 相关阅读:
    蓝牙学习(5) -- sockets
    蓝牙学习(4) -- L2CAP
    蓝牙学习(3) Linux kernel部分Bluetooth HCI分析
    蓝牙学习(2)USB Adapter
    蓝牙bluez学习(1) Stack Architecture
    Release Python Program as exe
    蓝牙stack bluez学习(1)Stack Architecture
    树莓派
    树莓派
    关于Reflow回流
  • 原文地址:https://www.cnblogs.com/janes/p/3828531.html
Copyright © 2020-2023  润新知