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

    静态作用域

       -词法作用域 (在编译阶段就能够决定变量的引用)

       -由程序定义的位置决定

    动态作用域

       -程序运行时刻决定  动态栈 找最近的

    js的变量作用域 

       -js使用的是静态作用域

       -js没有块级作用域 (只有函数作用域,if和for不会产生作用域)

       -ES5中使用词法环境管理静态作用域

    词法环境的组成 

       -环境记录(形参、变量、函数等)

       -对外部词法环境的引用(outer指针),形成一种嵌套的结构。最外层的outer是null

    什么时候创建词法环境?

       -一段代码开始执行前, 先初始化词法环境 函数的形参函数定义(函数声明)、变量定义(var)

    所有var 定义的变量初始化到环境变量里面值都是undefined的形式的。函数定义初始化会将形参、函数体放到函数对象里面,保存当前的作用域(当看见函数定义的时候会把当前函数的作用域保存到这个函数对象里面)

    词法环境的一些问题:

    -形参、函数定义、变量 定义名称冲突。(优先级大到小  函数定义>形参>变量)

    -arguments  (实参)

    -函数表达式(执行到函数表达式语句才创建函数对象才设置作用域)

    在函数的执行的过程中,函数的词法环境是可以改变的。

    oracle Form 开发
  • 相关阅读:
    网友心得 说说.NET中的反射(转帖)
    javascript的函数(转)
    asp.net基于窗体的身份验证
    创建ASP.NET WEB自定义控件(转)
    .net调用Oracle存储过程
    写字间里程序员
    世界四大杀毒软件调侃
    技巧/诀窍:在ASP.NET中重写URL(转)
    VS2008中JavaScript编辑调试器的秘密
    如何用C#语言构造蜘蛛程序
  • 原文地址:https://www.cnblogs.com/watson945/p/5073617.html
Copyright © 2011-2022 走看看