【#1】JavaScriptのアウトプット

2020年4月6日

消防士から、ジョブチェンしてもう直ぐ一年が経とうとしています。
フロントエンドとして日々仕事をしていく中で、僕はJavaScriptについてあまり知らないのではないかと感じました。

いままでなんとなくでググってやり通してきたのですが、最近それが通用しなくなってきたなと・・・。

とういうわけで、これから少しづつJavaScriptについて学んでいきたいと思います。

※間違いなどの指摘はtwitterのDMからご連絡くださいまし。

JavaScriptとは何だ

『彼を知り己を知れば百戦殆からず』といういう孫子の言葉があるようにまずはJavaScriptについて知りたいと思います。

JavaScriptは開発当初LiveScriptと呼べれる言語でした。しかし、当時流行っていた、Javaに影響を受けて、JavaScriptに改名。

何かの本でみたのですが、JavaとJavaScriptはHam(ハム)とHamburger(ハンバーガー)くらい違うよと。そこは気をつけたいところです。。。

HTML5になったことなどが追い風となり人気が出てきた言語です。

言語の特徴として4つあげれます。

1. スクリプト言語

JavaScriptはスクリプト言語です。

上記の意味より、さらに転じて、比較的単純なプログラムを記述するための、簡易的なプログラミング言語全般をいう。変数に型をつけないなど、動的型付け言語をスクリプト言語と呼ぶ定義もある。ただし、厳密な定義ないし区別は存在しない。
参照:Wikipedia

初心者LIKEってことかな・・・?

また、オブジェクト指向的な側面も持ち合わせていて、再利用、保守性に富んだコードも書くことができます。

2. インタプリンター言語

JavaScriptはプログラムを上から解析してくれる言語です。コンパイル言語と比べると動作が遅いですが、コンパイルをしなくていいと思うと手間が省けるというメリットもあります。

初心者にも直ぐに実行できるというのも魅力の一つですね。

3. いろんな環境で動かせる

ブラウザー上で動作するのはもちろんですが、Node.jsのようにサーバーサイドで使うことを目的とした、JavaScript実行環境や、Java言語の実行環境などJavaScrippt派生の実行環境がいろいろとあります。

変数・定数について

よく言われるのが変数は入れ物だと。。。
一時的にデータを保存しておくのが変数の役割。

var num = 1;

この場合のNUMBERに対して1をセットしているわけです。

JavaScriptでは必ずしも変数の宣言をしなければならないということはありません。これは、変数宣言がされなかった場合でも、JavaScriptが暗黙的に変数を宣言してくれるからです。

もう一つ紹介します。

let num = 2;

varではなくletを宣言命令として使用しました。これはES2015から追加されたのですが、varとletの違いは何でしょうか??

varは重複を許可しますが、letは重複を許可しません。

let greeting = 'こんにちは';
let greeting = 'こんばんは' // ×

この例では変数greetingは宣言済みですといったようなエラーが出ます。

var greeting = 'こんにちは';
var greeting = 'こんばんは' // ○

この例では、こんにちはがこんばんはに上書きされて正しく動きます。

また、letの方がスコープをより細かく管理できるといった違いもあります。

変数を宣言する際に注意すべきことは、予約語を使用しないことです。
JavaScriptの予約語はこちらをみてみてください。

変数の宣言記法としては、

// camelCase記法
lastName
// Pascal記法 
LastName
// アンダースコア記法
last_name

のような種類があります。宣言記法のルールについてはいろんなところで論争されているので、あえてここでは触れません・・・。

let、varの他にconstというものがあります。
入れるものと中身が1セットになっており、varやletと違って途中で中の要素を変更することができません。

データ型について

続いてデータ型について、データ型とは簡単にいうとデータの種類です。
たとえば、true/falseのような論理値、'こんにちは'のような文字列など他にも様々なデータがあります。
JavaScriptで扱える型の一覧はこちらに載っています。

JavaScriptはこのデータの型に対して寛容です。例えば文字列を格納していた変数に対して、数値を入れてもいいです。変数が、指定された値を読み取って、文字列だな、数値だなといったように柔軟に判断してくれます。

まとめ

とりあえずたらたらと長くなってもあれなので今回はここまでにしておきます。
次回は真偽値や、配列操作などをみていきたいと思います。