zoukankan      html  css  js  c++  java
  • 制作火种之前的简单基础讨论变量作用域

    几乎每一本关于js的书,都要讲讲作用域,而且篇幅都不小,我把我个人总结的两点贡献给大家,希望大家尽量以简洁的方式认识作用域,实际作用域遵从两个法则,我个人管这两个法则一个叫平下法,另一个叫顺序法。先说第一个,一个var他的有效作用域就是平行之间引用和向下引用是正确的,简单的代码实例:

    function a(){

    do something;

    }

    //----------平行引用---------

    function b(){

    a();//这个引用是有效的 因为a和b平行

    }

    //-------向下引用------------

    function b(){

    function c(){

    a();//这也是正确的 因为function c这是向下(闭包)函数(如果不理解闭包的读者会比较难懂)

    }

    }

    第二个是顺序法则

    以上是function 遵循平下法则

    要是var呢 他不仅遵循平下法则,还要遵循顺序法则,反之function 不遵循顺序法则。

    示例代码:

    function b(){

    var a="first var";

    Response.Write(a);//服务器端这是正确的

    alert(a);//客户端这是正确的

    }

    function b(){

    Response.Write(a);//这是不正确的

    var a=“first var”;

    }

    //-------举一反三-------

    function a(){

    b();//这是一定不行的 因为他是var

    var b=function(){

    do something;

    }

    }

    顺便再说一句

    局部变量优先级最高,我估计这不用我说,有经验的读者可以绕过以上内容,不过呢我是曾经被各种书的作用域曾经说的迷迷糊糊,有的资料更是说的很玄!我希望能用最简单的方法把复杂问题说清。

    我的qq:674096197,欢迎一起探讨asp javascript 不在线请弹屏一下!
  • 相关阅读:
    用call/apply实现bind
    FED1 修改 this 指向(中等)
    46. 全排列(中等)
    JavaScript 用七种方式教你判断一个变量是否为数组类型(转)
    179. 最大数(中等)
    125. 验证回文串(简单)
    执行git pull命令时出错
    前端修改滚动条样式
    js实现每日定时任务
    Vue实现验证码控件
  • 原文地址:https://www.cnblogs.com/329521/p/1654655.html
Copyright © 2011-2022 走看看