JavaScript 超入門(5) 演算子


Javascriptを学んでみようという人をターゲットに、JavaScriptの基本を解説していきたいと思います。

他の言語(特にJava等のオブジェクト指向言語)は少しでもかじったことがあるけど、JavaScriptはまだ・・・って人を想定しています。

演算子

特定の演算を行う+や=などの記号が演算子です。
JavaScriptにもCやJavaといった他の言語とほぼ同様に演算子が用意されています。

  • 算術演算子
  • 代入演算子
  • 比較演算子
  • 論理演算子
  • ビット演算子
  • 特殊演算子

基本的な用法は他の言語と大きく変わらないので、それぞれについて細かく見ていくことは行いません。
ここでは取り扱いを注意しておきたい等価演算子、他では見ない特殊な演算子について触れておきたと思います。

等価演算子

等価演算子”==”は左辺と右辺の値を比較し、「等しければ」trueを返し、それ以外はfalseを返します。
さてこの「等しければ」というのが、基本データ型と参照型で意味合いが違ってくるという点がひとつ気をつけなければならないところです。
次の基本データ型のひとつである数値型と参照型に含まれる配列のそれぞれの比較をみてみましょう。

var a = 5;
var b = 5;
document.writeln(a == b); //勿論trueです

var arrayA = [1,2,3];
var arrayB = [1,2,3];
document.writeln(arrayA == arrayB); //falseが返ります

基本データ型は変数にはデータの値そのものが格納されます。
一方参照型は変数には実際のデータの格納場所(アドレス)である「参照値」が格納されます。
等価演算子による比較を行っても参照値の比較にしかなりません。
一見同じに見えても指している場所が異なるので、べつものとして評価されます。

初心者はハマりやすいところですので注意しましょう。

“==”と”===”の違い

JavaScriptには値を比較して等しいか判別する演算子として”==”以外に”===”があります。
値を比較するという点ではどちらも同じですが、値の型に対する振る舞いが異なります。

var num = 5;
var str = '5';

document.writeln(num == str); //true
document.writeln(num === str); //false

numは数値型です。strは文字列型です。
“==”の場合、型が異なると型変換を行なって評価します。
“===”の場合、型が同一かも含めて厳密に評価します。

不用意に”==”を使うとバグを生みかねません。
基本的には厳密な”===”を使うのがよいでしょう。

特殊演算子

JavaScriptにおける特殊な役割の演算子についていくつか紹介しておきます。

typeof演算子

typeof演算子は対象の型を文字列で返します。

var hogeNum = 10;
var hogeString = 'hello';
var hogeArray = [1,2,3];
var hogeObject = {};
var hogeBoolean = true;

typeof hogeNum; //number
typeof hogeString; //string
typeof hogeArray; //object
typeof hogeObject; //object
typeof hogeBoolean; //boolean

delete演算子

delete演算子はオブジェクトやオブジェクトのプロパティ、配列のの要素を削除する演算子です。
また削除可能でならばtrue、不可能ならfalseを返します。

var user = {name : 'tech', age: 20};
document.writeln(user.name); //techを表示
delete user.name;
document.writeln(user.name); //undefinedを表示

削除されたプロパティにはundefinedが入ります。

in演算子

in演算子は指定のプロパティがオブジェクトに存在するかのチェック、あるいは指定のインデックスが配列に存在するのかのチェックを行ないます。存在すればtrueを返します。

var user = {name : 'tech', age: 20};
"name" in user; //true
"age" in user; //true
"password" in user; //false

他にinstanceofやvoid、this、newなどの特殊演算子があります。

thisやnewは特に重要な使い方をするので、それらが必要となるところの学習を進める中で調べてみてください。

以上、等価演算子の注意したいところと特殊演算子を抜粋して解説しました。

  • このエントリーをはてなブックマークに追加

PAGE TOP