javascript - 基本①
・実行方法
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SJIS" /> <title> JavaScript実行方法 </title> </head> <body> <!-- javascriptのURL --> <a href="javascript:alert('JavaScript実行');">JavaScript実行</a> <!-- javascriptのタグ --> <script type="text/javascript"> alert("JavaScript実行"); </script> </body> </html>
・javascript導入
<script src="test.js" type="text/javascript"></script>
・変数宣言
- 値を代入する際に型が決まる
- 違う型を代入すると型が変わる
- 明示宣言は、必ず変数を定義する
- 暗黙宣言は、システム全体で変数がなければ定義する
<script type="text/javascript"> // 暗黙宣言 a = "Hello JavaScript"; alert(a); // 明示宣言 var b; b = true; alert(b); // 複数明示宣言 var a,b,c; </script>
・自動型変換
- マイナス : 文字列が数値に変換される
- プラス : 文字列が連結される
- 自動変換は決められており、システムが行う。
<script type="text/javascript"> // 文字列 var a = "3.145"; // 数値に自動変換する var b = a - 2; // 連結される var c = a + 2; // 結果は // 1.145 // 3.1452 alert (b + "\n" + c); </script>
・明示型変換
- toString()
- parseInt()
- parseFloat()
数値変換の場合
- 文字列変換失敗は、NaN
- undefined,null,boolean,obejctは一律NaN
<script type="text/javascript"> var a = "3.145"; var b = a + 2; // 明示的型変換 var c = parseFloat(a) + 2; alert (b + "\n" + c); </script>
・変数の範囲
<script type="text/javascript"> var global = "global"; function test(o) { // グローバル var local = "local"; if (1 == 1) { // ここもローカル変数になる // block変数はない var block = "block"; } // alert(global + "\n" + local + "\n" + block); } </script>
・基本型
- 数値
- boolean
- 文字列
- undefined : 未定義
- null : 値が空
<script type="text/javascript"> a = 0x13; // 16進数 b = 014; // 8進数 c = 45.0; // 10進数 d = 3.12e1; alert(a + '---' + b + '---' + c + '---' + d); </script>
<script type="text/javascript"> var a = "0123456789AbCd0123"; alert("対象文字列 : " + a + "\n" + "a.length : " + a.length + "\n" + "a.charAt(5) : " + a.charAt(5) + "\n" + "a.charCodeAt(5) : " + a.charCodeAt(5) + "\n" + "a.toUpperCase() : " + a.toUpperCase() + "\n" + "a.toLowerCase() : " + a.toLowerCase() + "\n" + "a.indexOf('2') : " + a.indexOf("2") + "\n" + "a.lastIndexOf('0') : " + a.lastIndexOf("0") + "\n" + "a.substring(1, 5) : " + a.substring(1, 5) + "\n" + "a.substring(5) : " + a.substring(5) + "\n" + "a.slice(3, 7) : " + a.slice(3, 7) + "\n" + "a.slice(3, -7) : " + a.slice(3, -7) + "\n" + "a.slice(3, -7) : " + a.slice(3, -7) + "\n" + "a.search('AbC') : " + a.search("AbC") + "\n" + "a.match(/\d/g) : " + a.match(/\d/g) + "\n" ); </script>
・複合型
Objectタイプ
- Array
- Data
- Error
- Function
- Math
- Number
- Object
- String
Arrayタイプ
<script type="text/javascript"> var a = [3 , 5 , 23]; var b = []; var c = new Array(); // 生成 b[0] = 'hello'; b[1] = 5; c[5] = true; // 違う型でもOK c[7] = null; // 違う型でもOK alert(a + "\n" + b + "\n" + c + "\na長さ:" + a.length + "\nb長さ:" + b.length + "\nc長さ:" + c.length); </script>
Functionタイプ
- 引数、戻り値型不要
- functionキーワードで定義
<script type="text/javascript"> function judgeAge(age) { // ageは数値である必要がある if (typeof age === "number") { if (age > 60) { alert("年寄り"); } else if (age > 40) { alert("中年"); } else if (age > 15) { alert("青年"); } else { alert("児童"); } } else { alert("歌方駅倬葎方峙"); } } // 実行 judgeAge(46); </script>
・演算子
演算
- +, -, *, /, %
- &, |, ~, ^, <<, >>, >>>
- +=, -=, *=, /=, %=
- &=, |=, ~=, ^=, <<=, >>=, >>>=
比較
- >, >=, <, <=, !=, ==, !==, ===
- !==, === は型と値が両方比較する
- >, >=, <, <=, !=, ==, !==, ===
<script type="text/javascript"> // ture alert(5 == "5"); // false alert(5 === "5"); </script>
論理
- &&, ||, !
-
- (expression) ? if-true-statement : if-false-statement
<script type="text/javascript"> 5 > 3 ? alert("5>3") : alert("5<3") ; </script>
- void演算 : 強制的に戻り値なしにする
<script type="text/javascript"> var a , b , c , d; // aに強制的にundefined設定 a = void(b = 5, c = 7, d = 56); alert('a = ' + a + ' b = ' + b + ' c = ' + c + ' d = ' + d); </script>
typeof演算子
- undefined : undefined
- null値 : object
- boolean値 : boolean
- 数値 : number
- 文字列 : string
- オブジェクト : object
- Function : function
<script type="text/javascript"> var a = 5; var b = true; var str = "javascript"; alert(typeof(a) + "\n" + typeof(b) + "\n" + typeof(str)); </script>
- instanceof
<script type="text/javascript"> var a = [4, 5]; alert(a instanceof Array); // ture alert(a instanceof Object); // ture </script>