JavaScript: 文法などのノート
こまごました話。テストサンプルなど。テストプログラムの実行とソース表示
- TestJS_codetest_currentScript01.html
- TestJS_RegExp_replace01.html
テストプログラムのサンプル。
変数宣言、グローバル変数など
- TestJS_let_var01.html
変数宣言、let と var の違い。var は現在では使いません。 - TestJS_global_func01.html
グローバル関数は window オブジェクトに所属するメソッドになります。
演算子、if で比較、instanceof, typeof など
instanceof 演算子, typeof 演算子
比較演算子
データ型 : 原始型、参照型など
◎ データ型 1) 原始型 (プリミティブ型, Primitive Type) string 文字列 オブジェクトの String とは異なります。 number 数値 オブジェクトの Number とは異なります。 BigInt 長整数 Boolean 論理値 値は true = 1, false = 0 null undefined Symbol シンボル ES2015 で導入されました。 2) 参照型 Object オブジェクト JavaScript では Object は連想配列と同じです。 + Array 配列 Array は Object のサブクラスです。
null, undefined
数値系 (2023/12)
JavaScript では以下の処理ではいろいろ落とし穴があるので注意が必要です。- 文字列が数値かどうか?、parseInt() などで数値に変換したらどうなるか?。
- 変数が数値か数値でないかの確認。
文字列を数値に変換する
- TestJS_Number01.html
Number()。面白い場合があるので注意。 - TestJS_parseInt01.html
関数 parseInt()。面白い場合があるので注意。 - TestJS_parseFloat01.html
関数 parseFloat()。 - TestJS_array_filter_number01.html
配列から数値を取り出す。Number.isFinite() などのサンプル。
グローバル関数 isNaN() と Number.isNaN()
- TestJS_isNaN01.html
Number.isNaN() とグローバル関数 isNaN() のテスト。面白い場合があるので注意。
- Number.isNaN() も isNaN() も原始型の数値 (文字列の数字ではない)
かどうかの判定に使わない方が良いです。
null, true, 空の配列などでも false を返します。
数値の判定は Number.isFinite() を見てください。
-
MDN: Number.isNaN()
IE では動作しなかった新しい関数です。 -
グローバル関数 isNaN()
昔からあった古い関数です。
Number.isFinite() とグローバル関数 isFinite()
- TestJS_isFinite01.html
Number.isFinite() とグローバル関数 isFinite() のテスト。
-
MDN: Number.isFinite()
IE では動作しなかった新しい関数です。こちらを使います。
-
MDN: グローバル関数 isFinite()
昔からあった古い関数です。こちらは使わない方が良いです。
typeof と instanceof
- TestJS_typeof_number01.html
typeof (原始型の数値) - TestJS_instanceof_Number01.html
instanceof Number のテスト。
原始型 string と String オブジェクト
JavaScript では new String() で文字列を作らない方が良いです。
let s1 = new String("abc"); let s2 = new String("abc"); if (s1 == s2) は false になる点に注意。
- TestJS_string_compare02.html
new String() で == 比較。 - TestJS_instanceof_String01.html
JavaScript: 文字列の処理: 文字と文字コード
制御
関数 (2023/12)
- TestJS_function02.html
Function、関数を変数に代入、関数式など
関数式、コールバック処理
アロー関数
関数の引数の個数が不定の場合の処理 (2023/11)
引数の個数が不定 (可変長) の処理を行う場合、 下の 2つの方法があります。
- 残余引数 を使う。
残余引数は IE 時代にはなかった最近の書き方です。
MDN: 残余引数 - arguments を使う。
arguments は関数の引数を表すオブジェクトです。 IE 時代以前の昔からあった暗黙で使える変数名です。
MDN: arguments
- TestJS_function_rest_parameters01.html
残余引数のサンプル。 - TestJS_RegExp_replace_template03.html
2020年代風。残余引数で %s を含むテンプレートの文字列を置換するサンプル。
JavaScript: 文字列を置換する (2)
- TestJS_function_arguments01.html
arguments のサンプル。 - TestJS_RegExp_replace_template02.html
昔風。arguments で %s を含むテンプレート文字列を置換するサンプル。
prototype
現在では prototype を使用した書き方は使いません。 クラスは class と constructor で書けます。
- TestJS_function03.html
静的な関数とオブジェクトのメソッド (prototype 関数) は別物。
クラス、オブジェクト
JavaScript では Object = 連想配列です
Array は Object のサブクラスです
いろいろ
- JavaScript: クラス (class) (1)
- JavaScript 次の一歩 (1)
- JavaScript: クラスの書き方 (IE時代の昔話)
IE 時代、ES2015 より前の昔風の書き方。