Upgrade to Pro — share decks privately, control downloads, hide ads and more …

javascriptの基本からjavascriptを使った動的な動きについて柔軟に対応できる力...

Avatar for BigWestGang BigWestGang
December 19, 2018
60

javascriptの基本からjavascriptを使った動的な動きについて柔軟に対応できる力をつけるjs勉強会 第二回

Avatar for BigWestGang

BigWestGang

December 19, 2018

More Decks by BigWestGang

Transcript

  1. 条件式とは 条件式とは、 式 と 条件⽂ で構築される ⽐較演算⼦ または 論理演算⼦ を⽤いて条件に合うかをチェ

    ックする構⽂です。 次のスライドから、 演算⼦ について詳しく⾒ていきま す
  2. typeof 演算⼦ typeof 演算⼦は、値の型のタイプを返却する演算⼦ です。 console.log(typeof 42); // expected output:

    "number" console.log(typeof 'blubber'); // expected output: "string" console.log(typeof true); // expected output: "boolean" console.log(typeof declaredButUndefinedVariable); // expected output: "undefined";
  3. ビット否定演算⼦ ビット否定演算⼦は下記の特徴を持ちます。 基本的に無理をして使わなくても良いです。 var a = 0 var b =

    1 console.log(~a) // 1 console.log(~b) // 0 // また、任意の数 xに対して以下の、出⼒を⾏います。 // -(x + 1) var c = 6 console.log(~c) // -7
  4. 算術演算⼦ + は加算。⽂字列の場合は結合。 - は減産。 / は除算。 * は乗算。 %

    は剰余(あまりはいくつか) ** はべき乗演算⼦ console.log(1 + 2) // 3 console.log(4 - 2) // 2 console.log(4 / 2) // 2 console.log(5 * 2) // 10 console.log(5 % 2) // 1 console.log(2 ** 4) // 2^4 => 16
  5. in 演算⼦ in 演算⼦は与えられたプロパティをオブジェクトが 持っているかを判別します。 // Arrays var trees =

    ['redwood', 'bay', 'cedar', 'oak', 'maple'] 0 in trees // true を返す 3 in trees // true を返す 6 in trees // false を返す 'bay' in trees // false を返す (インデックスの指す値ではなく、 // インデックスの数字を指定しなければならない) 'length' in trees // true を返す (length は Array のプロパティ) Symbol.iterator in trees // true を返す (配列は反復可能。ES2015 以上 // 定義済みオブジェクト 'PI' in Math // true を返す // ユーザ定義オブジェクト var mycar = { make: 'Honda', model: 'Accord', year: 1998 }
  6. バイナリ論理演算⼦ && 複数の式と組み合わせて両⽅が true の場合は true を、そうでない場合は false を返します。 ||

    複数の式と組み合わせてどちらか⽚⽅が true の 場合は true を、どちらも false の場合は false を返 却します。
  7. if ⽂ if ⽂は下記のように記述します。 // ifだけのケース if (式) { //

    式が真の時に実⾏したい命令⽂。 } // if elseのケース if (式) { // 式が真の時に実⾏したい命令⽂ } else { // 式が偽の時に実⾏したい命令⽂ }
  8. // 複数の式を順番に評価したいケース if (式A) { // 式Aが真のとき⼆実⾏したいケース } elseif (式B)

    { // 式Aが真ではなく、式Bが真の時に実⾏したいケース } elseif (式C) { // 式A,式Bが真では無く式Cが真の時に実⾏したいケース } else { // 式A,B,Cいずれも偽の時に実⾏したいケース } // ifの⼊れ⼦ if (式A) { if (式B) { // AとBが真の時に実⾏したいケース } }
  9. 三項演算⼦は簡単な if~else の関係を表すので便利で す。 // 三項演算⼦ const zero = 0

    const a = zero < 1 ? '太郎' : '⽥中' //これは下記のif⽂と(ほぼ)等価です。 const zero = 0 if (zero < 1) { const a = '太郎' } else { const a = '⽥中' }
  10. 以下のように記述します。 switch (式) { case ケースA: // 式がケースAに該当する時に実⾏される命令⽂。 break //

    式の評価を中断する命令⽂ case ケースB: // 式がケースBに該当する時に実⾏される命令⽂ break // 式の評価を中断する命令⽂ default: //すべての該当するケースがなかった場合に実⾏したい命令⽂ }
  11. switch ⽂の利⽤ケース // 1 ~100までのランダムな数字が返る関数 const rand = function(n) {

    return Math.floor(Math.random() * n) + 1 } const val = rand(10) switch (val) { case 1: break case 2: break case 3: break //省略 case 100: default: }
  12. 複数の命令を実⾏したいケース switch (式) { case A: case B: case C:

    //例えば、case A case B case Cどれでも該当する場合は全てに⼊る。 }