質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

1024閲覧

jsの読み方が分からない

begenner

総合スコア79

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/07/13 01:36

現在CODEPREPでjsを触っています。

ここ

では
下記のようなコードが正解とされていますが、どのような流れでthisに値が入ってくるのか自分には理解できません(m_ _m)

javascript

1 return this !== hisHand && !this.winTo(hisHand);

これは

javascript

1 return this, (!== hisHand && !this.winTo(hisHand)); 2 //もしくは 3 return this.(!== hisHand && !this.winTo(hisHand));

通常の return thisもしくはreturn 引数ならまだ理解できます。
このコードの流れがわかる方がいらっしゃれば教えていただきますようよろしくお願いいたします(m_ _m)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

まずは、カッコを付けておきましょう。

javascript

1return (this !== hisHand) && !this.winTo(hisHand);

つまり、返り値は「thishisHandと等しくない」かつ「後半のメソッドがfalsyな値を返した場合」にtrue、それ以外の場合はfalseとなります。thisはメソッドを呼ぶだけでなく、通常の変数と同様に式の一部として使うことも可能なのです。

なお、

どのような流れでthisに値が入ってくるのか自分には理解できません

このコードだけでは誰にもわかりませんthisに何が設定されるかは、状況によっては関数の呼び方にまで左右されます。

投稿2018/07/13 01:47

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

リンク先は見ていませんが、最終的にreturn にわたるのは true false のどちらかです。

js

1var a = this !== hisHand; // 「this が hisHandと違う場合 true」 2var b = !this.winTo(hisHand) //「this.winTo(hisHand)の結果の逆」 3var c = a && b // 「a b 両方trueの場合 true」 4

【比較演算子 - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

【論理演算子 - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators

投稿2018/07/13 01:48

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

js

1 return (this !== hisHand) && (!this.winTo(hisHand));

エスパーすると
「あいこではない、かつ、勝ってはいない」かどうか、要するに負けたかどうかですよね

投稿2018/07/13 01:48

編集2018/07/13 01:50
ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

リンク先もちょっと参照できないようなので正確には判断できませんが
thisはその関数自体かもしくはwindowsを返します
書き方によってことなるので詳細がわからないのでなんとも言えません

投稿2018/07/13 01:47

yambejp

総合スコア114833

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問