Underscore.js,为什么`isFunction`使用`||假`?

2023-11-27

可选覆盖isFunction(object)在下划线.js (存储库链接到定义),内容如下:

// Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,
// IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).
var nodelist = root.document && root.document.childNodes;
if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {
    _.isFunction = function(obj) {
        return typeof obj == 'function' || false;
    };
}

我感到困惑的是|| false,为什么需要在字符串比较之后呢?自从typeof总是返回一个字符串,应该没有歧义吧?
评论指出覆盖修复了一些typeof错误,所列平台上是否存在以下情况:typeof不返回字符串?


查看评论中涉及的问题,#1621, #1929 and #2236.

简而言之,某些平台存在一个错误typeof除非将其存储在变量中,否则不是字符串。
The || false无需引入额外变量即可修复问题。

直接取自#1621:

在 IE8 中,使用变量一切都会按预期工作:

var t = typeof obj
t === 'function' // false
t === 'object' // true

但如果没有一个,情况就不同了:

(typeof obj) === 'function' // true, but SHOULD be false
(typeof obj) === 'object' // true

上面概述的额外检查修复了该错误。

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

Underscore.js,为什么`isFunction`使用`||假`? 的相关文章

  • 将 next.js 与纱线工作区结合使用

    今天遇到了这样的项目结构的复杂情况 packages app pages package json ui kit pages package json shared babelrc package json root lvl 包 json
  • 在 iPad 上调试 Javascript

    我想知道人们是否找到了任何有用的工具来在未越狱的 iPad 上调试 javascript 这是一款用于工作的 iPad 因此无法越狱 通过一些繁琐的步骤 我已经在 iPad 上运行了 firebug lite 但是我的 javascript
  • 共享工作线程在重新加载页面时终止

    为什么 Shared Worker 在重新加载页面时死掉了 应该是复活了我该如何解决这个问题 重新加载前 重新加载后 在 example com 上按 F5 家长工人 var port new SharedWorker app worker
  • 如何精确缩放已翻译的d3地图

    我有一张已翻译的地图 以使其正确适合画布 我正在尝试实现一种缩放它的方法 它确实有效 但是当您放大时它会远离中心 而不是以鼠标甚至画布为中心 这是我的代码 function map data total views var xy d3 ge
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • jQuery数据表设置列设计和成功回调中的值

    我为我的数据表编写了以下代码 它用我的数据库中的内容填充表 如下所示 if datatable null datatable destroy datatable tableProducts DataTable pageLength 50 b
  • 如何针对 IE 进行优化?

    我有一个 JS 密集型应用程序 它在 IE 中运行缓慢 我将花费大约一周的时间来优化 IE 并且我想要一些关于尝试的方向 我发现这个线程引用Drip https ieleak svn sourceforge net svnroot iele
  • 通过 Javascript 更改 Webkit 属性?

    请帮助我 可能是因为我对 CSS 动画和 Javascript 相当陌生 但我使用的代码应该更改它的属性 当我运行代码时 它会执行代码中的所有其他操作 除了更改所需 div 的 CSS 属性 我已经尝试了所有这四种方法 但似乎都不起作用 它
  • 如何将节点 sqlite3 与 q (promise) 一起使用

    我正在尝试将 Promise 与 sqlite3 一起使用 这是我的源代码的一部分 this deleteTag function tag project var db this db if project return q nfcall
  • dc lineChart 单击时弹出数据点信息

    我正在尝试检测折线图数据点上的点击 Per this answer dc scatter plot binding onClick event https stackoverflow com a 22772340 1873386 I am
  • 在 Windows 上静默安装 Qt55 Enterprise

    编辑 在 Qt 支持的帮助下 我已经解决了如何自动化 Qt 企业安装程序的这两个部分 下面是脚本调用 我正在尝试在 Windows 8 1 和 Windows 10 上静默安装 Qt 5 5 1 Enterprise 使用 script 开
  • 带有桌子的嵌套表

    我在应用了表排序器的表中嵌套了表 它在嵌套表中添加了排序标题 但是它们没有对行进行排序 并且抛出了JavaScript错误 我想拥有 嵌套表不可排序 巢表上的排序实际上可以工作 但不是现状 您的第一个选择要容易得多 使嵌套表不可排序 像这样
  • 如何在使用类型分散时将箭头添加到行尾

    如何在 y 不等于 0 且系列类型以线宽 2 分散的情况下正确地将箭头添加到行的每一端 在这里我可以看到箭头已添加但未正确添加 请看这个 部分工作小提琴 http jsfiddle net vnYCX 这是我的 JS 最初的原型是由 sta
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • Kendo 刷新 (DropDownList.refresh()) 不起作用错误未定义

    我试图在另一个 DropDownList 更改后刷新下拉列表 但 Refresh 方法未定义错误正在升级 我尝试再次读取数据源 它显示它正在加载 但数据仍然相同 帮助解决这个问题请 Code DropDownList1 change fun
  • IE9 中的无效字符 DOM 异常

    以下这段 JS 曾经在 IE8 中工作 现在在 IE9 中失败 document createElement 我收到以下异常 SCRIPT5022 DOM 异常 INVALID CHARACTER ERR 5 上面这段代码是不是不符合标准呢
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • javascript 闭包和对象引用

    我的情况有点晦涩难懂 主要是因为我认为我已经掌握了闭包 所以基本上我想要的是将集合重置为默认值 假设我有一个集合 它具有带有对象参数数组的构造函数 var c new collection x y z 然后集合定期更新 因为我没有保留数组的
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简
  • 如何使用 Chart.js 版本 3.2.1 在圆环图中添加文本

    我正在使用 Canvas 在 HTML 中使用 如何使用在圆环图中添加文本 这是我的 javascript 代码和 HTML 代码 我使用了图表js版本3 2 1 所以请给出相同版本 3 的解决方案 var overallStatsCanv

随机推荐

  • 根据单元格值数据按路径引用 Excel 工作簿

    我有一个 Excel 工作表 可以从其他关闭的 Excel 工作簿中提取数据 目前 当我列出关闭的工作簿的整个路径时 它工作正常 但我想使用存储在单独单元格中的变量作为路径名的一部分 例如 我正在尝试引用名为的工作簿 工作簿12 10 12
  • 在 joomla 组件中写入多个表?

    我正在尝试创建一个使用多个表的组件 前端 我发现一两个帖子部分回答了这个问题 但没有一个真正回答了这个问题 对于知道如何做的人来说 这一点似乎总是简单明了 但从未真正解释过 或者我错过了正确的帖子 在我的组件中 用户在一个视图中输入需要存储
  • 需要处理 git-archive 中的 git-submodules

    我需要将 git 子模块打包到我创建的 tarball 中git archive 我在1 6 5中看到了git archive不支持 git 子模块 我在网上看到了几个处理这种情况的脚本 但我不确定该选择哪一个 最好 最官方的方法是什么 你
  • 在 C# Windows 服务上重定向 stdout+stderr

    我使用 C 编写了一个 Windows 服务ServiceBase帮手 在执行期间 会调用外部本机 DLL 中的一些过程 令人烦恼的是 这些过程以不受控制的方式写入 stdout 和 或 stderr 因为没有给出该 DLL 的源代码 是否
  • Android Studio:错误代码 1:Gradle:任务“:app:processDebugResources”执行失败

    我想编译一个项目 我得到了Error Gradle Execution failed for task app processDebugResources 这是例外 错误 Gradle 任务 app processDebugResource
  • 如何在javascript中检测浏览器渲染引擎?

    我读过一本名为 Professional Javascript For Web Developers 2nd Edition 的书 其中指出此代码可以检测浏览器渲染引擎
  • 如何控制recyclerView.smoothScrollToPosition(position)的滚动速度?

    我有一个回收器视图 我想要平滑地向下滚动 然后以编程方式向上滚动到它 以向用户显示其中的完整内容 我可以通过以下方式做到这一点 final int height recyclerView getChildAt 0 getHeight rec
  • docker libgomp.so.1 内的 Lightgbm:无法打开共享对象文件

    我在我的 Mac 上安装了 LightGBM 并之前针对不同的项目进行了测试 现在我在 Mac 上安装了 python 3 6 的 docker 中 一旦我添加import lightgbm as lgbm在我的 Flask 应用程序中 我
  • 对象名称“dbo.UserRoles”无效

    我收到此错误 SqlException 0x80131904 Invalid object name dbo UserRoles 但我无法捕获错误所在 我可以从其他表中检索其他数据 但不能从这个表中检索数据 条件是 web config 中
  • Android创建BitmapDescriptor异常

    我正在编写一个可以与谷歌地图和标记配合使用的应用程序 我的任务是在谷歌地图上创建并显示一些标记 标记中有自定义图像和文本 数据正在从服务器加载 每次用户移动谷歌地图相机时我都需要显示新的数据量 所以我使用 android maps util
  • 在同一台机器上运行的 Firefox 扩展和 C# 代码之间应该使用什么 IPC 方法?

    我有一个关于如何在 新 Firefox 扩展和现有 C 代码之间构建通信的问题 Firefox 扩展将使用配置数据并生成其他数据 因此需要从某处获取配置数据并将其输出保存在某处 数据由现有 C 代码生成 使用 因此我需要决定扩展应如何与 C
  • 更改绑定中的默认千位和小数分隔符

    假设我有一个号码1234567 89 该数字显示在 WPF TextBlock 中 我正在尝试申请StringFormat归因于Text属性 以便数字显示如下 1 234 567 89 正如您所看到的 千位分隔符和小数分隔符与不变区域性规范
  • sbt 插件没有从子模块中获取?

    我正在尝试将单个模块项目转换为两个模块 根聚合体 感觉就像是一件很正常的事情 因此 为了简化 我删除了添加的第二个项目 但我 做类似的事情 cd myproject mkdir core mv core 然后在 myproject 中添加一
  • 如何将 target="_blank" 添加到指定 div 内的链接?

    假设我有以下代码 div ul li a href http www google com google a li li div class some class dsalkfnm sladkfm a href http www yahoo
  • 将 MediaProjection 虚拟显示器的输出捕获到 ImageReader 时出现系统错误

    我正在开发一个需要将屏幕捕获为位图以进行传输的应用程序 我正在尝试使用新的 Android 5 0android media projection API进行屏幕捕获 此 API 的工作流程最终会调用 mediaProjection cre
  • 如何将 C++ 类转换为内在类型

    基本C 类问题 我目前有简单的代码 看起来像这样 typedef int sType int array 100 int test sType s return array int s 我想要的是将 sType 转换为类 这样 return
  • 同时通话

    我试图通过查看日期时间范围来计算进行特定呼叫时同时呼叫的数量 我的查询有效 但只需要大约 10 分钟才能执行 95 000 条记录 这太长了 有什么优化的想法吗 SELECT r rr ChannelsActive ChannelsActi
  • 在 SQL Server 中将秒转换为日期时间

    如何将秒转换为datetime 我尝试这样做 但结果不正确 CONVERT datetime DATEADD ms dateTimeInSeconds 0 这是一个例子 1900 01 15 21 58 16 287应该是这样的2010 1
  • 带有复合键的 Javascript 映射

    在 JavaScript 中 我想将值存储到复合键 类似于以元组作为键的 C 字典 这是我遇到 Map 类的地方 然而 它似乎并不像我希望的那样工作 这是我目前的方法 var test new Map test set a 1 b 1 Bl
  • Underscore.js,为什么`isFunction`使用`||假`?

    可选覆盖isFunction object 在下划线 js 存储库链接到定义 内容如下 Optimize isFunction if appropriate Work around some typeof bugs in old v8 IE