LoginSignup
3
3

More than 5 years have passed since last update.

+演算子による数値化

Posted at

これも既出だが。
さっき、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を挟めばいけそうだけど。

参考:
http://qiita.com/zawascript/items/a25eaf7a222ac3671275

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3