ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
JavaScript のデータ型
プリミティブ型 (7 種類)
| 型 | 例 | typeof 結果 |
|---|---|---|
| number | 42, 3.14, NaN, Infinity | "number" |
| string | "hello", \'world\', `tpl` | "string" |
| boolean | true, false | "boolean" |
| null | null | "object"(歴史的バグ) |
| undefined | undefined | "undefined" |
| symbol | Symbol("id") | "symbol" |
| bigint | 123n, BigInt("9007199254740992") | "bigint" |
オブジェクト型
| 型 | 例 | 判定方法 |
|---|---|---|
| Object | {a: 1} | typeof obj === "object" |
| Array | [1, 2, 3] | Array.isArray(arr) |
| Function | () => {} | typeof fn === "function" |
| Date | new Date() | obj instanceof Date |
| RegExp | /abc/ | obj instanceof RegExp |
| Map / Set | new Map() | obj instanceof Map |
| Promise | Promise.resolve() | obj instanceof Promise |
型変換
文字列 ↔ 数値
// 文字列 → 数値
Number("42") // → 42
Number("3.14") // → 3.14
Number("abc") // → NaN
parseInt("42px") // → 42 (途中まで数値として読む)
parseFloat("3.14rad") // → 3.14
+"42" // → 42 (短縮形)
// 数値 → 文字列
String(42) // → "42"
(42).toString() // → "42"
42 + "" // → "42"
(3.14).toFixed(2) // → "3.14"
真偽値変換
// 真偽値への変換 (truthy / falsy)
Boolean(0) // → false
Boolean("") // → false
Boolean(null) // → false
Boolean(undefined) // → false
Boolean(NaN) // → false
// 上記以外は全て true
// 短縮形
!!value // 二重否定で真偽値化
!value // 反転
// truthy / falsy を活用
const name = userName || "ゲスト"; // userName が falsy なら "ゲスト"
if (data) { ... } // data が truthy なら
JSON 変換
// オブジェクト → 文字列
JSON.stringify({a: 1, b: "x"}) // → '{"a":1,"b":"x"}'
JSON.stringify(obj, null, 2) // → 整形
// 文字列 → オブジェクト
JSON.parse('{"a":1}') // → {a: 1}
// 型変換時の罠
JSON.stringify(undefined) // → undefined (キーごと消える)
JSON.stringify(new Date()) // → "2026-05-15T..." (ISO 文字列)
JSON.stringify(function(){}) // → undefined
Vue.js での型指定(props)
export default {
props: {
// 基本型指定
title: String,
count: Number,
active: Boolean,
tags: Array,
user: Object,
onChange: Function,
// 詳細指定
message: {
type: String,
required: true,
default: "",
validator: (value) => value.length > 0
},
// 複数型許可
id: [String, Number],
// ネスト型 (型チェックされない、構造は分からない)
data: Object
}
};
TypeScript での厳格な型
// 基本型
let name: string = "Alice";
let age: number = 30;
let active: boolean = true;
let tags: string[] = ["dev", "admin"];
let user: { name: string; age: number } = { name: "Alice", age: 30 };
// オプション
let phone?: string; // string | undefined
// Union 型
let id: string | number = 1;
// インタフェース
interface User {
id: number;
name: string;
email?: string;
}
const user: User = { id: 1, name: "Alice" };
// 型エイリアス
type UserStatus = "active" | "inactive" | "suspended";
const status: UserStatus = "active";
// ジェネリクス
function first<T>(arr: T[]): T | undefined {
return arr[0];
}
const n = first([1, 2, 3]); // n: number | undefined
const s = first(["a", "b"]); // s: string | undefined
型判定の注意点
typeof の罠
typeof null // → "object" (バグ)
typeof [] // → "object" (配列も object)
typeof function(){} // → "function"
// 正確な判定
function getType(value) {
if (value === null) return "null";
if (Array.isArray(value)) return "array";
return typeof value;
}
// または Object.prototype.toString.call
Object.prototype.toString.call([]) // "[object Array]"
Object.prototype.toString.call(null) // "[object Null]"
Object.prototype.toString.call(new Date()) // "[object Date]"
NaN の判定
NaN === NaN // → false (自分自身とも等しくない!)
isNaN(NaN) // → true
Number.isNaN(NaN) // → true (推奨、文字列も拒否する厳格判定)
isNaN("abc") // → true (Number 変換した結果が NaN)
Number.isNaN("abc") // → false (型まで厳格に判定)
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?