JavaScript 评估问题

2024-02-06

var  x  =  5;
function f(y){ return (x+y)-2 }; 
function g(h){ var x = 7; return h(x) }; 
{ var x=10; z=g(f) };

我正在解决课堂上教科书上的一些问题,为下一次考试做准备,但无法弄清楚上述内容如何评估。

大多数情况下,我不理解调用 z=g(f),因为当计算 f 时,没有提供参数,那么它是如何计算的呢?它怎么知道 y 是什么?

另外,就作用域而言,我相信 javascript 将大多数内容视为全局变量,因此设置的最后一个 x 将是函数 f 中使用的 x 值,对吗?

谢谢你的帮助!

请注意,这些是我为准备考试而练习的书后面的额外问题,这些不是直接的家庭作业问题。


大多数情况下,我不理解调用 z=g(f),因为当计算 f 时,没有提供参数,那么它是如何计算的呢?它怎么知道 y 是什么?

一步一步来吧。

Q:有什么作用g do?
A:它接受另一个函数作为参数并使用该参数调用该函数7.

Q:那么什么是g(f) do?
A:它调用f与论证7,所以它相当于f(7).

注意写f不带括号实际上并不call f。在 JavaScript 中,函数可以像任何其他变量一样作为参数进行引用和传递。函数是一流的对象,您可以用它们做更多的事情而不仅仅是调用它们!

Q:结果是什么f(7)?
A:返回语句是return (x+7)-2。我们需要知道的价值x.

Q:有什么价值x inside f?
A: x这里指的是全局变量x,其值为10。重要的是,var x = 7代替g是局部变量,与全局变量不同。这var x = 7来自函数的声明g当我们考虑功能时是无关紧要的f.

同样重要的是,声明var x = 5 and var x = 10两者都指的是same全局变量。局部变量仅在函数内部引入。只需使用裸花括号并重复var关键字确实not在 JavaScript 中引入一个新变量。这是一个棘手的问题,因为在其他语言(如 C++)中,这would引入一个新的范围和一个新的变量。在 JavaScript 中则不然。这var x = 10可以(并且应该!)简单地写成x = 10.

老实说,这是一个非常微妙和令人困惑的点。这让我想知道你的教科书是否真的打算测试你对这个想法的了解。这是相当神秘的。

Q:好吧...所以结果是f(7)是什么?
A: It is (10+7)-2, or 15.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 评估问题 的相关文章

随机推荐

  • 检查 C 编译器是否工作...不

    我最近卸载了 Xcode 4 2 并重新安装了 Xcode 4 3 1 已安装Command Line Tools还 错误提示 C 编译器不起作用 搜了一下这个错误 说是未安装Xcode时发生的 我缺少什么 rvm install 1 9
  • 如何将 ZonedDateTime 转换为日期?

    我正在尝试在我的数据库中设置一个与服务器无关的日期时间 我相信这样做的最佳实践是设置 UTC 日期时间 我的数据库服务器是 Cassandra Java 的数据库驱动程序仅理解日期类型 因此 假设在我的代码中我现在使用新的 Java 8 Z
  • iwlist() 命令如何扫描无线网络?

    我想知道 iwlist 命令如何在 Linux 中扫描可用的无线网络 我阅读了它的源代码 发现有一个 ioctl 调用 使用 SIOCSIWSCAN 来触发扫描 并使用 SIOCGIWSCAN 来获取扫描结果 但是这些系统调用如何捕获和分析
  • 在 JBoss 中使用多重登录模块

    我是身份验证和安全领域的新手 我正在尝试扩展我的应用程序的身份验证机制 该机制当前提供传统的用户名 密码身份验证 以提供用户通过 LDAP 服务器进行身份验证 在当前的实现中 应用程序使用j 安全检查来自服务器 API 的线程对用户进行身份
  • _CDSnapshot_[entityName]_ 的多个实例

    我看到数以千计的实例CD快照 entityName 使用 instruments 来跟踪未引用的分配时 这是什么 我认为它与 CoreData 相关 是的 这与核心数据有关 我相信这是可以预料的 请参阅我的回复 NSManagedObjec
  • 一个用户的 Python 模块导入错误,但另一个用户没有错误

    这有效 root host usr bin python26 script py Success 这会导致错误 user host usr bin python26 script py ImportError No module named
  • 从 pypi 进行 pip install 可以,但从 testpypi 失败(找不到需求)

    我正在尝试创建我的第一个 python 包 为了不搞砸整个交易 我一直在尝试将其上传到 testpypi 服务器 这似乎很顺利 sdist 创建并上传没有显示任何错误 但是 当我尝试将其安装到新的 virtualenv 时https tes
  • wxPython 最好的实时绘图小部件是什么?

    我想使用 Python 和 wxPython 显示一个包含一条或两条曲线 每秒最多 50 个样本的实时图表 该小部件应支持 Win32 和 Linux 平台 欢迎任何提示 编辑添加 我不需要以 50 fps 更新显示 但需要在两条曲线上显示
  • 文件夹未显示在存储桶存储中

    所以我的问题是安装时有一些文件没有显示在 gcsfuse 中 如果我使用 gsutils ls 我会在在线控制台中看到它们 另外 如果我在存储桶中手动创建文件夹 我就可以看到其中的文件 但我需要先创建它 有什么建议么 gs mybucket
  • 如何在 Spring Boot 中将 Cookie 设置为安全标志

    我正在研究 Spring Boot 完全不知道它是如何工作的 在验证登录时 JSESSIONID 被创建为 cookie 登录代码如下 protected void configure HttpSecurity http throws Ex
  • Linq to SQL Int16 在 SQL 命令中转换为 Int32

    通过方法参数 Int16 id 以及 Linq to SQL where 子句 where id HasValue m Id id 数据上下文中条件的结果命令文本是 从可视化工具 SELECT t0 Id t0 Name t0 IsActi
  • System.UnauthorizedAccessException:创建 COM 组件的实例失败,并出现错误 80070005 (C#)

    我在使用 C NET 命令行应用程序时遇到问题 其主要思想是使用 COM 对象从其他程序获取数据 当手动执行或作为 Node js 服务器内的子进程运行时 它工作正常 但是当整个项目作为 Windows 服务安装时 C 应用程序会响应以下错
  • 如何在单独的文件中创建命名查询

    我需要将所有命名查询保存在一个单独的文件中 例如 javax persistence NamedQueries NamedQuery name Employee findAll query SELECT e FROM Employee e
  • web.config 中与 targetFramework 相关的配置错误

    我在 Visual Studio 2015 中制作了一个 MVC 网站 它可以在我的本地主机上运行 但是当我发布我的网站并放入我的主机时 它不起作用 它给了我这个错误通知 应用程序中的服务器错误 配置错误 解析器错误消息 targetFra
  • FFmpeg 使用 URL 进行文件转换

    我需要将 MP4 转换为 AVI MP4 视频上传到 Windows Azure Blob 存储中 并且存储可公开访问 当我们编写 ffmpeg 命令行时我的问题 我可以提供 Blob 存储中视频的 URL吗 ffmpeg ihttps a
  • 用于重试同一请求的 HTTP 状态码

    是否有 HTTP 状态代码来指示客户端再次执行相同的请求 我面临着服务器在处理请求时必须 等待 锁消失的情况 但当锁消失时 请求可能会接近其超时限制 因此 一旦锁定清除 我想指示客户端再次执行相同的请求 我想出的最好的办法是使用 HTTP
  • Angular 将特定数据检索到 $scope 变量中不起作用

    我这里初始化 scope statuses 然后 如果我只是将 http get 中的数据设置为 scope 变量 那么 有效 但我需要对其进行更多过滤 scope statuses result data Devices console
  • 如何在c99中使用ftruncate而不发出警告

    我想在我的代码中使用 ftruncate 函数 我必须使用选项 std c99 进行编译 我收到警告 In function test warning implicit declaration of function ftruncate W
  • 将 gtfs 实时数据流式传输为人类可读的格式

    我正在尝试使用 Java 下载可读的 gtfs 实时数据 协议缓冲区格式 以便我可以在文本文件中查看它 我尝试了几种方法 方法 1 URL url new URL uri byte buffer new byte 4096 InputStr
  • JavaScript 评估问题

    var x 5 function f y return x y 2 function g h var x 7 return h x var x 10 z g f 我正在解决课堂上教科书上的一些问题 为下一次考试做准备 但无法弄清楚上述内容如