代入演算子

var=exp

expをvarに代入する。

算術演算子

exp1 + exp2

加算演算子

exp1 - exp2

減算演算子

exp1 * exp2

乗算します。

exp1 / exp2

除算します。

exp1 % exp2

剰余を求めます。

++exp

expに1を足してから値を返します。

exp++

expに1を足す前に値を返します。

--exp

expに1を引いてから値を返します。

exp--

expに1を足く前に値を返します。

単項演算子

-

符号を反転させます。

!

論理を否定します。

複合代入演算子

var+=exp // var=var+exp
var-=exp // var=var-exp
var*=exp // var=var*exp
var/=exp // var=var/exp
var%=exp // var=var%exp
var&=exp // var=var&exp
var|=exp // var=var|exp
var^=exp // var=var^exp
var<<=exp // var=var<<exp
var>>=exp // var=var>>exp
var>>>=exp // var=var>>>exp

3項演算子

exp1 ? exp2 : exp3

exp1がtrueの場合exp2をfalseの場合はexp3を返す。

typeof(exp)

expの型を表す文字列を返します。
typeof(true) // "boolean"
typeof("zyx") // "string"
typeof(987.65) // "number"
typeof(new object()) // "object"
typeof(function() {}) // "function"
typeof(undefined) // "undefined"
typeof(null) // "object"

関係演算子

exp1 < exp2

右側が大きいときtrue

exp1 > exp2

左側が大きいときtrue

exp1 <= exp2

右側が大きいかまたは等しいときtrue

exp1 >= exp2

左側が大きいときまたは等しいときtrue

exp1 == exp2

値が等しいとき。
以下の場合もtrueとなります。
a=10;
b="10"
a==b

exp1 != exp2

値が等しくないとき。

exp1 === exp2

値も型も等しいとき。 以下の場合はfalseとなります。
a=10;
b="10"
a==b

exp1 !== exp2

値か型が等しくないとき。

論理演算子

exp1 && exp2

exp1exp2結果
falsefalsefalse
falsetruefalse
truefalsefalse
truetruetrue

exp1 || exp2

exp1exp2結果
falsefalsefalse
falsetruetrue
truefalsetrue
truetruetrue

! exp1

exp1結果
falsetrue
truefalse

ビット演算子

シフト演算子

 シフト演算子の場合、値は32ビット整数に変換されてからシフトされます。

算術シフト exp1>>exp1

 exp1を右へexp1ビット右シフトさせます。符号(最上位ビット)は維持し左側には符号ビット(赤字)を挿入します。以下は4bit右シフトさせた例を示します。
exp1   0x87654321 0b10000111011001010100001100100001
シフト後 0xf8765432 0b11111000011101100101010000110010

論理シフト exp1>>>exp2

 exp1を右へexp1ビット右シフトさせます。左側には0(赤字)を挿入します。以下は4bit右シフトさせた例を示します。
exp1   0x87654321 0b10000111011001010100001100100001
シフト後 0x08765432 0b00001000011101100101010000110010

論理シフト exp1<<exp2

 exp1を右へexp1ビット左シフトさせます。右側には0(赤字)を挿入します。以下は4bit左シフトさせた例を示します。
exp1   0x87654321 0b10000111011001010100001100100001
シフト後 0x76543210 0b01110110010101000011001000010000

16進数、2進数での表示

 シフトの結果を見るために16進数、2進数変換にtoStringを使用しましたが、負の値の場合正常に動作しません。
 toStringする前に>>>演算子で整数に変換してからtoStringで文字列変換するとうまくいきます。以下に動作例を示します。
 10進数の場合、例えば負の0x87654321が2271560481に変換されます。>>演算子で整数に変換すると上手くいきます。
 ちなみにExcel 2010の場合、内部的に40bit長(16進数で10桁使用できる)の様なので32bitで計算するJavascriptとは負の場合答えが異なります。
 LibreOffice Calcの場合、内部的に32bitの様です。ただし符号付きではないようです。

exp1 & exp2

値を32ビット整数とみなしてビットごとのANDを取ります。
ビットごとの真理値表
exp1exp2結果
000
010
100
111

exp1 | exp2

値を32ビット整数とみなしてビットごとのORを取ります。
ビットごとの真理値表
exp1exp2結果
000
011
101
111

exp1 ^ exp2

値を32ビット整数とみなしてビットごとのXORを取ります。
ビットごとの真理値表
exp1exp2結果
000
011
101
110

~exp1

値を32ビット整数とみなしてビットごとのNOTを取ります。
ビットごとの真理値表
exp1結果
01
10