zoukankan      html  css  js  c++  java
  • 2、变量var关键字

    我们在看js声明变量的时候,经常会发现有的变量前会带var 但又的则没有,那么这究竟有什么区别呢?

    如果这种情况发生在函数里的话, 加var定义的变量是局部变量,不加var定义的就成了全局变量。

    //使用var
     var y="dsh";
     function test(){
          var y="wx";
     }
     test();
     console.log(y);

    [Web浏览器] "dsh"

    //不使用var
     var y="dsh";
     function test(){
         y="wx";
     }
     test();
     console.log(y);

    [Web浏览器] "wx"

    在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.
    这也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。

    var x="dsh";
          y="wx";
    delete x;
    delete y;
    console.log(x);
    console.log(y);

    [Web浏览器] "dsh"
    [Web浏览器] "Uncaught ReferenceError: y is not defined"

    使用var 定义变量还会提升变量声明,但不用var的变量则不会

    console.log(x);//提升变量x为undefined
    console.log(y);//不提升,y没有定义过。y is not defined
    var x="dsh";
        y="wx";

    [Web浏览器] "undefined" 
    [Web浏览器] "Uncaught ReferenceError: y is not defined"

    在ES5的'use strict'模式下,如果变量没有使用var定义,就会报错。

  • 相关阅读:
    二叉树之求叶子结点个数
    求二叉树的深度
    二叉树的基本操作
    二叉树之求结点个数
    数组面试
    数组之求子数组的最大乘积
    字符串之子串
    最近遇到的几个纯C编程的陷阱
    Ubuntu 16.04 64位安装YouCompleteMe
    Linux和Windows的遍历目录下所有文件的方法对比
  • 原文地址:https://www.cnblogs.com/dshvv/p/5453459.html
Copyright © 2011-2022 走看看