zoukankan      html  css  js  c++  java
  • 作用域与作用域链:作用域 作用域与执行上下文 作用域链 测试题

    作用域

    1.理解

    就是一块"地盘",一个代码段所在的区域
    它是静态的(相对于上下文对象),在编写代码时就确定了

    2.分类

    (1)全局作用域
    (2)函数作用域
    (3)没有块作用域(ES6有了)

    3.作用

    隔离变量,不同作用域下同名变量不会有冲突

    作用域与执行上下文

    1.区别1

    全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定,而不是在函数调用时。
    全局执行上下文环境是在全局作用域确定之后,js代码马上执行之前创建
    函数执行上下文是在调用函数时,函数体代码执行之前创建

    2.区别2

    作用域是静态的,只要函数定义好了就一直存在,且不会再变化
    执行上下文是动态的,调用函数时创建,函数调用结束时就会自动释放

    3.联系

    执行上下文(对象)是从属于所在的作用域
    全局执行上下文 ----> 全局作用域
    函数执行上下文 ----> 对应的函数作用域

    作用域链

    1..理解

    嵌套的作用域由内向外的一个结构
    查找变量时就是沿着作用域链来查找的

    2.查找一个变量的查找规则

    (1)在当前作用域下的执行上下文中查找对应的属性,如果有直接返回,否则进入(2)
    (2)在上一级作用域的执行上下文中查找对应的属性,如果有直接返回,否则进入(3)
    (3)再次执行(2)的相同操作,直到全局作用域,如果还找不到就抛出找不到的异常

    测试题

    测试题1

     

    测试题2

     

    测试题3

    怎样找到a.b,先找作用域链找到a对象,再找原型链找a的属性b,第一个找不到就报错,第二个找不到就返回undefined

    学识浅薄,如有错误,恳请斧正,在下不胜感激。

  • 相关阅读:
    全体自然数的和是负十二分之一?
    隐马尔可夫模型(二)维特比算法
    隐马尔可夫模型
    freemarker实现单元格动态合并-行合并
    工具类_JavaPOI_Office文件内容读取
    SpringBoot-自动装配对象及源码ImportSelector分析
    SpringBoot-文件在线预览解决方案-基于OpenOffice及jacob
    Elasticsearch6.4.0-windows环境部署安装
    单列模式与多线程
    基于SpringMVC的文件(增删改查)上传、下载、更新、删除
  • 原文地址:https://www.cnblogs.com/yin-jie/p/14751162.html
Copyright © 2011-2022 走看看