変数 | データ型
JavaScriptのデータ型
- 変数に入る値の種類のこと。
- データ型が異なると実行できる処理内容が変わる。
- typeof演算子でデータ型を調べられる。
データ型 | 説明 | 例 |
---|---|---|
Number | 整数値、浮動小数点値 | 777 3.1415926 |
String | シングルまたはダブルクォートで囲まれた文字の並び | 'patriot' "確固不抜" |
Boolean | 値はtrue(条件を満たす)とfalse(満たさない)のみ。 | true、false |
Array | 複数のデータの集合体 | [10,20,30] |
Object | キーと値の集合体 | { width : 90, height : 50 } |
null | オブジェクトが存在しないことを表す。値は1つのみ。 | null |
undefined |
変数が初期化されていない、あるいはプロパティが 定義されていないことを表す。値は1つのみ。 |
undefined |
NaN | 数値の未定義型。Not a number、ナンと読む。 | NaN |
型変換
数値から文字列
- String関数
String(number) - toString( )メソッド
number.toString() 引数を省略すると10進数に変換する - 自動変換
number + "" - toFixed( )メソッド
number.toFixed(0) 引数は小数点以下の桁数
文字列から数値
- 自動変換
"123"- 0 - Number( )コンストラクタ
Number("123") 10進数だけに有効 - parseInt( )関数
先頭の整数のみを評価し数値以外は無視
parseInt("3.14cm"):結果は3 - parseFloat( )関数
parseFloat("3.14cm"):結果は3.14 - eval( )
eval("123"):結果は123
異なる型の連結
異なる型を連結した際の扱いは下図の通り
型名 | 文字列と連結したときの値 | 数値と連結したときの値 |
---|---|---|
文字列型 | - | 文字列 |
数値型 | 文字列 | - |
論理型 | 'true' または 'false' | 1または0 |
null型 | 'null' | 0 |
未定義型 | 'undefined' | NaN |
文字列と数値を「+」で連結すると数値は文字列に変換される
a='1日は、'; //String b=24; //Number c='時間です' //String d=a+b+c
1日は、24時間です。 //結果 String
数値と論理値を「+」で連結すると論理値は数値に変換される
a=5; //Number b=true; //Boolean c=a+b
6 //結果 Number trueは1として扱われる
演算子の種類
算術演算子
演算子 | 読み仮名 | 働き | 使い方 | 結果 |
---|---|---|---|---|
+ | プラス | +(足す) | a = 5 + 5 | 10 |
- | マイナス | -(引く) | a = 5 - 5 | 0 |
* | アスタリスク | ×(かける) | a = 5 * 5 | 25 |
/ | スラッシュ | ÷(割る) | a = 5 / 5 | 1 |
% | パーセント | …(余り) | a = 5 % 5 | 0 |
[++]インクリメント演算子と[--]デクリメント演算子
演算子 | 名称 | 働き | 使い方 | 結果 |
---|---|---|---|---|
++ | インクリメント演算子 | 変数の値を 1増やす |
a = 1; ++a; | 2 |
-- | デクリメント演算子 | 変数の値を 1減らす |
a = 1; a--; | 0 |
前置 (++a、--a)
- インクリメント(デクリメント)
- 代入
後置 (a++、a--)
- 代入
- インクリメント(デクリメント)
前置、後置で処理の順番が異なる。
a=3; x=++a; console.log(a); // 4 console.log(x); // 4
加算処理後に代入
a=3; x=a++; console.log(a); // 4 console.log(x); // 3
加算処理前に代入
a=3; x=--a; console.log(a); // 2 console.log(x); // 2
減算処理後に代入
a=3; x=a--; console.log(a); // 2 console.log(x); // 3
減算処理前に代入
代入演算子 [ = ]
「=」は数学の等しいといった意味ではなく右辺の値を左辺の変数に代入するという
意味。
複合代入演算子
算術演算子と代入演算子を組み合わすこともできる。
演算子 | 働き | 使い方 | 結果 |
---|---|---|---|
+= | 足して代入 | a = 5; a += 5; | 10 |
-= | 引いて代入 | a = 5; a -= 5; | 0 |
*= | かけて代入 | a = 5; a *= 5; | 25 |
/= | 割って代入 | a = 5; a /= 5; | 1 |
%= | 余りを代入 | a = 5; a %= 5; | 0 |
論理演算子
演算子 | 働き | 使い方 | 意味 |
---|---|---|---|
&& | かつ | (a >= 10) && (a < 50) | aは10以上かつ50未満 |
|| | または | (a == 1) || (a ==100) | aは1または100 |
! | ~ではない | !(a == 100) | aは100ではない |
&& (and)
AかつBがtrueならばにtrue、そうでないならばfalseを返す。
|| (or)
AまたはBがtrueならばtrue、そうでないならばfalseを返す。
! (not)
trueでないならばtrue、trueならばfalseを返す。
比較演算子
> 大なり
左辺の数値が右辺の数値より大きいならばtrue、それ以外の場合はfalseを返す。
< 小なり
左辺の数値が右辺の数値より小さいならばtrue、それ以外の場合はfalseを返す。
>= 大なりイコール
左辺と右辺の値が等しいか、左辺の数値が右辺の数値より大きいならばtrue、それ以外の場合はfalseを返す。
<= 小なりイコール
左辺と右辺の値が等しいか、左辺の数値が右辺の数値より小さいならばtrue、それ以外の場合はfalseを返す。
等値演算子
[==]等しい
右辺左辺の値が、等しければtrue、等しくなければfalseを返す。
[!==]等しくない
右辺左辺の値が、等しくなければtrue、等しければfalseを返す。
[===]型も等しい
右辺左辺の値と型が、等しければtrue、等しくなければfalseを返す。
[!===]型も等しくない
右辺左辺の値と型が、等しくなければtrue、等しければfalseを返す。
さらに論理演算子を理解する
複合条件文の記述
論理演算子を用いて複数の条件式を組み合わる場合は分かりやすくする為に括弧( )を用いる。
(50<=a)&&(a<100)
aは50以上かつ100未満である
条件付き実行 && と ||
<条件式> || <関数など> 条件式がfalseならば実行する <条件式> && <関数など> 条件式がtrueならば実行する
「&&」「||」はtrueかfalseかを判定できる真偽値と用いるが、実際には指定された演算対象が真偽値であるか否かにかかわらずその一方を返す。
<script> var a = 11; (a < 10) || ( document.write( 'aは10以上' ) ); // (ア) (a < 10) && ( document.write( 'aは10未満' ) ); // (イ) </script>
(ア)は条件式がfalseだからdocument.writeメソッドが実行される。
(イ)は条件式がfasleだから実行されない。
三項演算子
条件式 ? 式1 : 式2
- 条件式は真偽値または真偽値に変換可能な値
- 条件式の値がtrueならば式1を評価した値を返し、全体の値とする
- 条件式の値がfalseならば式2を評価した値を返し、全体の値とする
var num; var sign; num = 100; sign = num >= 0 ? '正' : '負'; document.write("<h1>" + num + "は" + sign + "</h1>"); num = -88; sign = num >= 0 ? '正' : '負'; document.write("<h1>" + num + "は" + sign + "</h1>");
1つめの三項演算子の条件式「num>0」はtrue。だから式1「'正'」が評価されて返される。結果変数signには条件演算子全体の値である'正'が代入される。
2つめは変数numには-88が入っているので条件式はfalse。従って式2「'負'」が評価され返される。