Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: falsyに関する記述を改善 #1482

Merged
merged 2 commits into from
Oct 10, 2022
Merged

fix: falsyに関する記述を改善 #1482

merged 2 commits into from
Oct 10, 2022

Conversation

lacolaco
Copy link
Collaborator

@lacolaco lacolaco commented Oct 8, 2022

#1378

現在falsyに言及している箇所は4箇所。なるべく一貫した言い回しになるようにしたが、そもそも分散しすぎているようにも思う。

// implicit-coercion
JavaScriptでは、次の値は`false`へ変換されるように決まっています。それ以外の値は`true`に変換されます。

- `false`
- `undefined`
- `null`
- `0`
- `0n`
- `NaN`
- `""`(空文字列)

暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼ぶことがあります。
// operator
また、AND演算子は左辺を評価する際に、左辺を真偽値へと[暗黙的な型変換][]をしてから判定します。
真偽値への暗黙的な型変換では、次に挙げる値は`false`へ変換されるように決まっています。それ以外の値は`true`に変換されます。

- `false`
- `undefined`
- `null`
- `0`
- `0n`
- `NaN`
- `""`(空文字列)

暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼ぶことがあります。
`true`へと変換される値の種類は多いため、`false`へと変換されない値は`true`となることは覚えておくとよいです。
// function-declaration
OR演算子(`||`)では、左辺のオペランドがfalsyな値の場合に右辺のオペランドを評価します。
falsyな値とは、真偽値へと変換すると`false`となる次のような値のことです。(「[暗黙的な型変換][]」の章を参照)。

- `false`
- `undefined`
- `null`
- `0`
- `0n`
- `NaN`
- `""`(空文字列)
// condition
真偽値へ変換すると`true`となる値の種類は多いため、逆に変換した結果が`false`となる値を覚えるのが簡単です。
次の値は真偽値へと変換すると`false`となるため、これらの値は**falsy**と呼ばれます(「[暗黙的な型変換][]」の章を参照)。

- `false`
- `undefined`
- `null`
- `0`
- `0n`
- `NaN`
- `""`(空文字列)

これ以外の値は真偽値に変換すると`true`になります。
そのため、`"文字列"`や0以外の数値などを`条件式`に指定した場合は、`true`へと変換してから条件式として判定します。

@lacolaco lacolaco requested a review from azu October 8, 2022 05:09
@bot-user
Copy link

bot-user commented Oct 8, 2022

Deploy Preview for js-primer ready!

Name Link
🔨 Latest commit 740e641
🔍 Latest deploy log https://app.netlify.com/sites/js-primer/deploys/6343b69b81d8e7000988bd28
😎 Deploy Preview https://deploy-preview-1482--js-primer.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

- **falsy**でない値は`true`になる

**falsy**な値とは次の7種類の値のことを言います。
JavaScriptでは、次の値は`false`へ変換されるように決まっています。それ以外の値は`true`に変換されます。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
JavaScriptでは、次の値は`false`へ変換されるように決まっています。それ以外の値は`true`に変換されます
JavaScriptでは、次の値は`false`へ変換されます

として、

@@ -190,6 +185,8 @@ JavaScriptでは、どの値が`true`でどの値が`false`になるかは、次
- `NaN`
- `""`(空文字列)

暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼ぶことがあります。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼ぶことがあります
暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼びます
falsyではない値は、`true`へと変換されます。

とかかな。(それっていう代名詞がわかりにくかった)

この書籍では、暗黙的な型変換によってfalseに変換されるこれらの値をまとめてfalsyな値と呼びます。

という前提を置くのもありそう。
falsyという言葉を参照してるので言い切った方が良さそう。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

source/basic/operator/README.md も同じ。

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

よさそう。反映してみます

@lacolaco lacolaco requested a review from azu October 10, 2022 09:12
Copy link
Collaborator

@azu azu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@azu azu merged commit daba540 into master Oct 10, 2022
@azu azu deleted the improve-sentences-falsy branch October 10, 2022 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants