JavaScript関連のことを調べてみた

JavaScript関連のことを調べてみた

javascript new Date(‘2000-05-25’)は日本時間の朝9時

# 1. はじめに
知っておかないと怖いなぁと思ったことを記事にしました。

# 2. Javascript の new Date()
テーブルやローカルストレージに日付のデータを格納するとき、文字列で`2000/05/25`や`2000-05-25`で格納したりするときがありますよね。

このデータをDate型で扱いたいとき
“`
dateString = db.getDate();
date = new Date(dataString);
“`
ってしてませんか?コレ実は怖いんです。

# 3. 実行結果
まずは`2000/05/25`を確認しましょう。
“`
date = new Date(`2000/05/25`);
console.log(‘date=’ + date.toLocalString());
“`
きっと
“`
date=2000/5/25 0:00:00
“`
と出力されるでしょう。想定どおりですよね?

次に、`2000-05-25`を確認しましょう。
“`
date = new Date(`2000-05-25`);
c

元記事を表示

1 << 31と2 ** 31は同じ値ですか?いいえ違います。JavaScriptではね

# TL;DR;
JavaScriptにおいて乗算のかわりにbit shiftをつかってもは同じにならないことがある
これはJavaScriptの数値が64bit doubleであることに起因している
計算するときにbit shiftのことを理解していないのであれば、これを使用してはいけない

# bit shiftとか計算とかのおさらい
計算機では内部的には電気信号を操作して、数値や計算を実装しています
回路の話とかCPUだとかの話とかはおいておいて内部的に2進数で処理しています
これを操作するためにbit shiftという演算があります
“`
0b00000001 << 1 2 (0b00000010) 0b00000001 << 2 4 (0b00000100) ``` となります # bit shiftではどこまで保証されているのか、答は31bit bit shiftはだいたい2の指数計算と一緒です ただしそれは桁が保証されている範囲となります 計算の結果は以下のとおりとなります ``` 2 ** 0 -> 1
2 ** 1 -> 2
2 ** 2 -> 4
2 ** 3

元記事を表示

JavaScriptの便利な記法や関数の紹介およびそれらの注意点について

# はじめに

JavaScript初学者を抜けたあたりの方にむけて、便利な記法や関数、その注意点について紹介します。
初歩的な文法やデータ型などの知識は前提として解説を省きます。
JavaScriptの巨大なテーマとしては非同期処理などもあるのですが、巨大すぎるために本稿では割愛させていただきます。

## let/constの使い分けについて

変数は不変な`const`および可変な`let`を利用することができます。原則的には`const`を使い、再代入が必要な個所のみ`let`を使うのが標準的です。
`let`を利用している時点で **「処理のどこかで再代入される」** と処理内容の推論を働かせてコードを読む人が多いと思います。このようなコードの読み方をするという前提を踏まえてコードの可読性を高めるうえでも、再代入されるかされないかを意識して`const`/`let`を使い分けることが重要です。

“`js
const name = “John Doe”;
const age = 25;
“`

“`js
let name = “Jane Doe”;
let ag

元記事を表示

【JavaScriptメイン】ラジオボタンを使用したクイズ【ランダム表示】

1つ前の記事でクイズを作成したことを書いたのですが
ありがたいことにコメントでいただき、学習してみました。

## コード紹介

データをJS側に持たせ、配列を駆使して問題や選択肢をランダムに表示できるようになっている。

“`html




quiz