javascript 中的 obj.length === +obj.length

2024-01-02

在 underscore.js 源码中我在很多地方都遇到过

if (obj.length === +obj.length)

有人可以解释一下,他们为什么使用它?


这是另一种写作方式if (typeof obj.length == 'number')。他们为什么这样做,谁也说不准。可能是想以牺牲可读性为代价来变得聪明。不幸的是,现在这种情况并不少见......

尽管可能是这样,它可以通过压缩器进一步压缩(YUI压缩器 http://developer.yahoo.com/yui/compressor/, 闭包编译器 http://closure-compiler.appspot.com/home, UglifyJS https://github.com/mishoo/UglifyJS, etc):

(a.length===+a.length) vs (typeof a.length=='number')

按照他们的方式,每个实例可以节省 5 个字节。

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

javascript 中的 obj.length === +obj.length 的相关文章

  • 为什么 `obj.foo = function() { };` 没有将名称 `foo` 分配给函数?

    从 ES2015 ES6 开始 函数有了专有名称 包括官方名称 name属性 而函数创建时的赋值除了明显的函数声明和命名函数表达式之外还有多种方式 比如给变量赋值 函数的名字设置为变量的名字 给对象属性赋值 函数的名称设置为属性的名称 甚至
  • 在 Meteor.method 中调用函数返回未定义

    过去几天我一直在尝试从 Meteor 方法获取返回对象 每次我这样做我都会得到undefined在客户端上 Meteor methods CORSTest function let url www theverge com 2017 4 1
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • 按下了哪个提交按钮?

    在这个jsfiddle中 http jsfiddle net littlesandra88 eGRRb http jsfiddle net littlesandra88 eGRRb 我是否提交了自动生成的按钮 每个表行都有一个唯一的 ID
  • 未捕获类型错误:无法解析模块说明符“fs”。相对引用必须以“/”、“./”或“../”开头

    当我尝试在我自己的模块中导入 fs 模块时 例如import as fs from fs 浏览器控制台出现以下错误 Uncaught TypeError Failed to resolve module specifier fs Relat
  • 如何从 URL 字符串中删除某些参数?

    我有这个var存储表示充满参数的 URL 的字符串 我正在使用 AngularJS 我不确定是否有任何有用的模块 或者可能使用纯 JavaScript 来删除不需要的 URL 参数而无需使用正则表达式 例如我需要删除 month 05并且
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 为什么我的 onclick 事件自动触发

    加载页面时最初显示 Hello World 我希望它仅在单击按钮后显示 我知道我可以通过向按钮添加内联事件侦听器来做到这一点 我可以只用脚本编写所有这些代码吗
  • 如何获取数组中最后 5 个元素(不包括第一个元素)?

    在 JavaScript 数组中 如何获取最后 5 个元素 排除第一个元素 1 55 77 88 would return 55 77 88 添加其他示例 1 55 77 88 99 22 33 44 would return 88 99
  • Angular-Datatables + Angular-xeditable:取消可编辑行

    当组合 Angular DataTables 和 Angular XEditable 时 添加新行时会取消可编辑行 这是jsfiddle https jsfiddle net faj61h5d 10 示例操作如下 1 这是初始状态 2 将第
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • Relay 中的嵌套片段数据始终相同

    我是 Relay 新手 并且遇到了片段上嵌套数据的问题 当我在 graphiql 中进行测试时 以下查询返回正确的数据 因此我确信我的架构是正确的 viewer customers name billing address city 但是
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断
  • Javascript - 如何计算数字的平方?

    使用 JavaScript 函数 function squareIt number return number number 当给定数字 4294967296 时 函数返回 18446744073709552000 每个人都知道真正的答案是
  • Jade(当前称为“Pug”)模板引擎中的循环

    我想使用一个简单的循环 例如for int i 0 i lt 10 i 如何在 Jade 引擎中使用它 我正在使用 Node js 并使用expressjs 框架 例如 for var i 0 i lt 10 i li array i 你可
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • nvd3.js - 无法更改折线图中线条的颜色

    我正在尝试更改 nvd3 折线图不同线条的颜色here http nvd3 org livecode index html codemirrorNav但我无法理解该怎么做 我想将示例中的 2 条线的颜色更改为绿色和青色 我试过 nv add
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • html5 canvas 使用图像作为蒙版

    是否可以使用具有形状的图像作为整个画布或画布内图像的蒙版 我想将图像放置在画布中 并在图像上添加蒙版 然后将其另存为新图像 您可以使用 source in globalCompositeOperation 将黑白图像用作蒙版 首先 将蒙版图

随机推荐

  • nvd3 工具提示十进制格式

    我正在使用 nvd3 显示折线图 格式化工具提示内容时遇到一些问题 这是我用来设置 y 轴文本格式的行 chart1 yAxis tickFormat d3 format 02f 但是 它仅对 y 轴有效 如果有一个像 44 123231
  • android startActivity 来自服务中的意图[重复]

    这个问题在这里已经有答案了 我尝试在服务中使用意图 但是当我尝试这样做时 Intent intent facebook new Intent this MainUploadToYoutube class intent facebook pu
  • Instagram新API,通过标签获取项目

    上个月 Instagram API 更新了 我不明白如何使用它 例如我想通过标签获取图像nexus5x 我确实请求https api instagram com v1 tags nexus5x access token access tok
  • 将背景图像 (SVG) 拉伸至 100% 宽度和 100% 高度?

    我想要实现的行为是宽度background size cover 但高度为background size contain 通过拉伸图像 我以为background size 100 应该这样做 但看看这个例子 它没有 container b
  • 使用 include 动态指向 HTML

    我想基于变量指向不同的 HTML 文件 我使用以下格式的 include include templates case cid intro html 这会引发错误 TemplateNotFound templates case cid in
  • Oracle ojdbc8 12.2.0.1 被 Maven 禁止

    Oracle ojdbc8 12 2 0 1禁止自 2017 年 12 月起由 Maven 提供 在此之前效果良好 Oracle 存储库 setting xml 上的哪些配置已更改 Maven 项目 https github com sgr
  • 使用不同的 JSON 对象填充 ViewPager 中的每个片段,而无需再次加载

    我有一个ViewPager有一个Fragment其中包含一个 GridView仅当我延迟滚动页面并且每次再次从互联网检索内容时 我的代码才能正常工作我想做的只是获取每个页面内容一次并在用户滚动页面时使用它我的问题之一是 JSON 下载sim
  • swift中的dispatch_group_leave崩溃

    这种情况很少发生 这是堆栈跟踪的最后一行 0 libdispatch dylib 0x0000000197a85a9c dispatch group leave 48 dispatch group leave 在一个完整的闭包中被调用 调用
  • 分组时覆盖箱线图中的下限、上限等

    默认情况下 对于下 中和上分位数geom boxplot考虑 25 50 和 75 分位数 这些是从计算得出的y 但可以通过美学参数手动设置lower upper middle 还提供x ymin and ymax和设置stat ident
  • 如何在 jUnit 测试用例中闯入调试器?

    我正在一个大型 java 项目中调试单元测试 我需要运行 ant test 来启动测试套件 所以我很难从 IDE 启动它 如果它附加到任何调试器 是否可以调用 C 中的 Debugger Break 之类的函数来中断调试器 如果我正确理解你
  • 子字符串并返回特定字符后的值

    测试 BSMain 文本 起始页 我想对上面的值进行子串并只返回后面的值 在 VB NET 中 我怎样才能做到这一点 假设没有错误检查 Dim phrase As String Testing BSMain Text Start Page
  • c fscanf 错误检查

    我正在使用 fscanf 从 C 中的文件中读取 我只是想知道我是否正确检查了所有错误条件 这是最可靠的方法 而且我没有遗漏任何内容 FILE fp char filename untitled int count char item1 1
  • Rust 中单元类型的用途是什么?

    铁锈具有单位类型 具有单个零大小值的类型 该单位类型的值也可以使用指定 单位类型及其值的目的是什么 这是一种避免使用的机制吗null or nil 像其他语言一样 是类型的值 它的目的就是无用 Rust 中的一切都是一个表达式 返回 not
  • Zip 文件上传到服务器时损坏

    我的 java 程序将 zip 文件从我的系统上传到 FTP 服务器 uploadfile 是一个包含上传代码的函数 uploadfile 192 168 0 210 muruganp vm4snk home Admin GATE521 L
  • 全日历结束日期错误一天

    我正在制作一个完整的日历支持的汽车预订功能 这是咖啡脚本文件 updateEvent event delta revertFunc gt ajax type PUT dataType json success data gt alert S
  • 声谱图

    我制作了一个应用程序 可以将 FFT 实时绘制到屏幕上 从麦克风 x 轴上的时间 y 轴上的频率和像素的颜色代表幅度 几乎是一个普通的 FFT 频谱图 我的问题是 即使我可以从音乐中看到模式 但也有很多噪音 谷歌搜索我看到人们对振幅应用对数
  • FacesConverter forClass 不适用于复合组件

    我有一个简单的复合组件 它必须呈现输入文本 当输入值并按下命令按钮时 会引发以下异常 java lang IllegalArgumentException Cannot convert 1 of type class java lang S
  • 谷歌翻译:超出配额

    我正在尝试使用 Google Translate REST API 并同时请求以下网址 我收到以下回复 响应 responseData null responseDetails 超出配额 请参见http code google com ap
  • 在 R 数据框中的所有列中搜索值

    这是一个示例数据框 df data frame company c a b c d bond c 0 2 1 0 3 0 equity c 0 7 0 0 5 1 cash c 0 1 0 0 2 0 df company bond equ
  • javascript 中的 obj.length === +obj.length

    在 underscore js 源码中我在很多地方都遇到过 if obj length obj length 有人可以解释一下 他们为什么使用它 这是另一种写作方式if typeof obj length number 他们为什么这样做 谁