📘

JavaScript 練習 01

2023/03/19に公開

練習1

1 console.logを使ってHelloWorldを出力する

> console.log('HelloWorld');
HelloWorld

2 console.logを使って自分の名前を出力する

> console.log('山田 太郎');
山田 太郎

3 「cat」という変数に10、「dog」という変数に30を代入する

var cat = 10;
var dog = 30;

4 console.logを使ってcat の値とdogの値を確認する

> console.log(cat);
10

> console.log(dog);
30

練習2

1 console.log( 1 + 2 + 3 + 4 + 5)の実行結果はどうなるか

> console.log( 1 + 2 + 3 + 4 + 5 )
15

2 console.log('1' + '2’ + '3' + '4' + '5')の実行結果はどうなるか

> console.log('1' + '2' + '3' + '4' + '5')
12345

3 問1と2の結果はどうしてそうなるか

型の問題から、1は数値として計算され、2は文字列として計算されたため。

4 JavaScriptのvar, let, constの再宣言、再代入の特徴を調べよう

(できれば)

varの場合

> var hoge1 = 10
> var hoge1 = 20
> hoge1 = 30
30
> console.log(hoge1)
30

特にエラーは起きない

letの場合

> let hoge1 = 10
> let hoge1 = 20
Uncaught SyntaxError: Identifier 'hoge1' has already been declared
> hoge1 = 30
30
> console.log(hoge1)
30

再宣言時にエラーになる

constの場合

> const hoge1 = 10
> const hoge1 = 20
Uncaught SyntaxError: Identifier 'hoge1' has already been declared
> hoge1 = 30
Uncaught TypeError: Assignment to constant variable.
> console.log(hoge1)
10

再宣言、再代入時にエラーになる

練習3

次の計算を行いましょう

a

> console.log(1038403 + 294383)
1332786

b

> console.log(29494 - 5460)
24034

c

> console.log(5.2 * 4.6)
23.919999999999998

d

> console.log(8.2 / 4.6)
1.7826086956521738

e

> console.log(39495 % 195)
105

f

> console.log(3 ** 5)
243

g

> console.log(2 + 4 / 2)
4

h

> console.log( (2 + 4) / 2)
3

i

> console.log( 5 + 9 + 5 / 2)
16.5

j

> console.log( ( (5 + 34 ) + 5 ) / 2)
22

練習4

以下の比較を行いましょう

a

> console.log( 1948 < 203 )
false

b

> console.log( 1053 <= 1000 )
false

c

> console.log( 4958  > 1000 )
true

d

> console.log( 5435  >= 5435 )
true

e

> console.log(29/4 === 36.25/5)
true

f

> console.log( 29/4 !== 36.25/5 )
false

g

> console.log( 145 === '145' )
false

練習5 FizzBuzz

for( let i = 1 ; i < 100 ; i++){
    if (i % 15 == 0){
        console.log('FizzBuzz');
    }
    else{
        if( i % 3 == 0){
            console.log('Fizz');
        }
        else{
            if (i % 5 == 0){
                console.log('Buzz');
            }
            else{
                console.log(i);
            }
        }
    }
}

i++i += 1, i = i + 1でも可能

別解: else ifを使った場合

for(let i = 1; i <= 100; i++){
  if(i % 15 === 0){
    console.log('FizzBuzz');
  } else if(i % 3 === 0){
    console.log('Fizz');
  } else if(i % 5 === 0){
    console.log('Buzz');
  } else {
    console.log(i);
  }
}

練習6 九九表

for(let i = 1; i <= 9; i++){
    let s = '';
    for( let j = 1; j <=9 ; j++){
        s += i * j + ' ';
    }
    console.log(s);
}

スペースが入るのは、数字を文字列として連結してみると1234みたいにスペースが入らない
だから、九九表を作るときは1つの答えに対してスペースを入れてマスを表す。

別解: 以下のようにすると桁が綺麗にできる

for(let i = 1; i <= 9; i++){
    let s = '';
    for( let j = 1; j <=9 ; j++){
        let ans = i*j;
        if( ans.toString().length == 1 )
            s += ' ' + ans + ' ';
        else
            s += ans + ' ';
    }
    console.log(s);
}

こちらではさらに、桁数を補う必要がある為、計算結果が1桁の時にはスペースを一個多く表示することで表示する桁数を補っている

 1  2  3  4  5  6  7  8  9
 2  4  6  8 10 12 14 16 18
 3  6  9 12 15 18 21 24 27
 4  8 12 16 20 24 28 32 36
 5 10 15 20 25 30 35 40 45
 6 12 18 24 30 36 42 48 54
 7 14 21 28 35 42 49 56 63
 8 16 24 32 40 48 56 64 72
 9 18 27 36 45 54 63 72 81

練習7 配列

1,2 配列の検索とアクセス

let ary = ["Green", "Red", "Yellow","Pink", "Blue", "White", "Gray", "Gold"];

let index = ary.indexOf("Pink");

console.log(index);
console.log(ary[index + 3]);
3
Gray

3 配列の合計と平均値

let ary = [322, 403, 59.56, 294, 266];

let sum = 0;
for( let i = 0 ; i < ary.length; i++ ){
    sum = sum + ary[i];
}
let ave = sum / ary.length;
console.log('sum: ', sum);
console.log('ave: ', ave);
sum:  1344.56
ave:  268.912

練習8 関数

function add( a , b){
    return a + b;
}

function max( a, b){
    if(a < b){
        return b;
    }
    else{
        return a;
    }
}

console.log(add(30,68));
console.log(max(4,5));

結果

98
5

Discussion