Rumah hujung hadapan web tutorial js JS判断元素为数字的奇异写法分享_javascript技巧

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

May 16, 2016 pm 05:51 PM
unsur nombor

这是在阅读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,因为字符串比较理论上是需要遍历所有字符的,性能和字符串长度成正比。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Transformasi CSS: bagaimana untuk mencapai kesan putaran elemen Transformasi CSS: bagaimana untuk mencapai kesan putaran elemen Nov 21, 2023 pm 06:36 PM

Transformasi CSS: Cara untuk mencapai kesan putaran elemen memerlukan contoh kod khusus Dalam reka bentuk web, kesan animasi adalah salah satu cara penting untuk meningkatkan pengalaman pengguna dan menarik perhatian pengguna, dan animasi putaran adalah salah satu yang lebih klasik. Dalam CSS, anda boleh menggunakan atribut "transform" untuk mencapai pelbagai kesan ubah bentuk elemen, termasuk putaran. Artikel ini akan memperkenalkan secara terperinci cara menggunakan "transform" CSS untuk mencapai kesan putaran elemen, dan memberikan contoh kod khusus. 1. Cara menggunakan "transf" CSS

Kesan peralihan CSS: bagaimana untuk mencapai kesan gelongsor elemen Kesan peralihan CSS: bagaimana untuk mencapai kesan gelongsor elemen Nov 21, 2023 pm 01:16 PM

Kesan peralihan CSS: Bagaimana untuk mencapai kesan gelongsor elemen Pengenalan: Dalam reka bentuk web, kesan dinamik elemen boleh meningkatkan pengalaman pengguna, antaranya kesan gelongsor adalah kesan peralihan yang biasa dan popular. Melalui sifat peralihan CSS, kita boleh mencapai kesan animasi gelongsor elemen dengan mudah. Artikel ini akan memperkenalkan cara menggunakan sifat peralihan CSS untuk mencapai kesan gelongsor elemen dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan dengan lebih baik. 1. Pengenalan kepada peralihan atribut CSS peralihan atribut peralihan CSS tra

Cara melaksanakan susun atur dengan menu navigasi tetap menggunakan HTML dan CSS Cara melaksanakan susun atur dengan menu navigasi tetap menggunakan HTML dan CSS Oct 26, 2023 am 11:02 AM

Cara menggunakan HTML dan CSS untuk melaksanakan susun atur dengan menu navigasi tetap Dalam reka bentuk web moden, menu navigasi tetap adalah salah satu susun atur biasa. Ia boleh memastikan menu navigasi sentiasa berada di bahagian atas atau sisi halaman, membolehkan pengguna menyemak imbas kandungan web dengan mudah. Artikel ini akan memperkenalkan cara menggunakan HTML dan CSS untuk melaksanakan reka letak dengan menu navigasi tetap dan memberikan contoh kod khusus. Mula-mula, anda perlu mencipta struktur HTML untuk membentangkan kandungan halaman web dan menu navigasi. Berikut adalah contoh mudah

Cara menggunakan CSS untuk mencapai kesan kecerunan ketelusan elemen Cara menggunakan CSS untuk mencapai kesan kecerunan ketelusan elemen Nov 21, 2023 pm 01:38 PM

Cara menggunakan CSS untuk mencapai kesan kecerunan ketelusan unsur Dalam pembangunan web, menambah kesan peralihan pada elemen halaman web adalah salah satu cara penting untuk meningkatkan pengalaman pengguna. Kesan kecerunan ketelusan bukan sahaja boleh menjadikan halaman lebih lancar, tetapi juga menyerlahkan kandungan utama elemen tersebut. Artikel ini akan memperkenalkan cara menggunakan CSS untuk mencapai kesan kecerunan ketelusan unsur dan memberikan contoh kod khusus. Menggunakan atribut peralihan CSS Untuk mencapai kesan kecerunan ketelusan sesuatu elemen, kita perlu menggunakan atribut peralihan CSS. t

Realme GT Neo6 dijadualkan dikeluarkan pada 9 Mei! Persidangan manusia digital AI pertama dalam industri komputer Realme GT Neo6 dijadualkan dikeluarkan pada 9 Mei! Persidangan manusia digital AI pertama dalam industri komputer May 08, 2024 pm 12:49 PM

Pada 7 Mei, pengeluar telefon mudah alih kami secara rasmi mengumumkan bahawa persidangan pelancaran GTNeo6 syarikat kami dijadualkan pada 9 Mei. GTNoe6 diletakkan sebagai "ribut prestasi", bertujuan untuk membangkitkan keadaan mesin jarak pertengahan. Selain itu, persidangan ini juga akan menjadi persidangan manusia digital AI pertama dalam industri telefon mudah alih. Pada masa itu, Naib Presiden Realme, Presiden Pemasaran Global, dan Presiden China Xu Qi akan muncul pada sidang media dalam bentuk manusia digital. Lelaki digital Xu Qi Menurut pengenalan rasmi, Realme GTNoe6, dengan nama kod "Hurricane", lebih pantas dan kuat serta akan mencabar perdana generasi ketiga Snapdragon 8s terkuat dan produk terkuat dalam kelasnya. Baru-baru ini, Realme GTNeo6 didapati berada secara langsung pada platform e-dagang Beberapa konfigurasi teras telah didedahkan, menunjukkan bahawa mesin itu bukan sahaja dilengkapi dengan pemproses Snapdragon 8s, tetapi juga menyokong pengecasan kilat 120W.

Bagaimana untuk memulihkan nombor tanda sudut WeChat Bagaimana untuk memulihkan nombor tanda sudut WeChat Nov 29, 2023 pm 05:46 PM

Kaedah untuk memulihkan nombor sudut WeChat: 1. Hentikan WeChat dan mulakan semula 2. Kosongkan cache WeChat 3. Semak kemas kini versi WeChat; Pengenalan terperinci: 1. Berhenti paksa WeChat dan mulakan semula Ini adalah kaedah yang paling biasa untuk menyelesaikan nombor tidak normal tanda sudut WeChat Dalam antara muka WeChat, klik butang "Saya" di sudut kiri bawah, dan kemudian klik "Tetapan " di penjuru kanan sebelah atas. Buka antara muka tetapan. Dalam antara muka tetapan, pilih "Log keluar" untuk log keluar daripada WeChat. Selepas beberapa saat, mulakan WeChat semula. Biasanya, nombor penjuru akan kembali normal, dsb.

Bagaimana untuk menukar rentetan kepada nombor di Golang Bagaimana untuk menukar rentetan kepada nombor di Golang Jan 16, 2024 am 08:20 AM

Cara menukar rentetan kepada nombor dalam Golang Di Golang, kita selalunya perlu menukar rentetan kepada nombor untuk melakukan beberapa operasi pengiraan. Proses menukar rentetan kepada nombor adalah agak mudah dan bergantung terutamanya pada pakej strconv dalam perpustakaan standard Golang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan pakej strconv untuk menukar rentetan kepada nombor dan memberikan beberapa contoh kod khusus. Menukar rentetan kepada integer Untuk menukar rentetan kepada integer, anda boleh menggunakan fungsi Atoi daripada pakej strconv. Ato

Bagaimana untuk menyemak sama ada elemen mengandungi nilai atribut dalam jQuery? Bagaimana untuk menyemak sama ada elemen mengandungi nilai atribut dalam jQuery? Feb 28, 2024 pm 02:54 PM

Dalam jQuery, kita sering perlu menyemak sama ada elemen mengandungi nilai atribut tertentu. Melakukan ini membantu kami melakukan tindakan berdasarkan nilai atribut pada elemen. Dalam artikel ini, saya akan memperkenalkan cara menggunakan jQuery untuk menyemak sama ada elemen mengandungi nilai atribut tertentu, dan memberikan contoh kod khusus. Mula-mula, mari kita lihat beberapa kaedah biasa dalam jQuery untuk mengendalikan atribut elemen: .attr(): digunakan untuk mendapatkan atau menetapkan nilai atribut elemen. .prop(): digunakan untuk mendapatkan atau menetapkan nilai atribut sesuatu elemen

See all articles