JavaScript基础知识一

时间:2022-08-22 17:20:34

一、什么是JS?

  ECMAScript

  JScript

  JS是一种基于对象和事件驱动的脚本语言

  提高用户体验性

二、为什么要使用JS?

  提高体验性

  使页面更加美观

三、JS用在什么地方?

  Web交互、页面特效、JS游戏

四、JS的特性

  JS是一种客户端脚本语言,是基于浏览器运行的

五、JavaScript基本语法

  1)在HTML代码当中嵌入JS的方式:

    ①直接在HTML代码中的任意位置加入<script></script>标签

      <script type="text/javascript">
      ......
      </script>

    ②外部加载

      <head>
      <script type="text/javascript" src=" "></script>
      </head>

    ③事件调用

      <div onclick=" "></div>

    ④超链接调用

      <a href="javascript:......;"></a>

  2)严格区分大小写

  3)标识符以数字字母下划线$ 组成,不能以数字开头

  4)注释

    //  单行注释

    /*  */  多行注释

  5)JS语句以分号结尾,若省略分号则自动解析换行为一个语句的结尾

  6)变量的声明

    可以使用 var,也可以不使用 var,但在函数内声明变量时使用或不使用 var 时变量的作用域不同

    声明变量可以同时声明多个变量,用逗号隔开

  7)数据类型

    1.基本数据类型

      字符串

        变量与字符串、变量与变量的连接使用“+

      数值型

        整型、浮点型、科学计数法(2e3)

        Infinity(正无穷)、-Infinity(负无穷),二者不可参与计算,isFinite()判断数值是不是无穷的

        NaN(非数值)、isNaN()判断一个值是否为非数值类型

      布尔型

        true、false  严格区分大小写

    2.复合数据类型

      对象

      数组

    3.其他数据类型

      函数

      null

      undefined  定义了一个变量但未赋值、使用了一个未定义的变量、使用了一个不存在的对象的属性时,返回undefined

  8)数据类型转换

    1.隐式类型转换

      其它类型转为数值型:

        true->1  false->0

        null、空字符串->0

        "0xf"->相同大小的十进制数值

        "011"->11  "1.1"->1.1  "11"->11

        undefined及其它字符->NaN

      其它类型转为布尔型:

        "true"->true  "false"->true

        非空字符串、非0数值、任何对象->true

        ""、0、NaN、null、undefined->false

      其它类型转为字符型:

        0->"0"  1->"1"

        0.1->"0.1"

        null->"null"

        NaN->"NaN"

        undefined->"undefined"

        true->"true"  false->"false"

    2.显式类型转换

      其它类型转为数值型:

        Number()

        parseInt()  强转为整型

          忽略字符前的空格,直到找到第一个非空格字符;

          第一个字符为负号或不是数字,返回NaN;

          空字符串返回NaN;

          第一个字符为数字则继续解析至非数字字符;

          将形式为八进制或十六进制的字符串转为对应进制数值

        parseFloat()  强转为浮点型

          第1个小数点有效,第二个小数点无效;

          始终忽略字符前面的0;

          空字符串返回NaN;

      其它类型转为布尔型:

        Boolean()

        或使用两次!运算符:

          var i="true";
          if(!!i){ }

      其它类型转为字符串型:

        String()

六、函数

  1.函数的创建

    ①方式一

      使用function关键字,使用方式与PHP方式基本一致

        function 函数名([参数1,][参数2,]...){
          ......
          return 返回值;
        }

      函数声明时的参数不可有默认值,可在方法体中用如下方式替代:

        if(参数1===undefined){
          参数1=默认值;
        }

    ②方式二(不推荐使用)

      var 函数名=new Function('参数1','参数2',......,'方法体');

    ③方式三

      var 函数名=function([参数1,][参数2,]...){
        ......
        return 返回值;
      }

  2.获取创建的函数的参数

    var myfunc=function(){
      var sum=0;
      for(var i=0;i<arguments.length;i++){
        sum+=arguments[i];
      }
      return sum;
    }
    var s=myfunc(1,2,3,4,5);
    document.write(s);

    arguments.length  为参数的总个数

    arguments[i]  为对应的实际参数值

  3.JS的系统函数

    ①escape()  编码函数

      将字符串中的特殊字符及中文等转换成相应的ASCII值,使其不会干扰字符串的处理

    ②unescape()  解码函数

      将escape()编码产生的文字转换成原字符

    ③eval()  将字符串指定为对象解析

  4.函数变量的作用域

    在函数体内部使用var声明的变量,为局部变量

    在函数体内部不使用var声明的变量,为全局变量,在函数体内外均可使用

七、对象

  1.创建对象

    ①方式一

      var person=new Object();

      person.name="autumn";

      person.age=25;

      person.info=function(){

        document.write(this.name+this.age);

      }

      person.info();

    ②方式二(JSON声明方法,是Ajax使用最多的数据模式)

      var person={'name':"autumn",'age':25,info:function(){

        document.write(this.name+this.age);

      }};

    ③方式三(用构造函数创建一个对象)

      function Person(name,age){

        this.name=name;

        this.age=age;

        this.info=function(){

          document.write(this.name+this.age);

        }

      }

      var p=new Person("autumn",25);

      p.info();

  2.遍历对象

    for(var i in 对象名){

      document.write(对象名[i]+"<br>");

    }

    例:

      for(var i in window){

        document.write(i+"----"+window[i]+"<br>");

      }