Saya menemukan kode pendek dan rumit berikut ini di
Double bitwise NOT (~~) - James Padolsey
http://james.padolsey.com/javascript/double-bitwise-not/
Refleksi Web: Dua trik sederhana dalam JavaScript (lama, tapi selalu berguna )
http://webreflection.blogspot.com/2008/06/two-simple-tricks-in-javascript-olds.html
bitwise ganda bukanMath.round(v)
=== ~~v
Math.floor(v)
=== ~~v
(jika v > 0)isNaN(Number(v)) ? 0 : Number(v)
=== ~~v
(jika v tidak mengambang)
tidak gandaBoolean(v)
=== !!v
(!Boolean(v)
=== !v
)
pergeseran bitwiseMath.round(v / 2)
=== v >> 1
Math.round(v)
=== v >> 0
bitwise tunggal bukana.indexOf(v) !== -1
=== ~a.indexOf(v)
Apakah ada kode yang lebih pendek atau rumit dalam javascript?
Apakah ada kode yang lebih pendek dan rumit dalam javascript? [tertutup]
Jawaban (1)
"Trik" ini tidak khusus untuk Javascript. Pencarian sederhana di Google akan menghasilkan sejumlah halaman yang menawarkan trik serupa.
http://resnet.uoregon.edu/~gurney_j/jmpc/bitwise.html sebuah>
http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/
http://www.beyond3d.com/content/articles/8/
person
Craig White
schedule
23.05.2011
~~v
tidak bisa setara denganMath.round(v)
danMath.floor(v)
, mengingatround()
danfloor()
tidak melakukan hal yang sama. Tetapi bahkan dengan asumsi itu setara dengan satu atau fungsi Matematika lainnya menggunakan pintasan~~
hanya membuat kode Anda lebih sulit dibaca. Apakah menurut Anda orang lain yang membaca kode itu akan secara otomatis memahami bahwaMath.floor()
adalah efek yang diinginkan? - person nnnnnn   schedule 23.05.2011Math.round(2.6) //3
TIDAK SAMA dengan~~2.6 //2
- person Muhammad Umer   schedule 24.08.2013