Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

はじめてのひき - JSSucks Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! 加算

d8> []+[]

d8> []+{}
[object Object]
d8> {}+[]
0
d8> {}+{}
NaN

これ解説サイトあったと思うけど、なにで検索すりゃ出てくるかな…

! 加減算

d8> '1'+1-1
10

地味だけど、足したあと同じものひいて結果変わるってので、好きなコード。

! parseInt

d8> parseInt(1/0,20)
18
d8> parseInt(!1,16)
250

元ネタはコレ。

http://stackoverflow.com/questions/11340673/why-does-parseint1-0-19-return-18

ふたつ目は中途半端に大きな数字がポンと出てくる方がいいかな…って自分で作ったバージョンだけど、元ネタの方が 1/0 が登場するあたりで良いかも…

第二引数の話でいうと

> ['1', '1', '1'].map(parseInt)
[ 1, NaN, 1 ]

このコメントが秀逸: https://twitter.com/mage_1868/status/770555953619931137

! false

d8> new Boolean(false) ? 1 : 0
1

! return

d8> eval("(function(){return 42})()")
42
d8> eval("(function(){return\n 42})()")
d8> eval("(function(){return 1 \n+ 42})()")
43

! 配列の値

js> [] < 2
true
js> [2] < 2
false
js> [2,2] < 2
false
js> [].push(2) < 2
true
js> [2].push(2) < 2
false