• JavaScript基础知识


    1、格式
      JavaScript脚本位于<script>标签中,<script>标签可以置于<head>标签或者<body>标签中,甚至可以置于文档底部(这样不影响页面代码);JavaScript包含一般语句和函数。
    2、输出方式(调试)
      alert()方法可以弹出警告框、document.write()方法直接输出到页面、innerHTML写到HTML元素中、console窗口调试。
    3、数据类型
      字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undifined)
      JavaScript拥有动态类型,相同的变量可以用作不同的类型。
    可以使用typeof操作符来检测变量的数据类型:
      一般的数据类型有string、number、boolean、object;

      数组是一种特殊的对象,所以typeof [1,2,3,4]返回的是object;

      Null是空对象引用,所以用typeof检测Null返回的是object;

      用typeof检测undefined返回的是undefined;

      特别注意,Null和undefined的值是相等的,但是类型不同。
    类型转换:
      上述的数据类型都可以使用一定的方法转换为另外的数据类型。
    4、语法
      基本语法与java类似,其中的不同点有:
      (1)变量声明使用var
      例如:var a = 10;
      特别注意,可以使用var声明声明过的变量名,变量的值取最近一次有赋值的声明的值。
      例如:

    var a = 10;    var a; //此时a的值为10
    var a = 10;    var a = "ten"; //此时a的值为字符串"ten"

      (2)对象表示方式:

    var person = {
          name:"hex", 
          age:23,
          home:"CQ",
          sing:function () {
            return "no voice";
          }
        };

      通常认为JavaScript中的对象是键值对的容器,与Java中的Map类似。
      (3)对象的访问方式
      访问属性:person.name; 或者person["name"];
      访问方法:person.sing();
      (4)函数声明方式:
        

        function myFunction(a, b) {
          //do someting
        }

      (5)命名习惯采用驼峰命名法,变量命名需以字母开头,或者$或者_开头,习惯性以字母开头。
    5、作用域
      与Java类似,函数内通过var声明的是局部变量,函数外通过var声明的是全局变量,函数内使用没有声明过的变量(严格模式use strict下不允许使用没有声明过的变量),该变量自动变成全局变量。函数运行结束后,局部变量被删除;页面关闭后,全局变量被删除。
    6、HTML DOM事件
      HTML DOM事件允许JavaScript根据不同的事件注册不同的处理程序,也即是规定当发生了某些事件时,程序可以做一些事情。
      例如:
      <button type="button" onclick="alert('just a test!')">测试</buttom>
      当点击测试按钮时,页面会弹出警告框"just a test!"
      类似的事件还有:鼠标事件、键盘事件、框架/对象事件、表单事件等。
    7、正则表达式
      (1)正则表达式的模式与java类似,使用格式为:/hello/i,其中//是固定格式,hello表示匹配的内容,i是修饰符,表示不区分大小写(还有其他修饰符);
      (2)RegExp对象:RegExp对象是一个预定义的了属性和方法的正则表达式对象,可以声明一个RegExp对象,调用test()方法判断字符串中是否有匹配项,或者exec()方法查找字符串中的匹配项;
      例:语句/he[abcl]l/i.test("hello,world!") 结果true
      语句/he[abcl]l/i.test("hello,world!") 结果hell
      注意:当字符串中有多个匹配项时,返回最先匹配到的子串
    8、错误与调试
      (1)try catch错误处理:语法与java语言类似,不同点在于throw抛出异常时,可以抛出一些自定义的异常,而这些异常可以是JavaScript的字符串、数字、逻辑值和对象。
      (2)调试:大多数浏览器都内置了调试程序(console),F12可以打开console窗口;在script中添加debugger可以设置断点。
    9、this关键字
      this代表着函数运行时自动生成的一个内部对象,只能在函数内部使用。随着函数的使用场合的不同,this的值也会有所变化。但是,this始终指向调用函数的对象。
      例子1:    

        function myFunction() {
          return this;
        }
        myFunction();

      此时返回的是windows对象,此时函数的调用是全局的,所以事实上调用它的对 象就是windows。

      例子2:    

        var person = {
          name:"hex",
          age:23,
          object:function () {
            return this;
          }
        };
        person.object();

      此时返回的是:Object {name: "hex", age: 23}。此时函数的调用者是person,所以返回值就是person对象。

    10、计数器困境与函数的自我调用
      我们在写计数器时,需要实现计数器的初始化和自增。我们希望的是初始化时只需要调用某一个方法,自增时也只需要调用某一个方法,而不采用直接修改变量的方式。那么,count变量应该声明为全局变量还是局部变量呢?声明为全局变量时,可以通过直接修改变量的方式改变计数器的值,声明为局部变量时,我们需要把count变量初始化和自增放在一个方法中,比如:  

      function myCounter(){
        var count = 0;
        function add() {
          count++;
        }
        add();
      }

      但是,这样在myCounter函数外部就不能够调用add方法。函数的自我调用可以解决这个问题。采用函数的自我调用可以这样写:  

      var add = (function () {
        var counter = 0;
        return function () {
          counter++;
        }
      }) ();

      这样,在需要计数时,我们调用add()就可以实现计数。事实上,add变量是一个counter的自增函数,这个函数可以使用counter变量。此时,function的声明是一个表达式,只会执行一次,所以counter初始化也只会执行一次。

  • 相关阅读:
    python基础之lambda,sort,filter,map,递归函数的运用
    python基础之生成器,生成器函数,列表推导式
    python基础之函数名的使用,闭包以及迭代器
    移动端自带框架
    app自动化环境部署和原理
    夜神模拟器连接不上adb
    Appium下载和配置
    word如何添加下滑线
    loadrnner组成
    性能测试
  • 原文地址:https://www.cnblogs.com/songxh-scse/p/7127514.html
Copyright © 2020-2023  润新知