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
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions source/basic/condition/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ if文の`条件式`には`true`または`false`といった真偽値以外の値
真偽値以外の値の場合、その値を暗黙的に真偽値へ変換してから、条件式として判定します。

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

- `false`
- `undefined`
Expand All @@ -65,7 +65,7 @@ if文の`条件式`には`true`または`false`といった真偽値以外の値
- `NaN`
- `""`(空文字列)

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

次のコードは、条件式が`true`へと変換されるため、if文の中身が実行されます。
Expand Down
3 changes: 2 additions & 1 deletion source/basic/function-declaration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ console.log(addPrefix("文字列", "カスタム:")); // => "カスタム:文字

しかし、OR演算子(`||`)を使ったデフォルト値の指定にはひとつ問題があります。
OR演算子(`||`)では、左辺のオペランドがfalsyな値の場合に右辺のオペランドを評価します。
falsyな値とは、真偽値へと変換すると`false`となる次のような値のことです。
falsyな値とは、真偽値へと変換すると`false`となる次のような値のことです。(「[暗黙的な型変換][]」の章を参照)。

- `false`
- `undefined`
Expand Down Expand Up @@ -716,6 +716,7 @@ Arrow Functionを使うことで、コールバック関数を短く簡潔に書
JavaScriptでのメソッドは、オブジェクトのプロパティである関数のことです。
ES2015からは、メソッドを定義する構文が追加されているため活用していきます。

[暗黙的な型変換]: ../implicit-coercion/README.md
[関数とスコープ]: ../function-scope/README.md
[非同期処理]: ../async/README.md
[変数名に使える名前のルール]: ../variables/README.md#variable-name
10 changes: 4 additions & 6 deletions source/basic/implicit-coercion/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,7 @@ Boolean(""); // => false
Boolean(null); // => false
```

JavaScriptでは、どの値が`true`でどの値が`false`になるかは、次のルールによって決まります。

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

**falsy**な値とは次の7種類の値のことを言います。
JavaScriptでは、次の値は`false`へ変換されます。

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

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

この変換ルールはif文の条件式の評価と同様です。
次のようにif文に対して、真偽値以外の値を渡したときに、真偽値へと暗黙的に変換されてから判定されます。

Expand Down
9 changes: 3 additions & 6 deletions source/basic/operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -798,12 +798,7 @@ false && console.log("このコンソールログは実行されません");
このような値が決まった時点でそれ以上評価しないことを**短絡評価**と呼びます。

また、AND演算子は左辺を評価する際に、左辺を真偽値へと[暗黙的な型変換][]をしてから判定します。
真偽値への暗黙的な型変換ではどの値が`true`でどの値が`false`になるかは、次のルールによって決まります。

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

**falsy**な値とは次の7種類の値のことを言います。
真偽値への暗黙的な型変換では、次に挙げる値は`false`へ変換されます。

- `false`
- `undefined`
Expand All @@ -813,6 +808,8 @@ false && console.log("このコンソールログは実行されません");
- `NaN`
- `""`(空文字列)

暗黙的な型変換によって`false`に変換されるこれらの値をまとめて**falsy**な値と呼びます。
falsyではない値は、`true`へと変換されます。
`true`へと変換される値の種類は多いため、`false`へと変換されない値は`true`となることは覚えておくとよいです。
このオペランドを真偽値に変換してから評価するのはAND、OR、NOT演算子で共通の動作です。

Expand Down