0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハンズオンJavaScript(第2章)の勉強メモ

Posted at

はじめに

オライリー社の「ハンズオンJavaScript」を読みながら、気づいたことや、重要と思われるポイントをメモしていきます。

また、出版から5年ほど経っているので、古くなってしまったり、動かなくなった内容があれば、指摘していきます。

今回は、第2章は、「データを学ぶ」です。

データの型を1つ1つ取り上げるのではなく、他言語と比較した時に異なる点、重要だと思った点を中心に取り上げていきます。

NullとUndefined

JavaScriptのデータの大きな特徴の1つと、Undefined型があります。それとは別にNull型もあります。
Nullは、オブジェクトが存在しないことを示すものですが、Undefinedは未定義、初期化されていないことを示します。
他のプログラミング言語では、どちらもNullで扱うことが多いですね。

本書では、何か処理を行った結果、無効になったことを示したい場合は、undefinedではなくnullを使う(戻り値として返すなど)方法を推奨していました。
ちなみに、型名では大文字始まりですが、値として扱うときは小文字始まりになります。

Symbol型

一意の値を示します。シングルトンですね。JavaScriptにはEnum型がないので、その代わりにSymbol型があるそうです。ただ、私はこれを使ったことがなく、本書でも、一般の開発者が自分で作ることはほぼないと記載されていました。
以下のように生成できます。

Symbol("abc")

Enum型はないですが、「enum」は予約語で変数名としては使えないようです。

const

2015年ごろのECMAScript6で登場した定数の概念ですね。
これがない頃にJavaScriptを書くのは辛かった・・・:sweat_smile:

falseと解釈される値

false, 0, ""(空文字)、null、undefinedは、ifの判定などではfalse扱いになります。
bashやC言語の終了ステータスだと、0が正常終了を示すコードなので、時々混乱しますね・・。

==と===

JavaScriptでは、比較の時にイコールが2つのものと3つのものがあります。
2つのものは、抽象的な等価演算子と呼ばれ、数値に変換した上で比較されます。
なので、「1 == true」は、真になります。
3つのものは、厳密な等価演算子と呼ばれ、型が同じかどうかも含めて比較します。
なので、「1 === true」は、偽になります。
特別な事情がない限りは、3つのものを使いましょう。

文字列リテラルとテンプレート

ダブルクォーテーション、シングルクォーテーションのどちらでも表すことができます。
ただしバッククォート(`)を利用すると、テンプレートとして、中に変数や数式を記載できます。表示時には展開されます。

> let day = 3
> `今日は${day}日です`
今日は3日です

スプレッド構文(...)

配列の各要素を展開できます。

> let a = [3, 4, 5]
> [1, 2, ...a]
[1, 2, 3, 4, 5]

Flutterで使われているDartという言語でも同じことはできますね。

プロパティの値の取得方法

3つの方法があります。

> let param = {a: 1, b : "bbb", c:[1, 2]}

ドット記法(推奨)

> param.a
1

ブラケット記法

> param["a"]
1

オプショナルチェーン演算子

> param?.a
1

paramがundefinedでなければaにアクセスします。undefinedならaにアクセスせず、undefinedと出力します。

paramというプロパティが存在することが明らかならば、ドット記法を使うことが一般的のようです。

in

あるオブジェクトに対して、プロパティの有無を確認する方法です。

> "a" in param
true
> "d" in param
false
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?