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

    JavaScript变量作用域

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

    变量空间的污染

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

    • 一个方法是把自己所有的变量和函数全部绑定到一个全局变量中。[推荐]
    • 另外一个方法是增加自己独特的变量命名前缀/后缀
  • 相关阅读:
    day12——Python高阶函数及匿名函数
    day11——Python函数的一般形式、函数的参数
    day10——Python file操作
    day9——Python复习
    day8——Python if,while,for
    day7——Python的帮助
    day6——Python数据类型
    sqlserver执行sql文件命令(sqlcmd)
    数据库快照、游标、锁
    Linux 下根据进程名kill进程
  • 原文地址:https://www.cnblogs.com/weaming/p/5160817.html
Copyright © 2011-2022 走看看