基于自动分号插入 JS 规则的有趣错误。需要解释

2024-04-06

今天我为一些编程竞赛编写了代码。当我运行它时,我因为错误而感到惊讶。无法读取未定义的属性“forEach”在一个看起来像“无错误空间”的地方。

sum = 0
            [-1,0,1].forEach(deltar =>{...});

当我在后面添加分号时sum变量赋值代码开始工作。

sum = 0;
            [-1,0,1].forEach(deltar =>{...});

让人非常好奇的是JS解释器在这里不匹配的行为是什么?怎么办JS搞乱integer and array之后?

这是函数的完整代码,用于完整描述变量声明。

function boxBlur(img) {
    let [h,w] = [img.length-1,img[0].length-1];
    let [answer,sum,tmp] = [[],0,[]]
    for(let row = 1; row < h; row += 1){
        tmp = []
        for(let clmn = 1; clmn < w; clmn += 1){
            sum = 0;
            [-1,0,1].forEach(deltar =>{
                [-1,0,1].forEach(deltac =>{
                    sum += img[row+deltar][clmn+deltac]
                });
            });
            tmp.push(parseInt(sum/9));
        }
        answer.push(tmp);
    }
    return answer;
}

1,2,3 === 3 

逗号运算符 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator

so

[1,2,3] -> [3] i.e. is property named 3 

括号表示法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#Bracket_notation

所以

sum = 0[3] is undefined - 

因为 Number(0) 没有名为 3 的属性

进一步说明

var sum = 0
[1,2,3,'constructor']

console.log(sum);

现在代码相当于

var sum = 0['constructor']

or

var sum = 0..constructor

正如您在控制台中看到的那样Number对象构造函数

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

基于自动分号插入 JS 规则的有趣错误。需要解释 的相关文章

  • getScript 本地加载而不是全局加载?

    根据我的阅读 JQuery 的 getScript 函数使用名为 global eval 的函数在全局上下文中加载脚本文件 是否有特定的设置或方法可以更改此设置 以便它将改为在我调用它的函数中加载 如果我执行以下代码名称 则返回未定义 因为
  • 当来源为 http 且目标 url 为 https 时,如何在本地网络中发出 POST 请求?

    我需要从 POS 销售点 http 向支付终端 https 发出 POST 请求 它们连接在我的本地网络中 当我向邮递员发出请求时 一切正常 但每当我从 POS 发出请求时 我都会收到错误 POSThttps 我的IP地址 8443 nex
  • 使用 vanilla JavaScript 将事件绑定到动态创建的 HTML 元素 [无 jquery] [重复]

    这个问题在这里已经有答案了 我需要将事件附加到动态创建的元素 借助 jQuery 我可以使用以下代码对此进行归档 body on click my element function 如果我添加一个新的 my element 它会自动附加事件
  • 为什么这个对象的“forEach 不是函数”?

    这可能真的很愚蠢 但我不明白为什么这不起作用 var a cat large a forEach function value key map console log value 未捕获的类型错误 a forEach 不是函数 http j
  • 如何将变量传递给函数引用?

    在 React Native 中 当你有需要在渲染时运行并且必须传递变量的函数时 大多数人建议应该使用 onPress gt this functionName variable 然而 当处理大型列表和复杂组件时 您必须优化代码 为每个 r
  • 通过 HTML 将复杂变量传递给 javascript 的正确方法

    我试图摆脱使用 PHP 的 htmlentities 但我在这里停止了 但后来我想 我不做替换和检查特殊字符 而是只 JSON 整个对象 这提供了一个非常不受欢迎的结果 其中包含大量双引号 那么我应该怎么做呢 我应该为每个图像分配一个数字唯
  • jquery .load() 不起作用

    我似乎无法让 jquery 的 load 函数工作 一定是我缺少的一些简单的东西 基本上只是试图将 more html 的片段加载到 index html 中 索引 html
  • 带标签的 Material-ui 文本字段[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我如何在material ui lib中制作带有标签的文本字段 寻找这样的东西 https github com callem
  • 提交后如何重置表单?

    我有一个简单的表格 假设它需要一个电子邮件地址 提交表单后 消息堆栈会通知用户其地址已成功提交 问题是 提交地址后 带有电子邮件的表单字段仍然包含用户输入的电子邮件地址 我该如何重置该字段 我必须为此使用 JavaScript 吗 谢谢 w
  • 将模板添加为innerHTML 时,Angular 2 绑定/事件不起作用

    我正在尝试创建一个可配置的可重用表 单元格可以配置为具有 html 模板 我正在配置列 Review 拥有带有带有点击事件的锚标记的 html 模板 审核 行 到目前为止 我尝试将此模板作为innerHTML 插入 但所有角度绑定都不起作用
  • NodeJS Express 中每个请求的全局范围

    我有一个基本的快速服务器 需要在每个请求处理期间存储一些全局变量 更深入地说 请求处理涉及许多需要存储在变量中的操作 例如global transaction 当然 如果我使用global范围 每个连接都将共享其事务的信息 并且我需要一个全
  • Puppeteer 错误 错误:等待选择器超时

    目前我有一个网站 其 HTML 中有此内容 我通过检查chrome开发者工具中的元素确认了这一点 div class hdp photo carousel div class photo tile photo tile large 我直观地
  • 降低 Nodejs 服务器上的 CPU 利用率

    我正在研究降低 CPU 利用率的有趣方法 在 NodeJS 服务器上 在我的研究过程中 我发现了以下文章 http engineering linkedin com nodejs blazing fast nodejs 10 perform
  • 无需源代码即可部署网站

    我用php开发了网站 我想在没有源代码的情况下部署它 用php可以吗 我可以将网站代码转换为某种中间形式然后进行部署吗 您可以使用 Zend Guard 来编码您的代码 这样它就无法被逆向工程 http www zend com en pr
  • RegEx 使用 match() 在 JavaScript 中提取字符串数组

    我正在尝试使用string match 在 javascript 中使用正则表达式来提取字符串数组 这是一个示例字符串 CREATE TABLE listings listing id INTEGER UNIQUE state TEXT t
  • HttpRequest 和 XMLHttpRequest 之间的真正区别

    阅读前注意事项 这不是重复的xmlhttprequest 和 httprequest 之间的区别是什么 https stackoverflow com questions 8499062 what are differences betwe
  • JavaScript IDE/编译器

    现在 我希望你们中的一些人能够理解我的要求 我是编程新手 我在 Codecademy com 上了解了 JavaScript 我使用 labs codecademy com 来编写 JavaScript 但它有限制 对于编程新手来说 我可以
  • Dojo require,模块加载失败时连接错误

    当我尝试加载不存在的模块时 它失败并出现 404 错误 当然 我想处理此错误 但不知道如何连接到 错误 事件 根据 Dojo 文档 我应该能够使用它的微事件 API http livedocs dojotoolkit org loader
  • 尝试将 jquery 加载到 tampermonkey 脚本中

    我正在编写一个脚本 在加载登录页面时登录到我的大学网络 代码如下 UserScript name My Fancy New Userscript namespace http use i E your homepage version 0
  • Angular 计算 HTML 中的百分比

    我试图在 HTML 中显示百分比值 如下所示 td myvalue totalvalue 100 td 它可以工作 但有时它会给出一个很长的小数 这看起来很奇怪 如何四舍五入到小数点后两位 有更好的方法吗 您可以使用过滤器 如下所示杰夫约翰

随机推荐

  • Pandas 替换非零值

    我知道我可以用以下内容替换所有 nan 值df fillna 0 并将单个值替换为df replace 1 但是如何用单个值替换所有非零值 使用布尔索引 df df 0 value
  • 在 R 中使用 readHTMLTable 删除行

    我正在尝试使用 readHTMLTable 从 NOAA 提取模型数据 据我从 HTML 中可以看出 我试图获取的表格有多个字幕 其中每个字幕都由跨越所有列的单个单元格组成 由于某种原因 这导致 readHTMLTable 忽略紧随副标题的
  • 如何安装Android SDK Platform-Tools 24.0.0?

    我正在按照设置 Android N 预览版的指南进行操作https developer android com preview setup sdk html https developer android com preview setup
  • MVC Get 与 Post

    在研究 MVC 概念时 我了解到在 GET 操作中包含代码来更改服务器对象的状态 数据库更新等 并不是一个好习惯 缓存返回数据 已被给出作为其原因 有人可以解释一下吗 提前致谢 这是 HTTP 标准规定的 GET 动词应该是幂等且安全的 9
  • Python ConfigParser 问题

    ConfigParser 的配置文件是否必须命名为 Config ini 才能工作 我希望名称为 1Config ini 以便它显示在文件夹目录的顶部 这就是我目前拥有的 config ConfigParser ConfigParser c
  • 如何在 3.4+ 中禁用 JooQ 的自我广告消息?

    我是 JooQ 的忠实粉丝 但不幸的是 自从从 3 3 升级以来 每次在我的代码退出之前 它都会向控制台打印一条非常烦人的消息 Feb 02 2015 7 28 06 AM org jooq tools JooqLogger info IN
  • 如何将对象传递到 Xamarin Forms 自定义渲染器?

    如何将某个对象的实例传递给 Xamarin Formscustom render 这是自定义渲染器 public class LoginPageRenderer PageRenderer public override void ViewD
  • 程序集具有强名称,但我收到错误消息,指出需要强名称

    我正在尝试将第三方 COM dll 加载到我的应用程序中 一切都构建得很好 但是当我运行应用程序时 我不断从应用程序中收到此消息 无法加载文件或程序集 程序集 版本 1 0 0 0 文化 中性 PublicKeyToken null 或其依
  • 具有以编程方式确定的常量 DEFAULT 值的 ALTER TABLE

    我正在尝试向表 Employee 添加一列 MSSQL 2005 并使用另一个表 Department 的主键的默认约束 然后我将使该列成为该表的 FK 本质上 如果未提供 DepartmentID 这将根据部门名称将新员工分配到基础部门
  • 使用 df1 中的值从 df2 检索值,其中 df2 列和索引包含一系列值

    我有一个数据框 其中包含员工信息 例如 Name performance factor 1 和 Performance factor 2 我有另一个数据框 我根据 Performance factor 1 和 Performance act
  • 在 Android 中处理来电

    我想在 Android 中处理来电 实际上我想设置一个持续时间 如果我的手机接到任何电话 就会自动向他们每个人发送一条消息 有任何想法吗 只需将您的课程扩展到PhoneStateListener并覆盖onCallStateChanged方法
  • Drupal 在视图中返回结果数

    我在 Drupal 中有一个视图可以过滤我的内容 它带回 7 行 我想要返回的只是返回的数字或结果 7 这可能吗 我尝试使用查看结果计数器 但它为每个结果返回一个数字 1 2 3 4 5 6 7 我只需要第七部分 所以在 SQL 中我会执行
  • 将范围转换为图像

    我正在寻找将气体范围保存为图片 jpg 的方法 类似于 Excel VBA 的东西 Range MainMatrixName CopyPicture Appearance xlScreen Format xlPicture copy Exc
  • 如何使用重塑包重塑此数据框[重复]

    这个问题在这里已经有答案了 我有一个相当大的数据框 结构如下 id x1 x2 x3 y1 y2 y3 z1 z2 z3 v 1 2 4 5 10 20 15 200 150 170 2 5 2 3 7 6 25 35 40 300 350
  • Jenkins 抛出 java.lang.StackOverflowError ——不仅仅是在 unstash 上

    2019 年 7 月 31 日更新该错误有时发生在 unstash 调用之前 但总是在同一服务器上 为了查看问题是否是由于 unstash 在需要覆盖文件的目录中工作引起的 我清理了该目录 但问题仍然发生 这次开始输出 转录 任何拼写错误都
  • Firebase:如何保持 Android 用户登录?

    我正在使用 Firebase SimpleLogin 启用电子邮件 密码身份验证 用户的创建和后续登录一切正常 然而 每当我离开应用程序 即使只有几秒钟 用户在我返回时永远不会登录 即 authClient checkAuthStatus
  • 安装 CakePHP 3 后出现空白页

    我已将 CakePHP 3 的新安装复制到网络酒店 在我的本地安装中 它运行没有问题并显示标准启动页面 但在网络酒店上我得到一个空白页面 如果我将 test php 放在 webroot 中 它会毫无错误地显示 如果我在 webroot i
  • 您可以在 React Native 中有条件地导入文件吗?

    情况 我正在开发一个针对同一应用程序具有不同版本的 React Native 项目 为此 我将使用适用于 Android 的应用程序风格 而对于 iOS 我将使用构建目标 我已经制作了一个本机 android 模块 可以返回正在使用的 an
  • 通过 powershell 将数据附加到现有 xml 文件中

    我可以使用 powershell 将节点添加到现有 XML 中吗 这是我所拥有的
  • 基于自动分号插入 JS 规则的有趣错误。需要解释

    今天我为一些编程竞赛编写了代码 当我运行它时 我因为错误而感到惊讶 无法读取未定义的属性 forEach 在一个看起来像 无错误空间 的地方 sum 0 1 0 1 forEach deltar gt 当我在后面添加分号时sum变量赋值代码