第一题:函数作用域和闭包

var a = 9
function fn(){a = 0return function (b){return b+a++}
}
var f = fn()
console.log(f(5))
console.log(fn()(5))
console.log(f(5))
console.log(a)

这题要注意函数中的a是隐式全局变量,要注意下这个隐式全局变量在什么时候执行,返回的函数b并不需要执行 a = 0,a++是在执行过之后让a+1

所以但答案是:

5
5
6
2

第二题:关于数据类型传值和传址

var ary = [1,2,3,4]
function fn(ary){ary[0] = 0ary = [0]ary[0] = 100return ary
}
var res = fn(ary)
console.log(ary)
console.log(res)

形参和实参要注意区分一下,他们两人之间没有直接的关系,但是有间接的关系

答案是

[0, 2, 3, 4]
[100]

转载于:https://www.cnblogs.com/xufeng1994/p/10444746.html

函数作用域,闭包,数据类型的题目相关推荐

  1. python中func自定义函数_Python函数之自定义函数作用域闭包

    一 前言 1.1 为什么要用函数 代码的组织结构更清晰,可读性好: 遇到重复的功能不需要重新编写代码,调用函数即可,代码不会冗余: 功能需要扩展时,只需要修改函数内容即可,实现统一管理,降低代码维护难 ...

  2. python函数作用域与闭包_python基础-08-内置函数、作用域、闭包、递归

    python基础-内置函数.作用域.闭包.递归 1.常见的内置函数 常见的内置函数: 查看内置函数: print(dir(__builtins__)) 常见函数 type() 数据类型 print() ...

  3. javascript函数作用域与闭包

    8.8. 函数作用域与闭包        如第四章所述,JavaScript函数的函数体在局部作用域中执行,局部作用域不同于全局作用域.本章将解释这些内容和相关的作用域问题,包括闭包.[*] [*] ...

  4. 一文搞懂:词法作用域、动态作用域、回调函数、闭包

    把以前一直只限于知道,却不清晰理解的这几个概念完完整整地梳理了一番.内容参考自wiki页面,然后加上自己一些理解. 词法作用域和动态作用域 不管什么语言,我们总要学习作用域(或生命周期)的概念,比如常 ...

  5. python函数作用域与闭包_python函数名称空间与作用域、闭包

    一.命名空间概念 1.命名空间(name space) 名称空间是存放名字的地方. 若变量x=1,1存放在内存中,命名空间是存放名字x.x与1绑定关系的地方. 2.名称空间加载顺序 python te ...

  6. 作用域、变量提升、函数提升、数据类型

    一.作用域分类 (作用域范围内定义的变量,整个作用域都可以访问) 1. 全局作用域 使用var声明(或者不严格模式下没有声明)且在函数外定义的变量,其作用域范围是全局的,称其为全局作用域. 2. 函数 ...

  7. python 3.28 第三章 函数嵌套/名称空间//内置名称空间/全局名称空间/局部名称空间/作用域/函数对象/闭包函数。...

    1 函数嵌套: 函数内可以调用了其他的函数. # def max2(x,y):# if x > y:# return x# else:# return y## def max3(x,y,z):# ...

  8. Javascript读书笔记(六)函数作用域,声明提前,作用域链,闭包

    参照内容来自<JavaScript权威指南>,<JavaScript高级程序设计> 函数作用域 类似C语言的编程语言中有块级作用域,JavaScript中没有块级作用域,取而代 ...

  9. 《JavaScript忍者秘籍》(第二版)- 第5章 -精通函数:闭包和作用域

    目录 第5章 精通函数:闭包和作用域 5.1 理解闭包 5.2 使用闭包 5.2.1 封装私有变量 5.2.2 回调函数 5.3 通过执行上下文来跟踪代码 5.4 使用词法环境跟踪变量的作用域 5.4 ...

最新文章

  1. Hashtable,HashMap,ConcurrentHashMap都是Map的实现类,它们在处理null值的存储上有细微的区别,下列哪些说法是正确的
  2. Codeforces Round #649 (Div. 2)C. Ehab and Prefix MEXs[排列的构造]
  3. Linux umount 报 device is busy 的处理方法
  4. 在ASP.NET AJAX中使用应用程序服务和本地化(3):用户个性化组件ProfileService
  5. grunt的学习和使用
  6. Linux的实际操作:时间日期类的实用指令(date cal)
  7. android动画文档,Android 动画系统汇总
  8. “Found interface com.mysql.jdbc.Connection, but class was expected ”
  9. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?
  10. 为了进大厂,我所经历的奇葩面试
  11. 深度强化学习(机器之心)
  12. 2021年高压电工考试技巧及高压电工模拟考试
  13. 康复期需注意什么?一组手账告诉你
  14. python flask自定义404错误页面
  15. uniapp连接蓝牙相关问题
  16. p2p网贷系统的架构设计
  17. 2022暑期杭电第八场
  18. HTML基础的回顾复习(基本标签,简单的一个登陆验证)
  19. 自动问答研究进展、现状及趋势
  20. JdbcTemplate DateTime转java.util.Date时区错误

热门文章

  1. lua如何判断是否支持cookie_我们应该如何判断机油是否变质?
  2. 四边形可以分为几类_四边形有几种类型
  3. linux系统是否支持gpt分区,Linux下进行GPT分区
  4. extmail mysql数据库 重启_centos 5.8 x86_64下安装mysql+postfix+extmail+extman+courier-authlib+courier-imap...
  5. linux安装oem环境,【OEM】 oem12c_install_for_linux
  6. 微星主板超频_微星垄断AMD、Intel平台内存超频记录 ITX小板惊人
  7. 获取授时时间_gps时间同步服务器在通信行业的解决方案
  8. 广数系统980tdb系统说明书_汽车离合操纵系统随车检测工具使用说明书
  9. 《系统集成项目管理工程师》必背100个知识点-49质量管理的流程
  10. 网络安全技术 —— 防火墙技术基础