これも既出だが。
さっき、d3.jsの作者 Mike Bostockさんのbl.ocks.orgのコードを覗いていて小技を見つけた。
var svg = d3.select("svg"),
width = +svg.attr("width"),
height = +svg.attr("height");
このsvg.attr()
の前の+
演算子であるが、これは正の符号演算子
で、後に続く値を数値化するのだそうだ。
よってここでは文字列で得られるwidth
およびheight
を数値化するということになる。
+
演算子での数値化の対象となる文字列は、数値を表す文字のみ含む必要がある。
C:\>node
> +'123'
123
> +'+123'
123
> +'-123'
-123
> +'123px'
NaN
> +'px123'
NaN
> +'123,000'
NaN
> +'123,000.-'
NaN
> +'123+457'
NaN
> parseInt('123,000',10)
123
> parseInt('123px',10)
123
> parseFloat('123px')
123
> parseFloat('123,000')
123
> parseFloat('123+100')
123
>
parseInt,parseFloatのほうが応用が若干効くようである。
カンマ区切りの数値はどれも無理だね。replace
を挟めばいけそうだけど。