为什么 {key:value}["key"] 不起作用?

2023-11-30

1:{key:value}["key"]
2:({key:value})["key"]
我想知道 JS 解释器如何处理上面的代码,以及为什么1不起作用,为什么2 works?


我假设您问这个问题是因为您在 JavaScript REPL(shell)中看到了这种效果。您使用的 JavaScript shell 假定前导“{”开始块语句而不是对象文字。

例如,如果您使用 Chrome 浏览器附带的 JavaScript 解释器,您会看到以下内容:

> {key:"value"}["key"]
["key"]

在这里,Chrome 将您输入的内容视为块语句,后跟表达式,该表达式是一个元素的数组,即字符串"key"。所以它响应该表达式的结果,即数组["key"]

但并非所有 shell 都这样工作。如果您将解释器与 node.js 一起使用,则 #1will为你工作!

$ node
> {key:"value"}["key"]
'value'
> 

在像 Chrome 这样的解释器中,您必须使用括号来告诉它您希望第一部分是对象文字。 (顺便说一句,这项技术保证在allshell,包括节点)。

EDIT

正如评论之一所指出的,如果您在实际脚本中的任何位置的表达式上下文中使用该构造,它将产生"value"。它在 shell 中的使用看起来很混乱。

这一事实实际上在著名的瓦特视频作者:加里·伯恩哈特。

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

为什么 {key:value}["key"] 不起作用? 的相关文章

  • 上传到google脚本中的特定文件夹

    所以我想制作一个表单 将文件 照片 视频上传到 Google Drive 中的特定文件夹 文件 照片 视频 但我不知道如何在 Google Apps 脚本中制作 我尝试了这样的操作 并在控制台中出现错误 无效的参数侦听器 所以这里有一个索引
  • 如何使用 jasmine.js 测试控制台输出?

    我正在研究文本 面向 Web 开发人员的专业 JavaScript 作者 Nicholas Zakas我正在使用 Jasmine js 测试这些示例 目前 我可以通过指定返回值来测试函数的输出 但是当我想要返回多条数据时 我会遇到麻烦 教科
  • $(window).resize() 和打印预览模式

    我有一段非常简单的代码 可以在调整大小后刷新窗口 window resize function location reload 当我尝试在 Chrome 中打开打印预览模式 Ctrl P 时 它也会刷新它 有什么想法如何避免这种行为吗 要确
  • Canvas drawImage 内联 svg 在 Firefox 上不起作用

    这是一个例子 它采用 svg 并将其转换为画布 http jsfiddle net Na6X5 944 http jsfiddle net Na6X5 944 var can document getElementById canvas1
  • Firefox 中的 jQuery 表单提交

    请帮我解决一个问题 我有这个代码 用于通过锚点提交表单
  • 如何从客户端设置 HTMLEditorExtender HTML

    我无法让它工作 这是我在另一个线程中找到的代码 但它对我不起作用 我得到 set content 不是函数 find set content whatever 这仍然有效吗 我还尝试设置它扩展的文本框的值 尝试设置两者的 InnerHtml
  • Javascript - window.getCompulatedStyle 返回“auto”作为元素顶部和左侧属性

    在我的网页上 我有一些元素 div 子 div 按钮等 其位置是相对于它们所在的 div 以及彼此之间生成的 这会导致使用时的结果window getCompatedStyle the top and left属性不是数字值 而是简单的 a
  • 过滤文件上传仅用于文本文件

    我使用的是 Firefox 版本 14 0 1 我需要过滤上传文件窗口以仅显示 txt files 我的浏览器不仅仅支持文本文件 text plain 我可以通过指定此格式来限制图像文件 image 但我只需要过滤文本文件在文件选择器窗口中
  • 指令可以从父作用域中删除自身吗

    假设我有以下代码 div div div div 我的自定义指令有一个独立的范围 定义为 app directive customDirective function log return restrict E templateUrl te
  • 在 Graal.js 中使用 java 类

    使用 Graal js 如何将 java 类导入到 JS 脚本中 以下代码适用于 Nashorn JJS 但不适用于 Graal js 因为没有Java type 在graal中 我需要在某个时候调用truffle吗 var ArrayLi
  • 根据每个选项的值或 ID 过滤选择框

    我想使用jquery来过滤表单中的所有选择框 例如 在第一个选择框中 如果我选择 仅显示1 我想过滤所有选择元素中的所有选择选项 以隐藏值不包含 1 的任何选项 仅应显示带有 1 的产品值 如果选择 Filter 选项 则所有选择框的默认值
  • 如何在不知道id的情况下从内页获取父iframe元素?

    让我们想象一下我有这样的东西 div div test html 是空页面 自定义hash属性始终具有不同的值 出于安全原因两个页面位于同一域 iframe 元素的数量和顺序是随机的 我的问
  • 如何对基于 HTML5-JavaScript 的视频播放器进行快照?

    实际上 我有一个带有 JavaScript 函数的 HTML5 页面 可以让我播放 wmv 视频文件 我需要在视频播放时 有暂停或没有暂停 拍摄快照并以任何图像格式 JPG 或 BMP 保存 任何帮助将不胜感激 谢谢
  • 为什么我会失去对元素的引用?

    我偶然发现了一些奇怪的东西 至少对我来说 案例如下 我选择一个元素 child1 从 DOM 并将其保存到变量中 我继续添加一个新元素child1的家长 parent1 现在 如果我尝试修改某些值child1它不记录更改 似乎引用已经消失
  • 如何使用 HTML5 在画布上绘制心电图监视器?

    我尝试使用canvas html5绘制心电图系统 几乎我即将完成我的波浪正在移动 但不是连续地重复 但我想绘制波浪是从左到右连续移动的 下面的链接是示例 Ex https www youtube com watch v wuwBfSpVEg
  • 返回不在函数中

    Firebug 报告 返回不在函数中 错误 没有位置 好吧 第 1 行什么都没有 我怎样才能找到这个错误的根源 return not in function Break on this error return 0 javascript r
  • 在 jQuery 中获取最接近元素的形式

    我编写了这个 js jquery 脚本来检查表单中的所有复选框 它工作得很好 但是这会检查页面上的所有复选框 无论它们是什么表单包装器 这是函数 function toggleCheck state var checkboxes jQuer
  • HighCharts - 两个 Y 轴,一个具有最大值

    我在使用 Highcharts 时遇到问题 我已将右 Y 轴设置为 min 0 和 max 100 它是 但它不起作用并生成 125 百分比 怎么了 http jsfiddle net SdTcU http jsfiddle net SdT
  • 从选择控件 html 复制所选项目的文本

    我有一个带有预定义值的选择控件 我希望我的用户能够使用 CTRL C 复制所选项目的文本 我不希望他们能够更改项目的文本 只需用鼠标 键盘选择它 这是一个显示问题的小提琴 我无法选择所选项目的文本 http jsfiddle net 5C3
  • 网站可以检测您何时将 Selenium 与 chromedriver 结合使用吗?

    我一直在使用 Chromedriver 测试 Selenium 我注意到有些页面可以检测到您正在使用 Selenium 即使根本没有自动化 即使我只是通过 Selenium 使用 Chrome 手动浏览 Xephyr https en wi

随机推荐

  • 删除 ggplot 周围的彩色边框

    我正在添加ggplots to viewports Both ggplot and viewport有相同的背景颜色 我的问题是我的周围有一个白色矩形ggplots我似乎无法找到使用删除它的选项theme 有任何想法吗 library gr
  • 在 OpenCV C++ 中将 RGB 彩色图像转换为索引彩色图像类型

    我想将 RGB 图像转换为索引颜色类型 这是我的 C 代码 这将转换为灰度 我应该怎么办 Mat black background imread image path IMREAD COLOR Mat output cvtColor bla
  • 使用 GD API 将大文件上传到 Google Drive

    我想使用适用于 Android 的新 Drive API 以编程方式将大文件上传到 Google Drive 您能给我推荐一个包含最佳实践的教程吗 我正在读这个堆栈溢出的帖子但他们使用缓冲区将整个内容加载到内存中 我一直在用这个从 Goog
  • CPU 使用率报告的函数名称列中的 [Broken] 表示什么?

    我在一个小程序上运行了 Visual Studio 的 CPU 使用率分析器 部分输出列在 Broken 条目下 我通过调试版本和发布版本得到了这个结果 这个条目表明什么 我不使用这个工具 但有一个类似的工具 叫做Perfview它的帮助中
  • JavaScript:如何找出浏览器中的图像何时关闭?

    想要跨浏览器的解决方案 你可以看看这个post 第一次击中google
  • Matplotlib:在一张图中创建多个子图

    我有一个数据框有列x1 x2 x3 x4 x5 x6 my y 我正在为每个 xi y 绘制散点图 例如 matplotlib notebook import matplotlib pyplot as plt import matplotl
  • NSFetchedResultsController 中的 NSPredicate 不使用 Category 的 getter

    我有一个带有 int 32 属性的属性 称为秒 在类别中 我将属性重新声明为只读 并重写 getter 以从其他属性创建它 问题是当我使用 NSPredicate predicateWithFormat SELF seconds gt i
  • 不使用 Object.create 创建具有 null 原型的 javascript 对象

    我需要找到一种方法来创建 JavaScript 对象null原型 我不被允许使用Object create功能 我尝试实例化一个构造函数 例如new Constructor 但返回的对象总是有一个非null原型 即使Constructor
  • Java 8 Stream 将元素添加到列表并求和

    我相信我可以在 listOfPricedObjects 上使用一个流操作来完成下一步 List
  • 使用延长路径安全吗?

    我只是偶然发现本文MSDN 上说路径可以是 259 个字符 NUL 终止符 但是如果您使用 作为前缀 WinAPI 允许您使用 最大总路径长度为 32 767 个字符 渴望看到它工作 我尝试使用资源管理器中的前缀 在 XP SP3 上 但它
  • 稀疏多维数据表示

    我正在开发一种使用 4 维数据的心脏模拟工具 即 3D 空间中位置的多个 3 30 变量 我现在添加一些组织几何体 这将在要模拟的组织之外的包含 3D 框中留下超过 2 3 的点 因此我需要一种有效存储活动点而不是其他点的方法 至关重要的是
  • 在浏览器中打开 Word 文档并进行内联编辑

    可能的重复 您可以在浏览器中对Word文档进行复杂的编辑吗 Hi All 是否有任何免费工具可以允许在浏览器中打开和编辑Word文档 我正在使用 ASP Net 2008 Express IDE Thanks 这个问题的解决方案已经存在 谷
  • 使用 Fabricjs 旋转图像时未更新左上角坐标

    当我在fabricjs中旋转图像时 左上角的坐标在旋转后不会更新 相反 图像的左上角仍然指的是旧点 我认为它应该根据图像的新位置重新计算左上角 有办法实现这一点吗 任何帮助表示赞赏 下面是图像旋转的代码 function rotate ac
  • 如何在system、exec或shell_exec中运行多个命令?

    我正在尝试从 php 运行这样的 shell 命令 ls a grep mydir 但php只使用第一个命令 有没有办法强制 php 将整个字符串传递给 shell 我不关心输出 http www php net manual en fun
  • SQL如何比较两个表中的数据并得到两个表之间不同的结果

    有2张桌子 表a和b A 包含 msisdn 名字 名字 姓氏 regdate 注册数据 表b也有相同的字段 我想比较这两个表 msisdn 名字和姓氏字段 如果表 A 中的 msisdn X 的名字为 jim 姓氏为 halpert 并且
  • Spring过滤器没有被调用

    我在我的应用程序中添加了 CORS 过滤器 但它似乎没有被执行 没有打印 过滤器是这样的 Component public class SimpleCORSFilter extends OncePerRequestFilter Overri
  • Doctrine DQL 动态 ORDER BY 参数

    我尝试将 ORDER BY 列作为 DQL 中的参数传递 如下所示 this gt em gt createQuery SELECT t FROM Entities Topic t ORDER BY order gt setParamete
  • 将选项框的值和键作为参数发送?

    我想在提交表单时发送选项框的值和键 我觉得这应该很简单 但我不确定如何去做 下面是我的表单中的一个片段 用于演示我所引用的内容
  • 我可以获得已安装我的 Tab 应用程序的主页列表吗?

    我曾多次看到类似的问题 但通常是人们试图找出哪个页面当前正在访问他们的选项卡应用程序 您可以通过检查signed request来做到这一点 我正在尝试构建一个 UI 向用户显示他 她是管理员的所有页面 然后显示其中哪些页面已经安装了我的选
  • 为什么 {key:value}["key"] 不起作用?

    1 key value key 2 key value key 我想知道 JS 解释器如何处理上面的代码 以及为什么1不起作用 为什么2 works 我假设您问这个问题是因为您在 JavaScript REPL shell 中看到了这种效果