zoukankan      html  css  js  c++  java
  • 学习javascript系列之变量

    在javascript全局变量中,未加var声明的全局变量和加上var声明的全局变量是不同的,虽然都是window对象的属性。

    var a = 1;
    window.a            //1
    delete a             //false;

      通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。

    b = 2;
    window.b            //2

      无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。

    delete b             // true
    严格模式下声明时不带var发生错误。

    任务链进行部分var声明变量时易产生全局变量

    function foo() {
       var a = b = 0;
       // ...
    }
    
    //此现象发生的原因在于这个从右到左的赋值,首先,是赋值表达式b = 0,此情况下b是未声明的。
    等价于
    var a = (b = 0);

    这里b全局变量了、

    //JavaScript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这种行为称为 hoisting(悬置/置顶解析/预解析)。但并不会有赋值操作。等价于
    var  someVar;   //undefined 
    myname = "yangxunwu"; 
    
    function func() {
        alert(myname); // "undefined"
        var myname = "local";
        alert(myname); // "local"
    }
    
    func();
    //由于变量声明的置顶,这个函数等价于
    function func() {
         var myname;    //myname被当作局部变量了。但未声明
        alert(myname); // "undefined"
        var myname = "local";
        alert(myname); // "local"
    }

      

  • 相关阅读:
    iframe嵌入页面自适应目标页面的高度
    pc端适配
    页面之间传值,接数值
    表单直传文件到七牛
    前端一些小技巧
    css3的一些知识点
    禁止用户长按选中
    修改Html的title值
    判断时间是多久前
    图片裁剪
  • 原文地址:https://www.cnblogs.com/yangxunwu1992/p/4784026.html
Copyright © 2011-2022 走看看