JavaScriptの基本-1
参考書籍 : JavaScript本格入門
・JavaScriptの基本的な記法
Hello World!
window.alert("Hello World!");
JavaScript擬似プロトコルでJavaScriptを実行することもできる。
以下のリンクをクリックすると、alert()が実行される
<a href="JavaScript:window.alert('Hello World!')">link</a>
文のルール
1, 末尾にセミコロン;をつける
2, 文の途中に空白/タブや改行を含めることが可能
3, 大文字、小文字は厳密に区別される
コメント
// 単一行コメント /* 複数行コメント */ /** * ドキュメンテーションコメント */
・変数/定数
変数はvarで宣言する。宣言時に初期値を設定できる
var x, y; var msg = 'Hello World!';
初期値を設定しない場合、undefinedという特別な値が変数に割り当てられる。
var無しでも変数宣言はできるが、変数がグローバルスコープのプロパティとなるため非推薦
let命令でも、変数を宣言できる。let命令はES2015で追加された
varとの違いは、
1, 変数名の重複を許可しない
2, ブロックスコープを認識する
命名規則
変数の1文字目は英字/アンダースコア/ドル記号のいずれか
1文字目がアンダースコアの変数はクラスのプロパティに使われる。
ドル記号はjQueryオブジェクトを含む変数に使われている。
ローカル変数は、ローワーキャメルケースで命名する。 ex) lastName
ES2015から、constで定数を宣言できる。
定数は、全て大文字で、単語をアンダースコアでつなげて命名する。 ex) CONST_NAME
・データ型
JavaScriptは動的型付け言語なので、変数宣言時にデータ型を意識する必要はない。
基本型として、数値型、文字列型、真偽型、シンボル型、特殊型(null, undefined)がある。
参照型は、配列、オブジェクト、関数がある。
リテラル表現
1, 数値リテラル : 整数と浮動小数点数がある。
100, 0xFF, 0o60, 0b11, 1.5, 3.14e5
2, 文字列リテラル : ''または""で囲む。エスケープ文字を含められる
'Hello World!', "Hello World!", 'Hello World!\n'
3, テンプレート文字列 : ES2015から、''(バッククオート)で囲むことで、文字列への変数の埋め込みや、改行などをそのまま記述できる
'Hello ${name}.
See you.'
4, 配列リテラル
['JavaScript', 1, ['jQuery', 'prototype.js']]
5, オブジェクトリテラル : 名前をキーとする配列、連想配列とも呼ばれる。JavaScriptでは連想配列とオブジェクトは同じものを指す
キーの命名規則は変数と同じく、変数の1文字目は英字/アンダースコア/ドル記号のいずれかになる。
{ x:1, y:2, z:3 }
6, 関数リテラル
function(x, y){return (x + y);}
7, 未定義型 undefined
8, null : nullは空であることを示すために、意識的に使用する。
・演算子
1, 算術演算子 : 基本的な演算、オペランドのデータ型により動作が変わる
+, -, *, /, %, ++, --
2, 代入演算子 : 基本型の場合はコピーが、参照型の場合は参照が渡される。定数には再代入できない
=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
2-1, 分割代入 : 配列、オブジェクトをまとめて変数に代入。オブジェクトの分割代入はES2015から
let data = [56, 40, 26, 82, 19, 17, 73, 99];
let [x0, x1, x2, x3, x4, x5, x6, x7] = data;
let book = { title: 'Javaポケットリファレンス', publish: '技術評論社', price: 2680 };
// 変数名とキーを対応させて代入する。memoに対応するキーはないので、デフォルトのなしになる。
let { price, title, memo = 'なし' };
3, 比較演算子 : 真偽を返す
==, !=, <, <=, >, >=, ===, !==, ?:
4, 論理演算子 : 真偽値を論理的に結合。左式の評価により、右式が評価されるかが変わる。
&&, ||, !
5, ビット演算子 : 整数値をビット演算する
&, |, ^, ~, <<, >>, >>>
6, その他の演算子
,(カンマ), delete, instanceof, new, typeof, void
演算子には優先度と結合則がある。