2014-10-11

2014-10-11

異なる型の連結と変換Add Star

 

 

異なる型の連結

文字列と数値を「+」で結合すると、数値は文字列に変換されます。


 

 

a = '1日は、';

b = 24;

c = '時間です。';

d = a + b + c;

 

 

a:文字列を代入します。

b:数値を代入します。

c:文字列を代入します。


 

f:id:web-0127:20140315194108j:image

 



数値と論理値を「+」で連結すると、論理値は数値に変換されます。

数値に変換されたとき、「true」は「1」、「false」は「0」として扱われます。


 

 

a = 5;

b = true;

c = a + b;

 

 

a:数値を代入します。

b:論理値を代入します。true は 1 として扱われます。


 

f:id:web-0127:20140315194338j:image

 


異なる型の変数を連結したときには、次のように扱われます。

 

 

 

型名文字列と連結したときの値数値と連結したときの値
文字列型 文字列
数値型 文字列
論理型 '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( メッセージ );

 

 


 

 

変数 = confirm( メッセージ );

 

 


ユーザーにデータを入力してもらうダイアログボックス
  • promptメソッドは、指定したウィンドウに文字ダイアログを表示する
  • window.prompt('ダイアログに表示される文字列','入力欄の初期値')と指定する

 

 

prompt( メッセージ );

 

 

 

 

変数 = prompt( メッセージ, デフォルトの値 );

 

 


文字列を数値に変換
  • 入力された数字が文字列ではなく、数値として認識させる

 

 

parseInt( );

 

 


<!DOCTYPE html>
<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>

男性・女性を区別する
  • 条件分岐(if文)が入ります
<!DOCTYPE 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>

 

f:id:web-0127:20140315191147j:image

 


 

f:id:web-0127:20140315191345j:image

 


 

f:id:web-0127:20140315191512j:image

 



<!DOCTYPE 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>

この結果は「文字列 + 数値」で「文字列 + 文字列」になり

 

f:id:web-0127:20140315194724j:image

 

となります。

入力された「値」は、文字列として扱われます。


 

parseInt関数

 

  • 文字列を整数に変換するにはparseInt関数
parseInt('10')         -->  10
parseInt('2008year')   -->  2008
parseInt('-77point')   -->  -77

  • parseInt関数を使い、入力された「値」を整数にします
<!DOCTYPE html>
<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>

 

f:id:web-0127:20140315195321j:image