语句、注释、变量

JavaScript 语句

  • JavaScript语句:JavaScript 语句是发给浏览器的命令

  • 分号 :分号用于分隔 JavaScript 语句。 使用分号的另一用处是在一行中编写多条语句

  • JavaScript代码:JavaScript 代码是 JavaScript 语句的序列。 浏览器按照编写顺序依次执行每条语句。

    • document.getElementById("demo").innerHTML="你好 Dolly";
      document.getElementById("myDIV").innerHTML="你最近怎么样?";
  • JavaScript代码块: JavaScript可以分批组合起来. 代码块以左花括号开始,以右花括号结束。

    • function myFunction()
      {
      document.getElementById("demo").innerHTML="你好Dolly";
      document.getElementById("myDIV").innerHTML="你最近怎么样?";
      }
  • JavaScript语句标识符: JavaScript语句通常以一个语句标识符为开始,并执行该语句. 语句标识符是保留关键字不能作为变量名使用

    • break 用于跳出循环。
      catch 语句块,在 try 语句块执行出错时执行 catch 语句块。
      continue 跳过循环中的一个迭代。
      do … while 执行一个语句块,在条件语句为 true 时继续执行该语句块。
      for 在条件语句为 true 时,可以将代码块执行指定的次数。
      for … in 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
      function 定义一个函数
      if … else 用于基于不同的条件来执行不同的动作。
      return 退出函数
      switch 用于基于不同的条件来执行不同的动作。
      throw 抛出(生成)错误 。
      try 实现错误处理,与 catch 一同使用。
      var 声明一个变量。
      while 当条件语句为 true 时,执行语句块。
  • 空格 : JavaScript会忽略多余的空格 可以向脚本添加空格,来提高其可读性

  • 对代码行进行折行 : 可以在文本字符串中使用反斜杠对代码行进行换行

    • document.write("你好 \
      世界!");
    • 不过,不能像这样折行:
      • document.write \ ("你好世界!");
  • 注意: JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。

注释 : JavaScript 注释可用于提高代码的可读性

  • 注释 :
    • 单行注释以 // 开头。
    • 多行注释以 /* 开始,以 */ 结尾。
  • 使用注释来阻止执行 // document.getElementById("myH1").innerHTML="欢迎来到我的主页";
  • 在行末使用注释 把注释放到代码行的结尾处
  • 注意:如果用户不能确定浏览器是否支持JavaScript脚本,那么可以应用HTML提供的注释符号进行验证。HTML注释符号是以 <– 开始以 –> 结束的。如果在此注释符号内编写 JavaScrip t脚本,对于不支持 JavaScript 的浏览器,将会把编写的 JavaScript 脚本作为注释处理。

变量:变量是用于存储信息的"容器"

  • 变量的命名

    • 变量必须以字母开头
    • 变量也能以 $ 和 _ 符号开头(不过不推荐这么做)
    • 变量名称对大小写敏感(y 和 Y 是不同的变量)
    • 注意 :JavaScript 语句和 JavaScript 变量都对大小写敏感。
  • 数据类型

    • 向变量分配文本值时,应该用双引号或单引号包围这个值。
    • 向变量赋的值是数值时,不要使用引号。如果用引号包围数值,该值会被作为文本来处理。
  • 声明(创建)变量

    • var 关键词来声明变量
    • 注意 :一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明。
  • 一条语句,多个变量

    • 可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量
    • 声明也可横跨多行:
      • var lastname="Doe",
        age=30,
        job="carpenter";
    • 一条语句中声明的多个不可以赋同一个值:
      • var x,y,z=1; x,y为undefined, z为1
  • value=undefined :计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined

  • 重新声明JavaScript变量 : 重新声明 JavaScript 变量,该变量的值不会丢失

    • var carname="Volvo"; var carname; 执行后,变量carname的值仍然是“Volvo”;
  • JavaScript算数 可以通过 JavaScript 变量来做算数,使用的是 = 和 + 这类运算符

  • JS中的let变量 let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。

    • let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];
      
      
    • let 声明的变量只在其声明的块或子块中可用,这一点,与var相似。二者之间最主要的区别在于var声明的变量的作用域是整个封闭函数。

      • function varTest() {
            var x = 1;
            if (true) {
                var x = 2;       // 同样的变量!
                console.log(x);  // 2
            }
            console.log(x);  // 2
        }
        
        function letTest() {
            let x = 1;
            if (true) {
                let x = 2;       // 不同的变量    
                console.log(x);  // 2  
            }
            console.log(x);  // 1
        }
        
  • var关键字

    • Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。

    • // num1为全局变量,num2为window的一个属性
      var num1 = 1;
      num2 = 2;
      // delete num1;  无法删除
      // delete num2;  删除
      function model(){
      var num1 = 1; // 本地变量
      num2 = 2;     // window的属性
          // 匿名函数
          (function(){
              var num = 1; // 本地变量
              num1 = 2; // 继承作用域(闭包)
              num3 = 3; // window的属性
          }())
      }
      
  • const关键字

    • const 关键字用来声明 JavaScript中的常量(与变量相对,不可修改,但同样是用于存储信息的"容器"。),常量的值不能通过重新赋值来改变,并且不能重新声明。

    • //定义常量a并赋值为0
      const a = 0;
      
      //报错(不能重新赋值)
      a = 1;
      
      //报错(不能重新声明)
      const a = 2;
      
      //输出0
      console.log("a is: " + a);
      
  • 字面量

    • 字面量(literal)用于表达源代码中一个固定值的表示法(notation),整数、浮点数以及字符串等等都是字面量。

    • var a=1;   // a 是变量,1 是字面量
      
    • var stooge = {    // stooge 是一个对象
         "frist-name" = "Julie",    // 等号左为属性名,右侧为属性值
          last_name = "beck"    // 属性名如果是合法的标识符,可省略引号
      
      };    // "frist-name", last_name, "Julie", "beck" 都是对象字面量
      
    • var stooge = {    // stooge 是一个对象
         "frist-name" = "Julie",    // 等号左为属性名,右侧为属性值
          last_name = "beck"    // 属性名如果是合法的标识符,可省略引号
      
      };    // "frist-name", last_name, "Julie", "beck" 都是对象字面量
      
    • 与常量的区别:

      //  C/C++:
      
      const int A = 1;    // A 是常量,1 是字面量
      
      A++;    // error,常量值不能改变
      
  • 重复

    • JavaScript 允许重复定义函数 :JavaScript 没有重载这个概念,它仅依据函数名来区分函数。

      • 后定义的同名函数覆盖之前的,与参数无关。

      • function test() {
            console.log("test");
        }
        test();     //输出 "test arg0 + undefined"
        
        function test(arg1) {
            console.log("test arg" + arguments.length + " + " + arg1);
        }
        test(1,2);  //输出 "test arg2 + 1"
        
      • 实参个数如果比形参少,那么剩下的默认赋值为 undefined,如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用 arguments 来获取剩下的参数)。

        • function test(arg1) {
              for(var i=0; i<arguments.length; i++) {
                  console.log(arguments[i]);
              }
          }
          test(1,2); //输出 1 2
          
    • 变量与函数重名的时候,变量生效

      • 变量声明会被顶置,函数声明也会被顶置且比变量更先声明。

      • 变量的声明和赋值语句一起写时,JS引擎在解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置。

      • 声明过的变量不会再重复声明。

        • var a = 100;
          function a() {
              return "function";
          }
          console.log(a);     //输出 100
          console.log(a());   
          /*
          报错
          Uncaught TypeError: a is not a function
              (anonymous function) @test.html:9
          */
          
      • JS 中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的 init 方法赋值给该变量。

        • var a = 100;
          var a = function() {
              return "function";
          }
          console.log(a);
          /* 
          输出
          function() {
              return "function";
          }
          */
          console.log(a());   //输出 "function"
          
    • 函数与内部变量重名

      • 定义普通函数,即在 window 变量下,定义一个 key,它的名字为该函数名,值为该函数的地址。函数内部的 this 指向 window 对象。

      • function a() {
            console.log(this);  //输出 window{...}
            this.a = 1;         //即 window.a = 1,此时window下的function a已经被该变量覆盖了。
            var a = 5;          //下面的这几个变量都是局部变量,仅在花括号范围内有效。  
            a = 10;
            var v = "value"
            return "function";
        }
        console.log(a);         //输出 function a {...}
        console.log(a());       //输出 "function"
        console.log(a);         //输出 1
        console.log(v);
        /*
        输出
        Uncaught ReferenceError: v is not defined
            (anonymous function) @ mycolor.html:15
        */
        
    • 重复声明变量

      • JavaScript 允许变量被重复声明,在声明变量时 JavaScript 会自行判断这个变量是否已经被声明了,如果已经被声明(即已经存在),那么重复声明(即除了变量的非首次声明)会被跳过,不再执行声明的操作。

      • JavaScript 变量的值是可以被重复赋值的,最后的赋值是这个变量最后的结果。

      • var a=1;
        var a=2;
        
        //赋值覆盖相当于:
        var a;
        //a=1;
        a=2;
        
        //声明覆盖相当于:
        //var a=1;
        var a=2;
        

猜你喜欢

转载自blog.csdn.net/Aqours/article/details/89468162