zoukankan      html  css  js  c++  java
  • JavaScript变量作用域

    JavaScript变量作用域

    • 未用var声明的变量是全局变量,是window对象的属性
    • 使用var声明的变量是有作用域的:
    • 在函数体内部声明,则作用域为整个函数体
    • for循环语句块中无法定义属于它的局部作用域的变量,因为作用域是以函数为基本分隔单位。
    • 如果两个独立的函数各自声明了同名变量,则各自独立,互不干扰
    • 嵌套函数中,内部函数可以访问外部函数的变量,反之外部函数不能访问内部函数的变量
    • 嵌套函数中,如果内部函数和外部函数变量重名,则在内部函数中,内部函数的变量将覆盖外部函数的变量;而外部函数访问到的依然是外部函数的变量
    • 上面一条说明了:JavaScript的函数在查找变量时从自身函数定义开始,从“内”向“外”查找。
    • JavaScript会扫描整个函数体,把所有声明的变量“提升”到函数顶部;但是,并不会“提升”变量的初始化赋值

    变量空间的污染

    全局变量会绑定到window对象上,不同的JavaScript文件如果使用了相同的全局变量,或定义了相同的全局函数,则会造成命名冲突。

    • 一个方法是把自己所有的变量和函数全部绑定到一个全局变量中。[推荐]
    • 另外一个方法是增加自己独特的变量命名前缀/后缀
  • 相关阅读:
    BUPT复试专题—最小距离查询(2013)
    BUPT复试专题—中序遍历序列(2013)
    BUPT复试专题—统计节点个数(2013)
    BUPT复试专题—日期(2013)
    BUPT复试专题—内存分配(2014-2)
    BUPT复试专题—图像识别(2014-2)
    Catch That Cow(BFS)
    Pet(hdu 4707 BFS)
    Knight Moves(BFS,走’日‘字)
    Lost Cows(BIT poj2182)
  • 原文地址:https://www.cnblogs.com/weaming/p/5160817.html
Copyright © 2011-2022 走看看