異なる型の連結
文字列と数値を「+」で結合すると、数値は文字列に変換されます。
a = '1日は、';
b = 24;
c = '時間です。';
d = a + b + c;
a:文字列を代入します。
b:数値を代入します。
c:文字列を代入します。
数値と論理値を「+」で連結すると、論理値は数値に変換されます。
数値に変換されたとき、「true」は「1」、「false」は「0」として扱われます。
a = 5;
b = true;
c = a + b;
a:数値を代入します。
b:論理値を代入します。true は 1 として扱われます。
異なる型の変数を連結したときには、次のように扱われます。
型名 | 文字列と連結したときの値 | 数値と連結したときの値 |
文字列型 |
- |
文字列 |
数値型 |
文字列 |
- |
論理型 |
'true' または 'false' |
1または0 |
null型 |
'null' |
0 |
未定義型 |
'undefined' |
NaN |
型の変換
JavaScriptで用意されている関数を使うと、文字列を数値に変換できます。
parseInt()関数
パースイント関数は、文字列を整数に変換します。
a = '411';
num = parseInt(a);
文字列に小数点以下があるときは、小数点以下は切り捨てられます。
parseFloat()関数
パースフロート関数は、文字列を小数に変換します。
a = '411.82';
num = parseFloat(a);
toString()メソッド
トゥストリングメソッドは、いろいろな型を文字列に変換します。
a = '411';
b = true;
str = a.toString();
boo = b.toString();
str:数値411を文字列に変換します。
boo:論理値trueを文字列に変換します。
変数aと変数bは、一時的にオブジェクトに変換されます。
入力ダイアログボックスを表示
ユーザーに確認を求めるダイアログボックス
- confirmメソッドは「戻り値を返す」
- ブーリアン型「true(真)」または「false(偽)」
ユーザーにデータを入力してもらうダイアログボックス
- promptメソッドは、指定したウィンドウに文字ダイアログを表示する
- window.prompt('ダイアログに表示される文字列','入力欄の初期値')と指定する
変数 = prompt( メッセージ, デフォルトの値 );
文字列を数値に変換
- 入力された数字が文字列ではなく、数値として認識させる
<htmllang="ja">
<head>
<metacharset="UTF-8">
<title>標準体重</title>
</head>
<body>
<script>
var height;
var weight;
height = prompt('身長を入力してください', '半角数字 例 170');
height = parseInt(height);
weight = (height -100) * 0.9;
document.write('<h1>' + '身長が' + height + 'cmの人の標準体重は' + weight + 'kgです。' + '</h1>');
</script>
</body>
</html>
男性・女性を区別する
<htmllang="ja">
<head>
<metacharset="UTF-8">
<title>標準体重</title>
</head>
<body>
<script>
var height;
var weight;
var man;
man = confirm('あなたは男性ですか?');
height = prompt('身長を入力してください', '半角数字 例180');
height = parseInt( height );
if( man ){
weight = ( height -80) * 0.7;
}else{
weight = ( height -70) * 0.6;
}
document.write('<h1>' + '身長が' + height + 'cmの');
if( man ){
document.write('男性の標準体重は');
}else{
document.write('女性の標準体重は');
}
document.write( weight + 'kgです。' + '</h1>');
</script>
</body>
</html>
<htmllang="ja">
<head>
<metacharset="UTF-8">
<title>平成を西暦に変換する</title>
</head>
<body>
<script>
var heisei;
var fullYear;
var message;
heisei = prompt('平成の年号を半角数字で入力してください。', '例 26');
fullYear = heisei + 1988;
message = '平成' + heisei + '年は' + '西暦' + fullYear + '年です。';
alert(message);
</script>
</body>
</html>
この結果は「文字列 + 数値」で「文字列 + 文字列」になり
となります。
入力された「値」は、文字列として扱われます。
parseInt関数
parseInt('10') --> 10
parseInt('2008year') --> 2008
parseInt('-77point') --> -77
- parseInt関数を使い、入力された「値」を整数にします
<htmllang="ja">
<head>
<metacharset="UTF-8">
<title>平成を西暦に変換する</title>
</head>
<body>
<script>
var heisei;
var fullYear;
var message;
heisei = prompt('平成の年号を半角数字で入力してください。', '例 26');
fullYear = parseInt(heisei) + 1988;
message = '平成' + heisei + '年は' + '西暦' + fullYear + '年です。';
alert(message);
</script>
</body>
</html>