• <bdo id='NHcZ3'></bdo><ul id='NHcZ3'></ul>
  • <small id='NHcZ3'></small><noframes id='NHcZ3'>

        <i id='NHcZ3'><tr id='NHcZ3'><dt id='NHcZ3'><q id='NHcZ3'><span id='NHcZ3'><b id='NHcZ3'><form id='NHcZ3'><ins id='NHcZ3'></ins><ul id='NHcZ3'></ul><sub id='NHcZ3'></sub></form><legend id='NHcZ3'></legend><bdo id='NHcZ3'><pre id='NHcZ3'><center id='NHcZ3'></center></pre></bdo></b><th id='NHcZ3'></th></span></q></dt></tr></i><div id='NHcZ3'><tfoot id='NHcZ3'></tfoot><dl id='NHcZ3'><fieldset id='NHcZ3'></fieldset></dl></div>
        <legend id='NHcZ3'><style id='NHcZ3'><dir id='NHcZ3'><q id='NHcZ3'></q></dir></style></legend>
      1. <tfoot id='NHcZ3'></tfoot>
      2. JS变量中有var定义和无var定义的区别以及es6中let命令和const命令

        时间:2023-12-08

          <i id='qUyfD'><tr id='qUyfD'><dt id='qUyfD'><q id='qUyfD'><span id='qUyfD'><b id='qUyfD'><form id='qUyfD'><ins id='qUyfD'></ins><ul id='qUyfD'></ul><sub id='qUyfD'></sub></form><legend id='qUyfD'></legend><bdo id='qUyfD'><pre id='qUyfD'><center id='qUyfD'></center></pre></bdo></b><th id='qUyfD'></th></span></q></dt></tr></i><div id='qUyfD'><tfoot id='qUyfD'></tfoot><dl id='qUyfD'><fieldset id='qUyfD'></fieldset></dl></div>

        1. <legend id='qUyfD'><style id='qUyfD'><dir id='qUyfD'><q id='qUyfD'></q></dir></style></legend>

              <small id='qUyfD'></small><noframes id='qUyfD'>

                <bdo id='qUyfD'></bdo><ul id='qUyfD'></ul>

              • <tfoot id='qUyfD'></tfoot>

                  <tbody id='qUyfD'></tbody>

                1. JS变量中有var定义和无var定义的区别

                  在Javascript中,有使用var定义变量和不使用var直接定义变量两种方式。

                  1. 使用var定义变量

                  使用var定义的变量会存在变量提升,即在变量声明之前,该变量也可以被访问到。这种定义方式的变量作用域是该变量所在的函数作用域(如果在函数内定义)或全局作用域(如果在函数外定义)。

                  示例1:使用var定义变量

                  function foo() {
                     var x = 1;
                     if (true) {
                        var x = 2;
                        console.log(x);  // 输出2
                     }
                     console.log(x);  // 输出2
                  }
                  

                  在示例1中,函数foo中定义了一个变量x并赋值1,紧接着在if语句块中又定义一个变量x并赋值2,打印输出结果是2。在if语句块外部再次打印输出结果也是2。这是由于var定义的变量作用域是函数作用域,if语句块并不会影响变量的作用域范围。

                  2. 不使用var直接定义变量

                  如果直接使用一些变量(不使用var)在代码中引用,那么这些变量的作用域就是全局,而不论这些变量在哪个函数中,也无法避免变量名的冲突。这种直接定义方式被视为一种很不好的代码实践,不应推荐使用。

                  示例2:使用全局变量

                  function foo() {
                     x = 1;
                  }
                  foo();
                  console.log(x);  // 输出1
                  

                  在这个示例中,函数内部直接对x进行赋值,但没有使用var来定义变量,最终结果变量x变成了全局变量,并可以在函数外部进行访问。

                  ES6中let命令和const命令

                  ES6新增了两种变量的声明方式:letconst

                  1. let命令

                  let命令声明的变量只在其所在代码块中生效,不存在变量提升现象。在同一作用域内,不允许重复定义。

                  示例3:使用let声明的变量

                  function foo() {
                     let x = 1;
                     if (true) {
                        let x = 2;
                        console.log(x);  // 输出2
                     }
                     console.log(x);  // 输出1
                  }
                  

                  在示例3中,使用let命令定义的变量x只在当前代码块中有效。if语句块中重新定义了一个x变量,不会影响函数作用域内的x变量。

                  1. const命令

                  const命令用于定义常量,其值在定义后不可被修改,一般用于定义不会被修改的常量或对象。

                  示例4:使用const声明的常量

                  const PI = 3.1415926;
                  PI = 3.14;  // 报错 Assignment to constant variable.
                  console.log(PI);
                  

                  在示例4中,常量PI被赋值为3.1415926,一旦定义后,其值不可被修改。如果修改PI的值会报错:“Assignment to constant variable.”

                  综上所述,使用var定义变量会存在变量提升,作用域是函数作用域或全局作用域;而使用letconst声明的变量在定义位置形成块级作用域,不存在变量提升,不允许重复定义,const声明的变量是常量,其值不可以被修改。

                  上一篇:JavaScript this指向绑定方式及不适用情况详解 下一篇:Vue3之使用js实现动画示例解析

                  相关文章

                  • <bdo id='oLTcE'></bdo><ul id='oLTcE'></ul>

                  <small id='oLTcE'></small><noframes id='oLTcE'>

                    <legend id='oLTcE'><style id='oLTcE'><dir id='oLTcE'><q id='oLTcE'></q></dir></style></legend>
                  1. <i id='oLTcE'><tr id='oLTcE'><dt id='oLTcE'><q id='oLTcE'><span id='oLTcE'><b id='oLTcE'><form id='oLTcE'><ins id='oLTcE'></ins><ul id='oLTcE'></ul><sub id='oLTcE'></sub></form><legend id='oLTcE'></legend><bdo id='oLTcE'><pre id='oLTcE'><center id='oLTcE'></center></pre></bdo></b><th id='oLTcE'></th></span></q></dt></tr></i><div id='oLTcE'><tfoot id='oLTcE'></tfoot><dl id='oLTcE'><fieldset id='oLTcE'></fieldset></dl></div>
                      <tfoot id='oLTcE'></tfoot>