奇怪地使用方括号来调用函数

2023-12-01

使用方括号调用函数是如何工作的?

100['toString']//function toString() { [native code] }
100['toString']['length']//1

这里到底发生了什么?


这是括号表示法。任何属性都可以使用点或方括号表示法来访问。所以自从toString是一个属性,您可以使用括号表示法访问它。

对于数字,您也可以使用点语法,但您必须向解析器明确该点不是小数点。例如与two dots:

100..toString() // equivalent to 100.0.toString

为了避免这种令人困惑的数字语法,最好使用括号版本。但在大多数情况下,点表示法允许更简洁、更清晰的语法,尽管在可以使用点时始终可以使用括号。

括号语法的好处是:

  • 它应该用于访问名称存储在变量中的属性
  • 它允许访问名称不是有效标识符的属性。

以及第二个问题的答案。

为什么 100['toString']['length'] 的计算结果不等于 3?

Because 100['toString']是一个继承自的方法Number.prototype。因此这是一个函数。函数的 length 属性是它接受的显式参数的数量。Number.prototype.toString采用唯一的基数参数。所以结果是1.

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

奇怪地使用方括号来调用函数 的相关文章

  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • 在 Google 表格脚本中设置活动单元格的值

    我想创建一个公式 在某个单元格更改上创建时间戳 下面的代码就可以了 我现在想做的是将公式转换为纯文本 将该时间戳锚定到工作表上 如果您手动执行此操作 您将选择时间戳 复制它们并将它们粘贴为值 我不想手动执行此操作 因此我创建了下面的脚本 它
  • 将 R (ramda) 导入 typescript .ts 文件

    我正在尝试使用Ramda js如下
  • 按键对 JavaScript 对象进行排序

    我需要按键对 JavaScript 对象进行排序 因此 以下内容 b asdsad c masdas a dsfdsfsdf 会成为 a dsfdsfsdf b asdsad c masdas 这个问题的其他答案已经过时 与实施现实不符 并
  • Crypto-Js 库的 hmac-256 脚本返回函数结构而不是 Google Apps 脚本中的值,在外部工作正常吗?

    我正在设置一个谷歌电子表格项目来连接到我的 CryptoExchange API 但是当涉及到这个简单的 CryptoJs Hmac sha256 脚本时 它不起作用 它返回函数结构而不是值 而在外部它工作正常 看我的jsfiddle ht
  • 我可以动态创建/销毁 Vue 组件吗?

    因此 我正在创建一个相当复杂的 Vue 应用程序 它从后端 API 获取数据并将其显示在前端 具体取决于用户选择的过滤器 它的默认设置是立即显示所有内容 然后一旦用户选择过滤器 它就会拉出不具有这些属性的 卡片 组件 直到今天 一切都很顺利
  • 我如何使用 querySelector() 选择具有双类的元素

    当我想使用 querySelector 选择元素时遇到问题 ul class xoxo blogroll ul 我怎样才能选择它ul元素 在我的代码中我像这样使用 var list document body querySelector u
  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 如何使用 JavaScript 选择预节点/块中的文本?

    我了解不允许 JS 将任意文本复制到剪贴板背后的安全原因 但是是否有一种方法可以通过单击按钮来选择预节点中的文本 类似于 select 函数在输入中的工作方式 我不是在寻找复制到剪贴板的 jQuery 插件 我只想突出显示预块中的文本 以便
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • Sequelize - 使用 es6 和模块运行迁移

    我不确定我是否做错了什么或者什么 我觉得我正在运行一个现代的 相当常见的堆栈 但我无法让新的 Sequelize v6 与我的设置完美配合 我在 Node v14 17 Sequelize v6 6 2 上 在我的 package json
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • 如何在 javascript 中基于类型字符串创建新对象?

    如何基于变量类型字符串 包含对象名称 在 javascript 中创建新对象 现在我有 随着更多工具的出现 列表会变得更长 function getTool name switch name case SelectTool return n
  • 如何知道浏览器空闲时间?

    如何跟踪浏览器空闲时间 我用的是IE8 我没有使用任何会话管理 也不想在服务器端处理它 这是纯 JavaScript 方法来跟踪空闲时间 并在达到一定限制时执行一些操作 var IDLE TIMEOUT 60 seconds var idl
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • Rails:找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::运行时不可用)

    自从几周前 Dreamhost 升级了服务器以来 我的网站就被破坏了 我一直在努力解决它并取得了一些进展 但我仍然坚持希望是最后的问题 我在 Ruby 1 8 7 上使用 Rails 3 1 1 并收到来自 PhusionPassenger
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 弹出窗口的动态高度取决于内容,可能吗?

    是否有可能获得一个宽度始终为 400px 的弹出窗口 但根据弹出窗口中的内容动态高度 我已经看到了这个 但不知道如何将其应用到弹出窗口 调整 iframe 的宽度高度以适应其中的内容 https stackoverflow com ques
  • Javascript 中 if 语句中的假值?

    过去两周 我在学校研究 JavaScript 的事情已经有一段时间了 而且我一直在做我的作业 在 Douglas Crockford 所著的 JavaScript The Good Parts 一书中 作者在第 11 页上列出了 if 语句

随机推荐

  • Google Analytics 中的正则表达式 AND 运算符

    我正在尝试使用正则表达式将 Google Analytics 中的 2 条规则合并为 1 条 我有以下广告活动名称 USA Apparel search USA Shoes search USA Accessories search USA
  • 如何在Android单元测试中模拟Bundle方法?

    我有一个处理片段创建的控制器类 让我们像下面这样说 public class FragmentController public static Fragment newInstance String title int total retu
  • 从网页链接打开客户端的桌面应用程序

    是否可以启动客户端桌面应用程序 例如Adobe Reader 任何游戏或任何其他软件来自网络 我有一个链接如何从网页 asp net 启动 EXE 其中之一已经让使用java脚本打开记事本 桌面应用程序 这仅限于IE 以类似的方式 我想在我
  • 更改 Eclipse Getters Setters 语法

    是否可以让 eclipse 生成 GetVar1 而不是 getVar1 大写G 我非常怀疑这一点 因为这违反了正常的 Java 方法命名约定和 JavaBeans 属性规则 I would 强烈地 强烈地建议您遵守 Java 命名约定 为
  • R正则表达式获得部分匹配

    我想使用 stri replace all regex 替换字符串但失败 我想知道是否还有其他方法可以克服它 感谢任何给我帮助的人 尝试 首先 gt library string gt a lt c abc2 xycd2 mnb345 tu
  • 用于要求所有元素的 Typescript 类型保护

    有没有办法要求带有打字稿的数组元素 这样我就可以拥有 type E keyof T Number of properties in T is unknown 令 T 的定义如下例所示 interface T el1 number el2 n
  • 为给定嵌套变量的出现创建编号序列

    我希望向数据集中添加一个变量 该变量对某个分组变量出现的实例进行排序 例如 ids lt c rep 1 4 rep 2 6 rep 3 2 我想要另一个变量来计算每个 id 出现的实例数 创建一个像这样的向量 1 2 3 4 1 2 3
  • 从命令行将参数传递给可执行文件[重复]

    这个问题在这里已经有答案了 我正在尝试从命令行将参数传递给 Fortran 可执行文件 用 C 语言实现此目的的示例程序是 取自here include
  • 由于下列问题,存档提交失败。错误 ITMS-90039

    我从 xcode 将应用程序上传到应用程序商店时遇到错误 类型不匹配 info plist 键 UILaunchImageName 的值不是该键所需的类型 更新 xcode 7 后出现此错误 只需从 info plist 文件中删除 UIL
  • 如何解决点击事件被触发两次的问题?

    我有一个一页应用程序 它使用backbone js 通过鼠标触发一次单击事件 通过触摸设备触发点击事件两次 取消绑定一键事件会在触摸设备上停止 我不知道从哪里开始寻找 这是JS classy on click button function
  • Python基于多种条件的随机样本选择

    我想在 python 中从以下 df 中进行随机样本选择 使得结果样本中至少 65 的颜色应为黄色 并且所选数量的累积总和应小于或等于 18 原始数据集 Date Id color qty 02 03 2018 A red 5 03 03
  • EF 4.1:为什么将常量转换为变量会导致额外的子查询?

    今天我发现实体框架向它生成的 SQL 添加了不必要的子查询 我开始挖掘我的代码 试图缩小它可能来自的范围 过了 很长 一段时间后 我查明了造成这种情况的原因 但现在我比开始时更困惑 因为我不知道为什么会导致这种情况 基本上我发现 在某些情况
  • 在 PySimpleGUI 中渲染 HTML?

    有谁知道是否可以让 PySimpleGUI 渲染 HTML 我并不想要一个成熟的浏览器 只是一个位于 PySimpleGUI 窗口中的 HTML 查看器 我知道 tkinter 有一个名为tk html widgets 我也在调查什么web
  • 就地编辑 CMS 建议 [关闭]

    Closed 这个问题是无关 目前不接受答案 我需要找到一个 非常 易于使用 对于编辑 作者 的 CMS 最好使用类似的就地编辑SiteCore 不过 我们不需要像 SiteCore 这样庞大而强大的东西 用户需要能够添加页面 使用我们在开
  • SignalR 应用程序无法在 IIS 下运行

    我正在尝试在 Visual Studio 2012 中构建 SignalR 应用程序 我的问题是它在 Visual Studio 调试下运行良好 在 Windows 7 上使用 Visual Studio 2012 但是当我尝试在 Wind
  • 在QML插件的QGLWidget上渲染QImage

    我正在尝试写一个QML插件从视频中读取帧 使用自定义小部件来执行该任务 而不是 QtMultimedia Phonon 并且每个帧都转换为QImageRGB888 然后显示在QGLWidget 出于性能原因 现在屏幕上没有任何内容 并且屏幕
  • 比较盒装长整型值 127 和 128

    我想比较两个Long对象值使用if状况 当这些值是小于 128 the if条件工作正常 但当他们大于或等于128 比较失败 Example Long num1 127 Long num2 127 if num1 num2 Works ok
  • 运行时错误:populate() 在 Django 中不可重入

    我正在尝试部署django网站 项目名称是pom 我尝试使用 apache2 在 ec2 服务器中运行 django 网站并收到以下错误 阿帕奇错误文件 Fri Jul 24 12 37 33 621285 2015 info pid 20
  • 为什么多维数组中需要更高维度的维度范围?

    根据该帖子 将 2D 数组传递给 C 函数 int array 10 10 void passFunc int a 10 lt Notice 10 here passFunc array 从编译器内部的角度来看 为什么需要这个更高的维度 另
  • 奇怪地使用方括号来调用函数

    使用方括号调用函数是如何工作的 100 toString function toString native code 100 toString length 1 这里到底发生了什么 这是括号表示法 任何属性都可以使用点或方括号表示法来访问