JavaScript プログラミング入門 2-3 式と演算子 2006/10/12 神津 健太
2-3-1 式の概要 式 : 値と演算子の組み合わせ sum = 10 + 1; newStr = myName + “is taro.”; 2-3-1 式の概要 式 : 値と演算子の組み合わせ ・「10」と「1」を足して変数sumに入れる sum = 10 + 1; ・変数myNameと文字列「is taro」をつなげた文字列を変数newStrに入れる newStr = myName + “is taro.”; ・以下のような記述も可能 b = (a=3) * 2;
2-3-1 式の概要 二項演算子:2つの値に対して演算を行う 単項演算子:1つの値に対して演算を行う i+1 変数iに1を足す 2-3-1 式の概要 二項演算子:2つの値に対して演算を行う i+1 変数iに1を足す x/y 変数xを変数yで割る 単項演算子:1つの値に対して演算を行う ++i 変数iの値を1増やす -b 変数bの符号を反転 !ok 変数okの真理値を反転
2-3-2 さまざまな演算子 算術演算子 二項演算子 : 「+」 「-」 「*」 「/」 「%」 単項演算子 : 「-」 「++」 「--」 2-3-2 さまざまな演算子 算術演算子 二項演算子 : 「+」 「-」 「*」 「/」 「%」 単項演算子 : 「-」 「++」 「--」 等価比較演算子 : 「==」 「!=」 比較演算子 : 「<」 「>」 「<=」 「>=」 論理演算子 : 「!」 「&&」 「||」 ビット演算子 : 「&」 「|」 「^」 シフト演算子 : 「<<」 「>>」 「>>>」 (演算子の優先順位は(1版)P.53)
2-3-2 さまざまな演算子 ビット演算子 : 「&」 論理積(and) 「|」 論理和(or) 「^」 排他的論理和(xor) 2-3-2 さまざまな演算子 ビット演算子 : 「&」 論理積(and) 「|」 論理和(or) 「^」 排他的論理和(xor) 10進数 2進数 9 9 1001 14 14 1110 9 & 14 8 1000 9 | 14 15 1111 9 ^ 14 7 0111
2-3-2 さまざまな演算子 シフト演算子 : 「<<」 左シフト 「>>」 右算術シフト 2-3-2 さまざまな演算子 シフト演算子 : 「<<」 左シフト 「>>」 右算術シフト 「>>>」 右論理シフト 「<<」の例 10<<1; 10を左は1ビットシフト、空になったビットには0が入る 10 | 00001010 | <<1 | 00010100 | = 20 JavaScriptの場合、整数は32ビット。ここでは便宜上8ビット。
2-3-2 さまざまな演算子 「>>」の例 -10>>1; 最上位ビットが保存されるようにシフト 2-3-2 さまざまな演算子 「>>」の例 -10>>1; 最上位ビットが保存されるようにシフト -10 | 11110110 | >>1 | 11111011 | = -5 「>>>」の例 -10>>>1; 符号ビットは保存されずにそのままシフト -10 | 11111111 11111111 111111111 11110110 | >>1 | 01111111 11111111 111111111 11111011 | = 2147483643
2-3-4 値の型を調べるtypeof演算子 typeof : 変数にどんな型の値が入れられているか調べる var today = new Date(); var month = today.getMonth(); var myNum = 15; var myName = “WildDg”; typeof today → object typeof Date → function typeof myNum → number typeof myName → string typeof ng → undefined
宿題 ビット演算子、シフト演算子の電卓を作りなさい