Help us understand the problem. What is going on with this article?

true / 2

More than 1 year has passed since last update.

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 みたいな異なる型の再代入はチェックしてくれないんですよね。はい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away