LoginSignup
0

More than 5 years have passed since last update.

true / 2

Posted at

JavaScript は様々な面白コードを書ける面白言語ですが、実際に利用している(?)人は初めて見たので。

結果は 0.5 です。はい。
しかしこの人はどういうシチュエーションでこの式を書いたのだろうか。そして何かの役に立つのだろうか。いや、立っても書きたくないな…。

蛇足

こういった暗黙の型変換による面白コードを見るたびに TypeScript へ意識が向くわけですが、手軽に型変換をチェックしたいのであれば flow でも良いのでは。
例えば次のような main.js があるとして、

// @flow
let a = true
console.log(a / 2)

以下の手順で flow をインストール&実行すれば、

> npm i --save-dev flow-bin
> npx flow init
> npx flow

こんな感じでチェックしてくれますね。

Error ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ main.js:3:13

Cannot perform arithmetic operation because boolean [1] is not a number.

     1│ // @flow
 [1] 2│ let a = true
     3│ console.log(a / 2)
     4│

ただ flow だと a = 1 みたいな異なる型の再代入はチェックしてくれないんですよね。はい。

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
0