首页 web前端 js教程 JS判断元素为数字的奇异写法分享_javascript技巧

JS判断元素为数字的奇异写法分享_javascript技巧

May 16, 2016 pm 05:51 PM
元素 数字

这是在阅读underscore(1.3.3)源码中看到的,它的each方法

复制代码 代码如下:

var each = _.each = _.forEach = function(obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i if (iterator.call(context, obj[i], i, obj) === breaker) return;
}
} else {
for (var key in obj) {
if (_.has(obj, key)) {
if (iterator.call(context, obj[key], key, obj) === breaker) return;
}
}
}
};

该方法里有一句
复制代码 代码如下:
if (obj.length === +obj.length)

看半天没明白,后经高人指点,这句等价于
复制代码 代码如下:
if (typeof obj.length === 'number')

即是用来判断元素是否为数字类型的。typeof和Object.prototype.toString是常见的写法。而最后一种则不常见,常人难以理解。

一些库有类型判断的工具函数,如
复制代码 代码如下:

function isNumber1(a){
return typeof a === 'number'
}

又或者用Object.prototype.toString
复制代码 代码如下:

function isNumber2(a) {
return Object.prototype.toString.call(a) === '[object Number]'
}

改成这种写法
复制代码 代码如下:

function isNumber3(a){
return a === +a
}

用各种类型测试下
复制代码 代码如下:

var arr = ['1', true, false, undefined, null, {}, [], 1]
for (var i=0; iconsole.log(isNumber3(arr[i]))
}

结果只有数组最后的一项为true。即只有数字类型 a === +a 才为真。
为什么不用typeof,因为字符串比较理论上是需要遍历所有字符的,性能和字符串长度成正比。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1276
29
C# 教程
1256
24
CSS过渡效果:如何实现元素的滑动效果 CSS过渡效果:如何实现元素的滑动效果 Nov 21, 2023 pm 01:16 PM

CSS过渡效果:如何实现元素的滑动效果引言:在网页设计中,元素的动态效果能够提升用户体验,其中滑动效果是一个常见而又受欢迎的过渡效果。通过CSS的过渡属性,我们可以轻松实现元素的滑动动画效果。本文将介绍如何使用CSS过渡属性来实现元素的滑动效果,并提供具体的代码示例,以帮助读者更好地理解和应用。一、CSS过渡属性transition的简介CSS过渡属性tra

CSS变形:如何实现元素的旋转效果 CSS变形:如何实现元素的旋转效果 Nov 21, 2023 pm 06:36 PM

CSS变形:如何实现元素的旋转效果,需要具体代码示例在网页设计中,动画效果是提高用户体验和吸引用户注意力的重要方式之一,而旋转动画是其中比较经典的一种。在CSS中,使用“transform”属性可以实现元素的各种变形效果,包括旋转。本文将详细介绍如何利用CSS的“transform”实现元素的旋转效果,并提供具体的代码示例。一、如何使用CSS的“transf

真我 GT Neo6 定档 5 月 9 日!机圈首场 AI 数字人发布会 真我 GT Neo6 定档 5 月 9 日!机圈首场 AI 数字人发布会 May 08, 2024 pm 12:49 PM

5月7日,我手机厂商正式宣布,我公司GTNeo6发布会定档5月9日。我GTNoe6被定位为"性能风暴",旨在搅动中端机风云。除此之外,该发布会还将是手机圈首场AI数字人发布会。届时,真我realme副总裁、全球营销总裁、中国区总裁徐起将以数字人的形式出现在发布会上。数字人徐起根据官方介绍,真我GTNoe6代号为"飓风",更快更强,将挑战最强第三代骁龙8s旗舰,挑战同档最强产品力。日前,真我GTNeo6被发现直接在电商平台上架,部分核心配置曝光,显示该机不仅搭载了骁龙8s处理器,还支持120W闪充

如何使用CSS实现元素的透明度渐变效果 如何使用CSS实现元素的透明度渐变效果 Nov 21, 2023 pm 01:38 PM

如何使用CSS实现元素的透明度渐变效果在Web开发中,为网页元素添加过渡效果是提升用户体验的重要手段之一。透明度的渐变效果不仅可以使页面变得更加平滑,还可以突出元素的重点内容。本文将介绍如何使用CSS实现元素的透明度渐变效果,并提供具体的代码示例。使用CSS的transition属性要实现元素的透明度渐变效果,我们需要使用CSS的transition属性。t

如何使用HTML和CSS实现一个具有固定导航菜单的布局 如何使用HTML和CSS实现一个具有固定导航菜单的布局 Oct 26, 2023 am 11:02 AM

如何使用HTML和CSS实现一个具有固定导航菜单的布局在现代网页设计中,固定导航菜单是常见的布局之一。它可以使导航菜单始终保持在页面顶部或侧边,使用户可以方便地浏览网页内容。本文将介绍如何使用HTML和CSS实现一个具有固定导航菜单的布局,并提供具体的代码示例。首先,需要创建一个HTML结构来呈现网页的内容和导航菜单。以下是一个简单的示例

jQuery中如何检查元素是否包含某个属性值? jQuery中如何检查元素是否包含某个属性值? Feb 28, 2024 pm 02:54 PM

在jQuery中,我们经常需要检查元素是否包含特定的属性值。这样做可以帮助我们根据元素上的属性值执行相应的操作。在本文中,我将介绍如何使用jQuery来检查元素是否包含某个属性值,并提供具体的代码示例。首先,让我们先了解一下jQuery中的一些常用方法来操作元素的属性:.attr():用于获取或设置元素的属性值。.prop():用于获取或设置元素的属性值

Golang中怎样把字符串转换为数字 Golang中怎样把字符串转换为数字 Jan 16, 2024 am 08:20 AM

Golang中如何将字符串转换为数字在Golang中,我们经常需要将字符串转换为数字来进行一些计算操作。字符串转换为数字的过程相对简单,主要依赖于Golang标准库中的strconv包。本文将详细介绍如何使用strconv包将字符串转换为数字,并且给出一些具体的代码示例。将字符串转换为整数要将字符串转换为整数,可以使用strconv包中的Atoi函数。Ato

使用jQuery判断元素的显示状态 使用jQuery判断元素的显示状态 Feb 23, 2024 pm 09:24 PM

用jQuery实现元素的可见不可见判断在网页开发中,经常会遇到需要判断某个元素是否可见的情况。通过jQuery可以很方便地实现对元素可见性的判断和操作。本文将介绍如何使用jQuery来实现对元素可见性的判断,同时提供具体的代码示例。jQuery的元素可见性判断方法在jQuery中,可以利用一些特定的方法来判断元素的可见性。其中最常用的方法是.is(':vis

See all articles