/hello_node

This is 42 project. This is the beginning for server-side javascript.

Primary LanguageJavaScript

hello_node

This is 42 project.
This is the beginning for server-side javascript.

Mac OS : Big Sur
node : v12.10.0

ex00

OUTLINE

$ node output.js
HELLO WORLD
$

まずは、HELLO WORLDをconsoleに出力します。

consoleに出力する関数であるconsole.log()について調べてみます。

Syntax

  1. console.log(obj1 [, obj2, ..., objN]);
  2. console.log(msg [, subst1, ..., substN]);
  • obj1 ~ objN

    • A list of JavaScript objects to output.
  • msg

    • A JavaScript string containing zero or more substitution strings.
  • subst1 ~ substN

    • JavaScript objects with which to replace substitution strings within msg.

例文で構文を確認していきます。

まず、1を確認します。オブジェクトが一つのとき、

ex01.js

let test = { str: "abcde", num: 42 };
console.log(test);
$ node ex01.js
{ str: 'abcde', num: 42 }
$

オブジェクトが複数のとき、

ex02.js

let test = { str: "abcde", num: 42 };
let test2="GREAT"
console.log(test,", How was your test?",test2);
$ node ex02.js
{ str: 'abcde', num: 42 } , How was your test? GREAT
$

次に2を確認します。

これは、C言語でいうところの、printf()を同じような意味合いで、%dだったり、%iだったりが使えるよ。ということです。詳細はここ

ex03.js

let test = { str: "abcde", num: 42 };
let test2 = "GREAT";
let test3 = 100;
console.log("%o , How was your test? %s, %i", test, test2, test3);
$ node ex02.js
{ str: 'abcde', num: 42 } , How was your test? GREAT, 100
$

これでconsole.log()の2種類のSyntaxについて確認できました。

ex01

OUTLINE

$ node output.js
42 is a string.
42 is a number.
42 is an object.
[object Object] is an object.
true is a boolean.
undefined is an undefined.
$

上記の内容をコンソールに出力させます。

まずは、それぞれの型について確認します。
型を確認するコマンドは、typeofで確認できます。

ex01.js

let a = 42;
let b = "abcdef";
let c;
let d = { str: "test", num: 42 };

console.log(`value = ${a},              type = ${typeof a}`);
console.log(`value = ${b},          type = ${typeof b}`);
console.log(`value = ${c},       type = ${typeof c}`);
console.log(`value = ${d}, type = ${typeof d}`);
$ node ex01.js
value = 42,              type = number
value = abcdef,          type = string
value = undefined,       type = undefined
value = [object Object], type = object
$

ここでは、undefinedobjectについて確認します。
undefinedは文字のごとく、未定義を表します。

let cは明示的に初期化してないので、undedfinedで定義されていますね。
Goでいうところの、ゼロ値みたいなイメージに近いのかな?

次に、objectについて、ここから、

The Object class represents one of JavaScript's data types. It is used to store various keyed collections and more complex entities. Objects can be created using the Object() constructor or the object initializer / literal syntax.

データ型のひとつなので、objectproperty(変数)を自分で割り当てることができます。また、objectにはmethod(関数)を割り当てることができ、これを用いると、同じような動作するものをobjectとして定義することで、簡略化、再利用することができます。

詳しくは、オブジェクト指向とかで検索しましょう。

また、objectの定義は、let testObject = {}let test = new Object()でできます。

[object Object]に関しては、ここから

Every object has a toString() method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected. By default, the toString() method is inherited by every object descended from Object. If this method is not overridden in a custom object, toString() returns "[object type]", where type is the object type. The following code illustrates this:

とのこと。

以下のような使い方をすることで、object classの判別も行うことができる。

console.log(Object.prototype.toString.call(d)) // [object Object]
console.log(Object.prototype.toString.call(a)) // [object Number]