当前位置: 首页 > news >正文

js面试题

在这里插入图片描述
在全局作用域下声明了一个变量 arr, 它的初始值是一个空数组

第二段代码,循环计数器变量i的初始值为0,循环条件是i的值小于2, 也就是说当i的值为0或者1时, 循环条件才能成立 才能够进入到循环体
当i的值为2时循环条件不成立,终止循环,开始执行循环体后面的代码

在循环体当中实际是向arr数组中添加值,值就是一个函数,此时这个函数并没有执行
由于循环执行了两次,所以在循环结束后,arr数组中会有两个值,这两个值都是函数
当函数被调用时要输出变量i 的值

分析循环体后面的代码arr0 arr1 这两句代码实际上就是在调用数组中的函数 首先通过数组下标的形式取到数组中的值
由于值就是函数,所以在值的后面可以直接加小括号调用函数,让函数执行

问题 :函数执行完成以后输出的变量i 值是多少?
首先我们看函数内部,在函数内部并没有定义变量i 的代码
所以函数执行时,在自己的作用域下,是找不到变量i值的,根据作用域链查找原则,要向上一则作用域中查找

实际刷新页面两次输出的结果都是二
都是不满足循环条件的那个i值

此题的核心点在于:变量i是全局的,两个函数在执行的时候输出的都是全局变量i的值

全局作用域i 的值是执行循环的时候产生的
循环执行完成后这个变量i的值就是不满足循环条件的i的值,当i的值等于二时,那么循环条件不满足跳出循环,所以最终i的值是二

http://www.lryc.cn/news/61812.html

相关文章:

  • SpringCloud --- Gateway服务网关
  • 【java】CGLIB动态代理原理
  • ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局
  • openstack安装应答文件时报错处理
  • SpringBoot整合MongoDB
  • 线程同步机制与互斥锁
  • Python算法设计 - 编码加密
  • 数据结构和算法学习记录——平衡二叉树(基本介绍、平衡因子、平衡二叉树的定义、平衡二叉树的高度)
  • 【浓缩概率】浓缩概率思想帮我蒙选择题的概率大大提升!
  • 两小时让你全方位的认识文件(一)
  • 基于Java+Springboot+vue网上商品订单转手系统设计和实现
  • 旅游-商场购物
  • 毕业论文用什么流程图软件比较好?
  • 算法刷题|70.爬楼梯(进阶)、322.零钱兑换、279.完全平方数
  • 【MCS-51】51单片机结构原理
  • 软件测试技术之如何编写测试用例(3)
  • 移远通信笔试题
  • python算法中的机器学习算法之监督学习知识点(详解)
  • Flink主要有两种基础类型的状态:keyed state
  • js录音支持h5 pc ios android
  • mybatis04-mybatis缓存、分页插件、注解开发(一对一、多对一、多对多)
  • 软件平台接口常见问题汇总
  • SparkStreaming学习之——无状态与有状态转化、遍历kafka的topic消息、WindowOperations
  • 上市公司碳排放测算数据(1992-2022年)
  • Springboot 整合 JPA 及 Swagger2
  • android aidl
  • MYSQL---主从同步概述与配置
  • WebClient学习
  • 「计算机控制系统」6. 直接设计法
  • 什么是JWT?