<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web開発 | ビズドットオンライン</title>
	<atom:link href="https://it-biz.online/tag/web%E9%96%8B%E7%99%BA/feed/" rel="self" type="application/rss+xml" />
	<link>https://it-biz.online</link>
	<description></description>
	<lastBuildDate>Tue, 12 May 2026 02:22:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://it-biz.online/wp-content/uploads/2019/10/cropped-4a332f05ade4ac7bb3c46c472cb5eac8-32x32.png</url>
	<title>Web開発 | ビズドットオンライン</title>
	<link>https://it-biz.online</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【TypeScript】typeとは？interfaceとの違いと使い分け</title>
		<link>https://it-biz.online/web-design/typescript/typescript-type-alias/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:53:40 +0000</pubDate>
				<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10774</guid>

					<description><![CDATA[TypeScriptのtypeを、型に名前を付ける仕組みとして解説し、union型、object型、interfaceとの使い分けまで整理します。]]></description>
										<content:encoded><![CDATA[
<p>TypeScriptの<code>type</code>とは、<strong><span class="marker-under">型に名前を付けて、読みやすく再利用できるようにする書き方</span></strong>です。</p>



<p>長いオブジェクト型、複数の候補を持つunion型、関数の引数や戻り値の型を、そのまま毎回書くとコードが読みにくくなります。<code>type</code>を使うと、それらの型に意味のある名前を付けられます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>typeはJavaScriptの値を作る命令ではありません。TypeScriptの型チェックで使う「型の名前」です。</p>
  </div>
</div>



<p>この記事では、<code>type</code>の基本構文、union型で便利な理由、<code>interface</code>との違い、実務での使い分けを初心者向けに整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：typeは型に名前を付けるための書き方</a></li><li><a href="#toc2" tabindex="0">typeが必要になる理由</a></li><li><a href="#toc3" tabindex="0">typeの読み方を図で見る</a></li><li><a href="#toc4" tabindex="0">union型に名前を付けると便利</a></li><li><a href="#toc5" tabindex="0">typeは実行時の値を作らない</a></li><li><a href="#toc6" tabindex="0">interfaceとの違い</a></li><li><a href="#toc7" tabindex="0">typeを使うとよい場面</a></li><li><a href="#toc8" tabindex="0">interfaceを使うとよい場面</a></li><li><a href="#toc9" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc10" tabindex="0">type名の付け方</a></li><li><a href="#toc11" tabindex="0">型を直すときの考え方</a></li><li><a href="#toc12" tabindex="0">チームで読むコードとしてのtype</a></li><li><a href="#toc13" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：typeは型に名前を付けるための書き方</span></h2>



<p>TypeScript公式ドキュメントでは、同じ型を何度も参照するために名前を付けられる仕組みとしてtype aliasが説明されています。まずは「型の別名を作る」と考えると分かりやすいです。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

function showUser(user: User) {
  console.log(user.name);
}</code></pre>



<p>この例では、<code>{ id: number; name: string }</code>という型に<code>User</code>という名前を付けています。以後は、同じ型を<code>User</code>として読めます。</p>



<h2 class="wp-block-heading"><span id="toc2">typeが必要になる理由</span></h2>



<p>型をその場に直接書くこともできます。しかし、同じ型が複数箇所に出てくると、コードの意味が追いにくくなります。</p>



<pre class="wp-block-code"><code>function send(user: { id: number; name: string; email?: string }) {
  // ...
}

function save(user: { id: number; name: string; email?: string }) {
  // ...
}</code></pre>



<p>このような型は、<code>type</code>で名前を付けると、何を表すデータなのかが分かりやすくなります。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
  email?: string;
};

function send(user: User) {
  // ...
}

function save(user: User) {
  // ...
}</code></pre>



<p><strong><span class="marker-under">typeの価値は、短くすることではなく、型に意味のある名前を付けること</span></strong>です。</p>



<h2 class="wp-block-heading"><span id="toc3">typeの読み方を図で見る</span></h2>



<p>次の図では、typeを「型を書く、名前を付ける、何度も使う」という流れで見てください。型の分類名より先に、再利用の流れを理解するのがポイントです。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/typescript-type-alias-flow-v2.png" alt="TypeScriptのtypeが型に名前を付けて変数や関数で再利用される流れを示す図"/><figcaption class="wp-element-caption">typeは長い型や繰り返し使う型に、意味のある名前を付けるための書き方です。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">union型に名前を付けると便利</span></h2>



<p><code>type</code>は、オブジェクト型だけでなく、複数の候補を持つunion型にも名前を付けられます。</p>



<pre class="wp-block-code"><code>type Status = &quot;loading&quot; | &quot;success&quot; | &quot;error&quot;;

let currentStatus: Status = &quot;loading&quot;;</code></pre>



<p>このように書くと、<code>Status</code>には指定した文字列だけを入れられます。画面の状態、APIの結果、処理ステータスなどを表すときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc5">typeは実行時の値を作らない</span></h2>



<p>初心者が混同しやすいのは、<code>type</code>がJavaScriptのオブジェクトや変数を作るわけではない点です。TypeScriptの型は、基本的にコンパイル時のチェックに使われます。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

const user: User = {
  id: 1,
  name: &quot;Sato&quot;,
};</code></pre>



<p>実際に存在する値は<code>user</code>です。<code>User</code>は、その値がどんな形であるべきかを確認するための型名です。</p>



<h2 class="wp-block-heading"><span id="toc6">interfaceとの違い</span></h2>



<p><code>type</code>と<code>interface</code>は、どちらもオブジェクトの形に名前を付けられます。そのため、簡単なオブジェクト型だけを見ると似ています。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>比較</th><th>type</th><th>interface</th></tr></thead><tbody><tr><td>オブジェクト型に名前を付ける</td><td>できる</td><td>できる</td></tr><tr><td>union型に名前を付ける</td><td>得意</td><td>できない</td></tr><tr><td>既存の型を組み合わせる</td><td>intersectionなどで表現しやすい</td><td>extendsで表現しやすい</td></tr><tr><td>同じ名前の再宣言</td><td>基本的にできない</td><td>宣言マージがある</td></tr></tbody></table></div></figure>



<p>TypeScript公式ドキュメントでも、typeとinterfaceは多くの場面で似ており、必要な機能が出てくるまでは個人の好みで選べるという考え方が示されています。</p>



<h2 class="wp-block-heading"><span id="toc7">typeを使うとよい場面</span></h2>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>union型に名前を付けたい</li>
  <li>文字列リテラルの候補を管理したい</li>
  <li>関数の引数や戻り値の型を短く読みたい</li>
  <li>複数の型を組み合わせて別名を付けたい</li>
</ul>



<pre class="wp-block-code"><code>type ApiResult =
  | { ok: true; data: string[] }
  | { ok: false; message: string };</code></pre>



<p>このような「成功か失敗かで形が変わるデータ」は、<code>type</code>で表すと読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">interfaceを使うとよい場面</span></h2>



<p><code>interface</code>は、オブジェクトの形を拡張していく場面でよく使われます。クラスの実装条件や、ライブラリの型定義でもよく見かけます。</p>



<pre class="wp-block-code"><code>interface User {
  id: number;
  name: string;
}

interface AdminUser extends User {
  role: &quot;admin&quot;;
}</code></pre>



<p>初心者のうちは、<strong>union型や文字列候補ならtype、オブジェクトの形を拡張したいならinterface</strong>と考えると判断しやすいです。</p>



<h2 class="wp-block-heading"><span id="toc9">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>理解のしかた</th></tr></thead><tbody><tr><td>typeを値だと思う</td><td>typeは型チェック用の名前</td></tr><tr><td>typeとinterfaceを完全に別物だと思う</td><td>オブジェクト型では似ている場面が多い</td></tr><tr><td>何でもtypeで巨大化する</td><td>複雑なら小さな型に分ける</td></tr><tr><td>型名が抽象的すぎる</td><td>User、Status、ApiResultのように意味で名付ける</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc10">type名の付け方</span></h2>



<p><code>type</code>は型を短くするためだけに使うものではありません。型名を見たときに、そのデータが何を表すのか分かることが大切です。</p>



<p>たとえば、<code>Data</code>や<code>Value</code>だけでは意味が広すぎます。ユーザー情報なら<code>User</code>、画面状態なら<code>PageStatus</code>、APIの返却結果なら<code>ApiResult</code>のように、役割が分かる名前を付けると読みやすくなります。</p>



<pre class="wp-block-code"><code>type PageStatus = &quot;idle&quot; | &quot;loading&quot; | &quot;success&quot; | &quot;error&quot;;

type UserSummary = {
  id: number;
  displayName: string;
};</code></pre>



<p>名前を付けることで、関数の引数や戻り値を見ただけで、コードの意図を追いやすくなります。これは型安全性だけでなく、チームで読むコードの分かりやすさにも効きます。</p>



<h2 class="wp-block-heading"><span id="toc11">型を直すときの考え方</span></h2>



<p>実務では、最初に作った型があとから変わることがあります。たとえば、APIの返却項目が増えたり、ステータスの種類が増えたりする場合です。</p>



<p>このとき、同じ型を複数箇所へ直接書いていると、修正漏れが起きやすくなります。<code>type</code>で名前を付けておけば、変更する場所を集約しやすくなります。</p>



<p>ただし、何でも1つの巨大な型にまとめると、逆に読みにくくなります。画面用、API用、保存用など、役割が違う型は分けて名前を付けるのが現実的です。</p>



<h2 class="wp-block-heading"><span id="toc12">チームで読むコードとしてのtype</span></h2>



<p>TypeScriptの型は、自分のためだけでなく、あとから読む人への説明にもなります。関数の引数に<code>User</code>と書かれていれば、その関数がユーザー情報を受け取ることがすぐ分かります。</p>



<p>逆に、毎回長いオブジェクト型を直接書いていると、同じ意味の型なのか、少し違う型なのかを判断しづらくなります。共有して使う型には名前を付け、画面の中だけで一度しか使わない型は無理に外へ出さない、という線引きが実務では扱いやすいです。</p>



<h2 class="wp-block-heading"><span id="toc13">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#type-aliases">TypeScript Handbook: Type Aliases</a></li>
  <li><a href="https://www.typescriptlang.org/docs/handbook/2/objects.html">TypeScript Handbook: Object Types</a></li>
  <li><a href="https://it-biz.online/web-design/typescript/typescript-interface/">TypeScriptのinterfaceとは？</a></li>
  <li><a href="https://it-biz.online/web-design/typescript/typescript-union-type/">TypeScriptのunion型とは？</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc14">まとめ</span></h2>



<p>TypeScriptの<code>type</code>は、型に名前を付けて読みやすく再利用するための書き方です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>長い型に意味のある名前を付けられる</li>
  <li>union型や文字列リテラル型と相性がよい</li>
  <li>実行時の値を作るものではない</li>
  <li>interfaceとは似ているが、得意な場面が少し違う</li>
</ul>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】Promiseとは？then・catch・finallyとasync/awaitの読み方</title>
		<link>https://it-biz.online/web-design/js/javascript-promise/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:54:05 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10771</guid>

					<description><![CDATA[Promiseを「将来の結果を受け取る仕組み」として、then・catch・finally、fetch、async/awaitの読み方まで初心者向けに整理します。]]></description>
										<content:encoded><![CDATA[
<p>JavaScriptのPromiseとは、<strong><span class="marker-under">すぐには終わらない処理の結果を、あとで受け取るための仕組み</span></strong>です。</p>



<p>Promiseが分かると、<code>fetch</code>、<code>then</code>、<code>catch</code>、<code>async/await</code> のコードを「何を待って、どこで結果を受け取るのか」という流れで読めるようになります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Promiseは「結果そのもの」ではなく、「あとで結果を受け取る入口」です。最初はこの理解だけで十分です。</p>
  </div>
</div>



<p>この記事では、Promiseの意味、3つの状態、<code>then</code>・<code>catch</code>・<code>finally</code>の使い方、fetchでつまずきやすいポイント、async/awaitとの関係を順番に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：Promiseは将来の結果を表すオブジェクト</a></li><li><a href="#toc2" tabindex="0">Promiseが必要になる場面</a></li><li><a href="#toc3" tabindex="0">Promiseの流れを図で見る</a></li><li><a href="#toc4" tabindex="0">pending・fulfilled・rejectedの3状態</a></li><li><a href="#toc5" tabindex="0">then・catch・finallyの役割</a></li><li><a href="#toc6" tabindex="0">fetchでよくある誤解：HTTPエラーは必ずcatchに入るわけではない</a></li><li><a href="#toc7" tabindex="0">async/awaitはPromiseを読みやすくする書き方</a></li><li><a href="#toc8" tabindex="0">最初に覚える判断基準</a></li><li><a href="#toc9" tabindex="0">Promise.allは最初から暗記しなくてよい</a></li><li><a href="#toc10" tabindex="0">コードレビューで見るポイント</a></li><li><a href="#toc11" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：Promiseは将来の結果を表すオブジェクト</span></h2>



<p>Promiseは、非同期処理の最終的な成功または失敗を表すオブジェクトです。MDNでも、Promiseは非同期処理の完了または失敗と、その結果の値を表すものとして説明されています。</p>



<p>ただし、初心者のうちは仕様文を暗記するより、次の読み方を先に覚える方が実用的です。</p>



<pre class="wp-block-code"><code>非同期処理を始める
  ↓
Promiseが返る
  ↓
成功したら then
失敗したら catch
最後に finally</code></pre>



<p>この時点で大事なのは、Promiseが返ってきても、まだ中身の結果を直接持っているとは限らないことです。結果はあとから成功または失敗として確定します。</p>



<h2 class="wp-block-heading"><span id="toc2">Promiseが必要になる場面</span></h2>



<p>JavaScriptでは、通信、タイマー、ファイル読み込みのように、すぐ終わらない処理がよく出てきます。特にWebアプリでは、APIからデータを取る<code>fetch</code>が代表例です。</p>



<p>通信が終わるまで画面全体を止めると、ユーザーは操作できません。そのためJavaScriptでは、通信を待っている間も他の処理を進め、結果が返ってきたときに続きを実行します。</p>



<p>この「あとで続きを実行する」ための約束を整理するのがPromiseです。</p>



<h2 class="wp-block-heading"><span id="toc3">Promiseの流れを図で見る</span></h2>



<p>次の図では、Promiseを「非同期処理の結果を、成功・失敗・最後の処理へ分けて受け取る流れ」として見てください。細かい用語より先に、左から右への読み順を作るのがポイントです。</p>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="1100" height="520" src="https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1.png" alt="JavaScriptのPromiseが非同期処理の結果をthen、catch、finallyへ渡す流れを示す図" class="wp-image-10802" srcset="https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1.png 1100w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-500x236.png 500w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-800x378.png 800w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-300x142.png 300w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-768x363.png 768w" sizes="(max-width: 1100px) 100vw, 1100px" /><figcaption class="wp-element-caption">Promiseは値そのものではなく、非同期処理の結果を後から受け取るための入口として見ると理解しやすくなります。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">pending・fulfilled・rejectedの3状態</span></h2>



<p>Promiseには状態があります。まずは次の3つだけ押さえれば十分です。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>状態</th><th>意味</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>pending</td><td>まだ結果が出ていない</td><td>処理中</td></tr><tr><td>fulfilled</td><td>成功して結果が得られた</td><td>成功</td></tr><tr><td>rejected</td><td>失敗して理由が返った</td><td>失敗</td></tr></tbody></table></div></figure>



<p>Promiseは最初に<code>pending</code>になり、その後、成功すれば<code>fulfilled</code>、失敗すれば<code>rejected</code>になります。成功と失敗のどちらかに決まった状態を、実務では「settled」と表現することもあります。</p>



<h2 class="wp-block-heading"><span id="toc5">then・catch・finallyの役割</span></h2>



<p>Promiseでよく使うのは、<code>then</code>、<code>catch</code>、<code>finally</code>です。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>メソッド</th><th>役割</th><th>よくある使い方</th></tr></thead><tbody><tr><td><code>then()</code></td><td>成功時の結果を受け取る</td><td>取得したデータを画面に出す</td></tr><tr><td><code>catch()</code></td><td>失敗時の理由を受け取る</td><td>エラー表示やログ出力をする</td></tr><tr><td><code>finally()</code></td><td>成功・失敗に関係なく最後に動く</td><td>ローディング表示を消す</td></tr></tbody></table></div></figure>



<pre class="wp-block-code"><code>fetch("/api/users")
  .then((response) =&gt; response.json())
  .then((users) =&gt; {
    console.log(users);
  })
  .catch((error) =&gt; {
    console.error("取得に失敗しました", error);
  })
  .finally(() =&gt; {
    console.log("読み込み処理を終了します");
  });</code></pre>



<p>ポイントは、<strong><span class="marker-under">前のthenで返した値が、次のthenへ渡される</span></strong>ことです。<code>response.json()</code>を返すから、次の<code>then</code>で変換後のデータを受け取れます。</p>



<h2 class="wp-block-heading"><span id="toc6">fetchでよくある誤解：HTTPエラーは必ずcatchに入るわけではない</span></h2>



<p>Promiseをfetchで使うとき、初心者がつまずきやすいのがエラー処理です。ネットワーク自体に失敗した場合は<code>catch</code>に入りますが、HTTPステータスが404や500の場合は、必ずしも自動で<code>catch</code>に入るとは限りません。</p>



<p>fetchの結果では、<code>response.ok</code>を見て、HTTPとして成功扱いできるかを確認するのが安全です。</p>



<pre class="wp-block-code"><code>fetch("/api/users")
  .then((response) =&gt; {
    if (!response.ok) {
      throw new Error("HTTPエラー: " + response.status);
    }
    return response.json();
  })
  .then((users) =&gt; {
    console.log(users);
  })
  .catch((error) =&gt; {
    console.error(error);
  });</code></pre>



<p>このように書くと、通信そのものの失敗だけでなく、サーバーがエラーを返した場合も同じ<code>catch</code>で扱いやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc7">async/awaitはPromiseを読みやすくする書き方</span></h2>



<p><code>async/await</code>は、Promiseと別物ではありません。Promiseを、上から順に読む形で書きやすくするための構文です。</p>



<pre class="wp-block-code"><code>async function loadUsers() {
  try {
    const response = await fetch("/api/users");

    if (!response.ok) {
      throw new Error("HTTPエラー: " + response.status);
    }

    const users = await response.json();
    console.log(users);
  } catch (error) {
    console.error(error);
  }
}</code></pre>



<p><code>await</code>はPromiseの完了を待ち、その結果を取り出します。つまり、async/awaitを使っていても、裏側ではPromiseを扱っています。</p>



<h2 class="wp-block-heading"><span id="toc8">最初に覚える判断基準</span></h2>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li><code>fetch()</code>の戻り値はPromiseとして読む</li>



<li><code>then</code>では次へ渡したい値を<code>return</code>する</li>



<li>HTTPステータスの失敗は<code>response.ok</code>で確認する</li>



<li>async/awaitはPromiseを消すものではなく、読みやすくする書き方と考える</li>
</ul>



<h2 class="wp-block-heading"><span id="toc9">Promise.allは最初から暗記しなくてよい</span></h2>



<p>Promiseを調べると、<code>Promise.all</code>、<code>Promise.race</code>、<code>Promise.allSettled</code>なども出てきます。これらは複数のPromiseをまとめて扱うための機能です。</p>



<p>ただし、初学者が最初に全部を覚える必要はありません。まずは、1つのPromiseが成功・失敗へ分かれる流れを読めることが先です。複数の通信を同時に待つ必要が出てきたときに、<code>Promise.all</code>を学ぶ順番で問題ありません。</p>



<p>たとえば、ユーザー情報と注文履歴を同時に取得したい場合は、複数のPromiseをまとめて待つ考え方が必要になります。一方、単に1つのAPIからデータを取るだけなら、<code>then</code>・<code>catch</code>・<code>finally</code>とasync/awaitを理解していれば十分です。</p>



<h2 class="wp-block-heading"><span id="toc10">コードレビューで見るポイント</span></h2>



<p>Promiseを使ったコードを読むときは、まず「どこでPromiseが作られ、どこで結果を取り出しているか」を見ます。次に、失敗時の処理があるか、ローディング表示などの後片付けが漏れていないかを確認します。</p>



<p>特にWeb画面では、通信中の表示、成功時の表示、失敗時の表示がそろっているかが重要です。Promiseの文法だけでなく、ユーザーに何が見えるかまで考えると、実務のコードを読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc11">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise">MDN: Promise</a></li>



<li><a href="https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch">MDN: Fetch API の使用</a></li>



<li><a href="https://it-biz.online/web-design/fetch-api/">fetch APIとは？GETとPOSTの使い方</a></li>



<li><a href="https://it-biz.online/web-design/async-await/">async/awaitとは？Promiseとの違い</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc12">まとめ</span></h2>



<p>Promiseは、非同期処理の結果をあとで受け取るための仕組みです。最初は「将来の結果を表すオブジェクト」と考えれば十分です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>成功時は<code>then</code></li>



<li>失敗時は<code>catch</code></li>



<li>最後の処理は<code>finally</code></li>



<li>fetchでは<code>response.ok</code>も確認する</li>



<li>async/awaitはPromiseを読みやすくする構文</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JSPファイル超入門 – 0 → 現場で“JSPの人”になるまで</title>
		<link>https://it-biz.online/web-design/html/java-server-pages/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 06 May 2025 04:00:00 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10372</guid>

					<description><![CDATA[JSP（Java Server Pages）は HTMLにJavaコードを差し込み、動的ページを生成する仕組み です。 まず最初にお伝えしたいのは、JSPは決して難しいものではありません。むしろ、「ちょっと動きのあるWe [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>JSP（Java Server Pages）は <strong><a href="https://it-biz.online/web-design/html-basic/">HTML</a>にJavaコードを差し込み、動的ページを生成する仕組み</strong> です。</p>



<p>まず最初にお伝えしたいのは、<strong>JSPは決して難しいものではありません。</strong>むしろ、「ちょっと動きのあるWebページを、できるだけ簡単に作りたい！」という人のために生まれたものなのです。近年では他の技術に取って代わられた印象が否めないJSPですが、昔からある巨大なレガシーシステムなどでは現役で、システムの更改案件などではよく目にすることがあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>このページでは「JSPってそもそも何？」という一番大事な部分から、初心者向けに順を追って１からわかりやすく専門用語を避けて解説します。</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">JSPとは何か？</a><ol><li><a href="#toc2" tabindex="0">【前提１】静的なページと動的なページ</a></li><li><a href="#toc3" tabindex="0">JSPとはどのような技術か</a></li><li><a href="#toc4" tabindex="0">JSPの動作のしくみ</a></li></ol></li><li><a href="#toc5" tabindex="0">JSPを動かすための準備</a><ol><li><a href="#toc6" tabindex="0">JSPの動作に必要なもの</a></li></ol></li><li><a href="#toc7" tabindex="0">最初のJSPファイルを作ってみよう</a><ol><li><a href="#toc8" tabindex="0">JSPファイルとはどんなファイルか</a></li><li><a href="#toc9" tabindex="0">ブラウザで表示してみる</a></li></ol></li><li><a href="#toc10" tabindex="0">JSPの基本構文</a><ol><li><a href="#toc11" tabindex="0">JSPの構成要素</a></li><li><a href="#toc12" tabindex="0">ディレクティブ</a></li><li><a href="#toc13" tabindex="0">スクリプトレット</a></li><li><a href="#toc14" tabindex="0">式（Expression）</a></li><li><a href="#toc15" tabindex="0">宣言</a></li><li><a href="#toc16" tabindex="0">コメントの書き方</a></li><li><a href="#toc17" tabindex="0">スクリプトレットはなるべく使わない</a></li></ol></li><li><a href="#toc18" tabindex="0">ELとJSTLでスクリプトレットのないJSPへ</a><ol><li><a href="#toc19" tabindex="0">EL（式言語）とは</a></li><li><a href="#toc20" tabindex="0">JSTL（JSP標準タグライブラリ）とは</a></li><li><a href="#toc21" tabindex="0">JSPをすっきり保つために</a></li></ol></li><li><a href="#toc22" tabindex="0">フォームからデータを受け取る</a><ol><li><a href="#toc23" tabindex="0">フォーム送信の流れ</a></li><li><a href="#toc24" tabindex="0">フォームを作るJSP（entry.jsp）</a></li><li><a href="#toc25" tabindex="0">データを受け取るJSP（result.jsp）</a></li><li><a href="#toc26" tabindex="0">ELを使って書き換える</a></li></ol></li><li><a href="#toc27" tabindex="0">セッションとCookieでデータを保持する</a><ol><li><a href="#toc28" tabindex="0">セッションの基本操作</a></li><li><a href="#toc29" tabindex="0">Cookieとは</a></li><li><a href="#toc30" tabindex="0">Cookieの基本操作</a></li><li><a href="#toc31" tabindex="0">セッションとCookieの使い分け</a></li></ol></li><li><a href="#toc32" tabindex="0">JSPで簡単なアンケートアプリを作ろう</a><ol><li><a href="#toc33" tabindex="0">アプリの構成と目的</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">JSPとは何か？</span></h2>



<p><strong>JSP（Java Server Pages）</strong>は、Javaを使ってWebページを動的に生成するための技術で、通常のHTMLファイルにJavaのコードを埋め込むことで、アクセスするたびに内容が変化するページを作成することを可能にします。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>そのため、JSPはJavaをベースとしていますが、HTMLの知識があれば、基本的な使い方は十分に理解することができます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc2">【前提１】静的なページと動的なページ</span></h3>



<p>Webページには、大きく分けて2種類あります。<br>1つは「<strong>静的なページ</strong>」、もう1つは「<strong>動的なページ</strong>」です。</p>


<a href="https://it-biz.online/it-skills/static-dynamic/" title="静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-500x282.png 500w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-800x451.png 800w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-768x433.png 768w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-640x360.png 640w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic.png 1480w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】「動的」「静的」という言葉の意味とその違いを端的に解説します。本で学習したがイマイチ理解できない、、、結局一言でいうと違いは何？という疑問をお持ちの方に具体例を用いながら分かりやすく解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.26</div></div></div></div></a>


<p>静的なページとは、内容があらかじめ決まっていて、アクセスするたびに同じ内容が表示されるページです。たとえば、自己紹介だけが書かれた会社のホームページや、お知らせ一覧だけが載っているページなどが該当します。</p>



<p>一方、動的なページは、アクセスした時点の情報や、閲覧しているユーザーの状態に応じて内容が変わります。たとえば、ショッピングサイトで商品が表示されたり、ログイン中のユーザー名が画面に表示されたりするページがそうです。</p>



<p><strong><span class="marker-under">静的なページはHTMLだけで作成できますが、動的なページを作るには、プログラムによってページの内容を生成する仕組みが必要</span></strong>です。JSPは、そのような仕組みの一つです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>もちろんJSP以外にも同じようなことを実現することが可能で、現代ではほとんどJSP以外が主役です。なのですが、レガシーシステムでは今でも現役で動いていることが多いので「まあ知っておいて損はないかな」というのがJSPの位置づけです。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc3">JSPとはどのような技術か</span></h3>



<p>JSPは、<strong>JavaのコードをHTMLに埋め込むことで</strong>、Webサーバー上で動的にHTMLを生成する技術です。拡張子が <code><span class="blue">.jsp</span></code> であるファイルを使ってページを作成します。</p>



<p>JSPファイルは、<a href="https://it-biz.online/it-skills/web-server/">Webサーバー</a>（通常は<strong>Tomcat</strong>）に配置され、ユーザーがアクセスすると、サーバー側でJavaのコードが実行されます。その結果として生成されたHTMLが、ブラウザに送信され、画面に表示されます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>つまり、JSPは「動的にHTMLを生成する仕組み」であり、「HTMLの中にJavaの処理を一部書き足せる形式のファイル」と言えます。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>JSPは、以下のような場面でよく利用されます。</p>



<ul class="wp-block-list">
<li>ユーザーの入力に応じて表示内容を変えたいとき</li>



<li>データベースから取得した情報を一覧表示したいとき</li>



<li>フォーム送信結果を別の画面に反映したいとき</li>



<li>ログインしたユーザーごとにページの表示内容を切り替えたいとき</li>
</ul>



<p>このような場合、HTMLだけでは対応が難しくなりますが、JSPを使えば、これらの処理をサーバー側で実現できます。</p>
</div>



<h3 class="wp-block-heading"><span id="toc4">JSPの動作のしくみ</span></h3>



<p>JSPファイルは、ユーザーがアクセスしたときに、サーバー側で一度「Javaのクラス（Servlet）」に変換されます。変換されたクラスはコンパイルされ、Javaプログラムとして実行されます。このとき、JSPファイルに書かれたHTMLの部分はそのままHTMLとして出力され、Javaのコード部分は処理されて結果が埋め込まれます。最終的に生成されたHTMLがブラウザに送信され、ユーザーに表示されます。</p>



<p>このしくみによって、JSPは1枚のファイルで「HTMLの見た目」と「動的な処理」を両立させることができます。</p>



<p class="has-text-align-center"><strong>JSPの動き方の流れ</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-1em has-bottom-margin">ユーザーが <code>.jsp</code> ファイルをリクエストする（例：<code>hello.jsp</code>）</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">Tomcat がその <code>.jsp</code> を読んで、中の Java を実行</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">結果として HTML を作り出し、ブラウザに返す</li>



<li>ブラウザには、あたかも普通のHTMLのように見える</li>
</ol>



<p>この一連の流れによって、「動きのあるページ」がリクエスト元に返却されることになります。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ１</span>　<strong>JSPファイルとは？</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">HTMLだけでは静的なページしか作れない。<br>→JSPを使うことで動的なページが作成できます。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、JavaのコードをHTMLに埋め込むことで、アクセスごとに変化するページを生成。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、Webサーバー上で実行され、結果がHTMLとしてブラウザに表示される。</li>
</ol>
</div>



<h2 class="wp-block-heading"><span id="toc5">JSPを動かすための準備</span></h2>



<p>JSPファイルは、<strong>通常のHTMLファイルと違い、単独では動作しません。</strong>JSPはサーバー側でJavaのコードを実行する仕組みのため、その処理を受け持つ「Webサーバー」や「Javaの開発環境」が必要です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この章では、JSPを動かすために必要なソフトウェアや環境を、1つずつ順を追って準備していきます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">JSPの動作に必要なもの</span></h3>



<p>JSPを動作させるには、次の3つが必要です。<strong>ここでは、それってそもそも何？みたいな説明＋実際にあなたのPCにインストールする手順をメモ程度に記載しておきますので、この辺の知識がすでにあるよ！という方は読み飛ばしてください。</strong></p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>項目</th><th>説明</th></tr></thead><tbody><tr><td>JDK（Java Development Kit）</td><td>Javaのプログラムを実行するために必要なソフトウェアです。JSPはJavaで動作するため、必ず必要になります。</td></tr><tr><td>Tomcat（トムキャット）</td><td>JSPファイルを処理し、Javaのコードを実行してHTMLに変換するWebサーバーです。</td></tr><tr><td>エディタ（テキスト編集ソフト）</td><td>JSPファイルを作成するための道具です。Visual Studio Code（VS Code）やIntelliJ IDEAなどが便利です。</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">JDKのインストール</h4>



<p>まず、Javaの開発環境であるJDKをインストールします。JDKがインストールされていないと、JSPも動作しません。</p>


<a href="https://it-biz.online/java/java-setup/" title="Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png 320w, https://it-biz.online/wp-content/uploads/2024/05/image-240x135.png 240w, https://it-biz.online/wp-content/uploads/2024/05/image-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）</div><div class="blogcard-snippet internal-blogcard-snippet">【超・初心者向け】Javaの開発環境を初心者向けに簡単に設定する方法をわかりやすく解説します。JDKのインストール、IDEの選択、開発のスタートまで、スムーズにJavaプログラミングを始める方法をご説明します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.16</div></div></div></div></a>


<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Oracleの公式サイトまたはOpenJDKのサイトから、JDKをダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">お使いのOSに合ったインストーラを選び、画面の指示に従ってインストール。</li>



<li>インストール後、コマンドプロンプト（またはターミナル）を開き、↓のコマンドを入力。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">java -version
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>バージョンが表示されれば、正常にインストールされています。</p>
</div></div>



<h4 class="wp-block-heading">Tomcatのインストール</h4>



<p>JSPファイルを処理するために、Tomcatをインストールします。<strong><span class="marker-under">TomcatはJavaで動作するWebサーバー</span></strong>で、JSPの実行に適した軽量なサーバーです。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Apache Tomcat の公式サイトにアクセス。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">zip ファイル（Windows の場合）または tar.gz ファイル（Mac/Linux の場合）をダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードしたファイルを任意の場所に展開（解凍）。<br>→<code>C:\tomcat</code> や <code>~/tomcat</code> などが一般的ですが、どこでもOK。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>bin</code>フォルダにある <code>startup.bat</code>（Windows）または <code>startup.sh</code>（Mac/Linux）を実行。</li>



<li>ブラウザを開き、次のURLにアクセスします：</li>
</ol>




<a rel="noopener" href="http://localhost:8080/" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>Tomcatのトップページが表示されれば、インストールは成功です。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>注意：すでに他のアプリケーションがポート8080を使っている場合、Tomcatが起動できないことがあります。その場合は、設定ファイル（server.xml）でポート番号を変更してください。</p>
</div>



<h4 class="wp-block-heading">JSP用のフォルダを作る</h4>



<p>Tomcatでは、<code><span class="bold-blue">webapps</span></code> フォルダの中にあるプロジェクトが自動的に読み込まれます。自分でJSPファイルを作って表示するには、ここに新しいフォルダを作成します。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatフォルダ内の <code>webapps</code> に移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">新しくフォルダを作成し、たとえば <code>jsp-demo</code> という名前をつける。</li>



<li><code>jsp-demo</code> フォルダの中に、最初のJSPファイルを作成します。ファイル名は <code>hello.jsp</code> など。</li>
</ol>



<h4 class="wp-block-heading">エディタの準備</h4>



<p>JSPファイルは、普通のテキストファイルとして作成できますが、プログラミングに適したエディタを使うと効率が上がります。以下のいずれかのエディタを使用するのが一般的です。</p>



<ul class="wp-block-list">
<li>Visual Studio Code（無料で軽量、拡張機能が豊富）</li>



<li>IntelliJ IDEA（Javaに特化した統合開発環境）</li>



<li>Eclipse（Java開発で定番のIDE）</li>
</ul>



<p>初心者の方には、<strong>Visual Studio Codeが扱いやすくおすすめ</strong>です。必要に応じて「Java Extension Pack」などを追加すると、補完機能や構文チェックも利用できます。</p>



<h2 class="wp-block-heading"><span id="toc7">最初のJSPファイルを作ってみよう</span></h2>



<p>前の章で、JSPを動かすための準備が整いました。この章では、実際にJSPファイルを1つ作成し、それをブラウザで表示するところまで進めます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここでは、「JSPとはどういうものか」を実際に体験しながら、基本的な書き方や仕組みを理解していきます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc8">JSPファイルとはどんなファイルか</span></h3>



<p>JSPファイルは、基本的にはHTMLっぽく見えるコードで、この中の必要な部分にJavaのコードを差し込むことで、表示内容を動的に変えることができるようにしています。たとえば、「現在の日時を表示する」などの処理が可能になります。</p>



<p>JSPファイルの拡張子は <code><span class="bold-blue">.jsp</span></code> です。ファイルの中には、通常のHTMLタグと、Javaのコードが組み合わさって記述されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>Hello JSP&lt;/title>
&lt;/head>
&lt;body>
  &lt;h1>こんにちは、JSPの世界へようこそ！&lt;/h1>
  &lt;p>現在の時刻は：&lt;%= java.time.LocalDateTime.now() %>&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p>上記のJSPファイルの中では、JavaのコードとHTMLが組み合わさっています。それぞれの部分について説明します。</p>



<ul class="wp-block-list is-style-icon-list-circle has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</code><br>→ この行は「ページ全体の設定」です。文字コードをUTF-8にすることで、文字化けを防ぎます。</li>



<li><code>&lt;%= java.time.LocalDateTime.now() %&gt;</code><br>→ この部分がJSPの特徴です。「現在の時刻を表示する」Javaのコードが入っています。<br><code>&lt;%=</code> と <code>%&gt;</code> で囲まれた中はJavaの「式」として実行され、結果がそのままHTMLに差し込まれます。</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>上記のファイルをブラウザで表示するためにエディタで編集して保存しましょう。</p>
</div></div>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatの <code>webapps</code> フォルダの中にある、前章で作成した <code>jsp-demo</code> フォルダに移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>hello.jsp</code> という名前の新しいファイルを作成。</li>



<li>ファイルをエディタで開き、↑の内容を記述し保存！</li>
</ol>



<h3 class="wp-block-heading"><span id="toc9">ブラウザで表示してみる</span></h3>



<p>ファイルを保存したら、Tomcatが起動していることを確認し、ブラウザで次のURLにアクセスしてみましょう。</p>




<a rel="noopener" href="http://localhost:8080/jsp-demo/hello.jsp" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2Fjsp-demo%2Fhello.jsp?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/jsp-demo/hello.jsp" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</pre>



<p>画面に「こんにちは、JSPの世界へようこそ！」という見出しと、現在の時刻が表示されていれば成功です。</p>



<p>ブラウザでページを更新するたびに、時刻が変化するはずです。これは、<strong>JSPがアクセスされるたびにJavaのコードを実行して、ページの中身を動的に作っている</strong>ということを意味します。</p>



<h2 class="wp-block-heading"><span id="toc10">JSPの基本構文</span></h2>



<p>前の章では、JSPファイルを作成し、Javaのコードを埋め込むことで「現在の時刻を表示する」ページを作成しました。ここからは、JSPファイルで使われる代表的な構文について解説します。どのようにJavaのコードをHTMLに差し込むのか、そしてJSP特有の書き方にはどんな種類があるのかを、順を追って学習していきましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">JSPの構成要素</span></h3>



<p>JSPでは、<strong>以下の4種類の記述形式が用意されています</strong>。これらを使い分けることで、Javaの処理とHTMLの表示を同時に扱うことができます。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>種類</th><th>記述方法</th><th>役割</th></tr></thead><tbody><tr><td>ディレクティブ</td><td><code>&lt;%<span class="bold-red">@</span> ... %&gt;</code></td><td>ページ全体の設定を行う（文字コードなど）</td></tr><tr><td>スクリプトレット</td><td><code>&lt;% ... %&gt;</code></td><td>Javaの処理（変数の定義や条件分岐など）を書く</td></tr><tr><td>式（Expression）</td><td><code>&lt;%<span class="bold-red">=</span> ... %&gt;</code></td><td>Javaの値をそのままHTMLに出力する</td></tr><tr><td>宣言</td><td><code>&lt;%<span class="bold-red">!</span> ... %&gt;</code></td><td>メソッドやフィールドを定義する（あまり使われない）</td></tr></tbody></table></div></figure>



<h3 class="wp-block-heading"><span id="toc12">ディレクティブ</span></h3>



<p>ディレクティブは、JSPファイル全体に関する設定を行うものです。最もよく使われるのは <code>page</code> ディレクティブです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この記述によって、出力するHTMLの文字コードがUTF-8になります。日本語を正しく表示するために必須です。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc13">スクリプトレット</span></h3>



<p>スクリプトレットは、JSPファイル内にJavaの処理を書くための領域です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  int year = java.time.LocalDate.now().getYear();
  String message = "今年は " + year + " 年です。";
%>
&lt;p>&lt;%= message %>&lt;/p>
</pre>



<p>この例では、Javaで現在の年を取得し、それを文字列として作成しています。そして <code>&lt;%= ... %&gt;</code> を使って、結果をHTMLに出力しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>スクリプトレットの中ではJavaの文法がそのまま使えます。ただし、後述するように<strong>スクリプトレットは新しい開発ではなるべく使わない方向にあります</strong>。</p>
</blockquote>



<h3 class="wp-block-heading"><span id="toc14">式（Expression）</span></h3>



<p>式は、値をそのままHTMLとして出力したいときに使います。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>こんにちは、&lt;%= "JSPユーザー" %>さん！&lt;/p>
</pre>



<p>上の例では、<code>"JSPユーザー"</code> という文字列がHTMLに挿入され、ブラウザには次のように表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">こんにちは、JSPユーザーさん！
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この書き方は非常にシンプルで、<strong>値を表示するだけ</strong>であれば便利ですが、複雑な処理は向きません。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc15">宣言</span></h3>



<p>宣言は、JSPファイルの中で<strong>メソッドや変数を定義したい場合</strong>に使います。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%! 
  private String getGreeting(String name) {
    return "こんにちは、" + name + "さん！";
  }
%>
&lt;p>&lt;%= getGreeting("太郎") %>&lt;/p>
</pre>



<p>このように、JSPファイルの中で小さな関数を定義して、それを式の中で呼び出すこともできます。<strong>ただし、JSPファイルに処理を詰め込みすぎると保守が難しくなるため、このような記述はできるだけ避け、外部のJavaクラスに処理を分けることが望まれます。</strong></p>



<h3 class="wp-block-heading"><span id="toc16">コメントの書き方</span></h3>



<p>JSPには、HTMLのコメントと、JSP用のコメントの2種類があります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!-- これはHTMLのコメントです（ブラウザの「ページのソース」に表示されます） -->

&lt;%-- これはJSPのコメントです（ブラウザには一切表示されません） --%>
</pre>



<p>HTMLのコメントはWebページに送信されるため、内容を見られる可能性があります。<br>一方、JSPのコメントはサーバー側で処理が止まるため、セキュリティ的に重要なコメントや開発者向けのメモはJSPのコメントで書くのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc17">スクリプトレットはなるべく使わない</span></h3>



<p>JSPの構文として紹介しましたが、<strong>スクリプトレット（<code>&lt;% ... %&gt;</code>）の使用は、今では非推奨</strong>とされています。理由は以下の通り。</p>



<ul class="wp-block-list is-style-icon-list-cross has-list-style">
<li>HTMLとJavaのロジックが混ざることで、読みづらくなる</li>



<li>保守性が下がり、エラーが起きやすくなる</li>



<li>JSTL（JSP標準タグライブラリ）やEL（式言語）の方がシンプルで安全に書ける</li>
</ul>



<p>そのため、今後はJSTLやELを使って、できるだけ「Javaコードを書かずに表示を制御する方法」を覚えていくことが大切です。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span>　<strong>JSPの基本構文</strong></p>



<ul class="wp-block-list">
<li>JSPには、ディレクティブ・スクリプトレット・式・宣言という4種類の書き方がある。</li>



<li>スクリプトレットや宣言ではJavaの文法をそのまま使うことができるが、使いすぎは避けるべし。</li>



<li>式（<code>&lt;%= ... %&gt;</code>）は、値を簡単に出力するのに便利です。</li>



<li>コメントは、必要に応じてJSPコメント（<code>&lt;%-- --%&gt;</code>）を使いましょう。</li>
</ul>
</div>



<p>次の章では、<strong>JSTLとEL（式言語）を使った“スクリプトレットを使わない”JSPの書き方</strong>を学びます。より読みやすく、安全なJSPの記述方法を習得していきましょう。</p>



<h2 class="wp-block-heading"><span id="toc18">ELとJSTLでスクリプトレットのないJSPへ</span></h2>



<p>ここまでの解説では、JSPの基本構文としてスクリプトレット（<code>&lt;% ... %&gt;</code>）などを紹介しました。<br>しかし近年のJSP開発では、<strong>スクリプトレットを使わない記述スタイル</strong>が主流となっています。</p>



<p>この章では、<strong>EL（Expression Language）とJSTL（JSP Standard Tag Library）</strong>という2つの仕組みを使って、<strong>JSPファイルの中にJavaコードを書かずに動的な表示を行う方法</strong>を学んでいきます。</p>



<h3 class="wp-block-heading"><span id="toc19">EL（式言語）とは</span></h3>



<p>EL（Expression Language）は、JSPの中で<strong>Javaの値を簡潔に記述するための言語</strong>です。<br>スクリプトレットのように <code>&lt;%=</code> で囲む必要がなく、シンプルに <code>${変数名}</code> と書くだけで値を出力できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>こんにちは、${userName} さん。&lt;/p>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>このコードでは、Javaのサーバー側で <code>userName</code> という名前のデータ（属性）が用意されていれば、自動的にその値が表示されます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc20">JSTL（JSP標準タグライブラリ）とは</span></h3>



<p>JSTLとは、JSP上で使える<strong>共通の処理をあらかじめタグ化したライブラリ</strong>です。<br>たとえば、以下のような処理が可能です。</p>



<ul class="wp-block-list">
<li>条件分岐（if）</li>



<li>繰り返し処理（forEach）</li>



<li>値のフォーマット（日付や数値）</li>



<li>URLの生成</li>
</ul>



<p>JSTLを使うことで、<strong>複雑なJavaの処理をわかりやすいタグで書くことができる</strong>ようになります。</p>



<h4 class="wp-block-heading">JSTLを使う準備</h4>



<p>JSTLを使うには、JSTLライブラリの <code>.jar</code> ファイルを JSPプロジェクトの中に追加する必要があります。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLの最新版（Jakarta標準）をダウンロード<br>→ <a>https://jakarta.ee/specifications/tags/</a></li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードした <code>jakarta.servlet.jsp.jstl-api-x.x.x.jar</code> などの <code>.jar</code> ファイルを、Tomcatの <code>lib</code> フォルダ、またはプロジェクトの <code>WEB-INF/lib</code> フォルダにコピーします。</li>



<li>JSPファイルの先頭に、以下のようにタグライブラリを読み込む宣言を記述します。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この設定により、<code>&lt;c:if&gt;</code> や <code>&lt;c:forEach&gt;</code> などのJSTLタグが使えるようになります。</p>
</div></div>



<h4 class="wp-block-heading">JSTLで条件分岐をする</h4>



<p>スクリプトレットで <code>if</code> 文を書かなくても、JSTLの <code>&lt;c:if&gt;</code> タグを使うことで簡単に条件分岐ができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;c:if test="${loginUser != null}">
  &lt;p>ようこそ、${loginUser.name} さん&lt;/p>
&lt;/c:if>
</pre>



<p>このように、<code>loginUser</code> という属性が <code>null</code> でなければ、挨拶文が表示されます。</p>



<h4 class="wp-block-heading">JSTLで繰り返し表示をする</h4>



<p>リストや配列の内容を繰り返し表示するには、<code>&lt;c:forEach&gt;</code> を使います。</p>



<p>サーバー側で、次のようにリストをセットしておきます（Servletなどで）：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">List&lt;String> names = List.of("太郎", "花子", "次郎");
request.setAttribute("nameList", names);
</pre>



<p>JSPファイルでは、次のように記述します：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;ul>
  &lt;c:forEach var="name" items="${nameList}">
    &lt;li>${name}&lt;/li>
  &lt;/c:forEach>
&lt;/ul>
</pre>



<p>このコードにより、以下のようなHTMLが生成されます：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;ul>
  &lt;li>太郎&lt;/li>
  &lt;li>花子&lt;/li>
  &lt;li>次郎&lt;/li>
&lt;/ul>
</pre>



<h3 class="wp-block-heading"><span id="toc21">JSPをすっきり保つために</span></h3>



<p>ELとJSTLを使うことで、JSPファイル内にJavaのコードを書く必要がなくなり、<strong>HTMLに近い構造を保ちながら動的な処理を行うことができます。</strong><br>これは、JSPを読みやすく・保守しやすくする上でも非常に重要です。</p>



<p>また、デザイナーと共同で作業するようなプロジェクトでも、HTMLに近い見た目を保つことで、分業がしやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc22">フォームからデータを受け取る</span></h2>



<p>JSPを使ってWebアプリケーションを作成する際、ユーザーの入力に応じて処理を行うことは非常に重要です。この章では、<strong>HTMLのフォームを使って入力されたデータを、JSPで受け取って表示する方法</strong>を学びます。</p>



<h3 class="wp-block-heading"><span id="toc23">フォーム送信の流れ</span></h3>



<p>フォームを使った処理は、次のような流れで行われます。</p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li>入力フォームのあるページ（JSP）を表示する</li>



<li>ユーザーが名前などの情報を入力し、送信ボタンを押す</li>



<li>入力内容がサーバーに送られる</li>



<li>受け取ったJSPファイルがその情報を読み取り、画面に表示する</li>
</ol>



<p>JSPではこの一連の流れを、HTMLとJavaの仕組みで簡単に実現できます。</p>



<h3 class="wp-block-heading"><span id="toc24">フォームを作るJSP（entry.jsp）</span></h3>



<p>まずは、名前を入力するための簡単なフォームを作成します。</p>



<h4 class="wp-block-heading">entry.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>名前の入力&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>お名前を入力してください&lt;/h2>
  &lt;form action="result.jsp" method="post">
    &lt;label>名前：&lt;input type="text" name="username" />&lt;/label>
    &lt;input type="submit" value="送信" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<p>このページでは、名前を入力して「送信」ボタンを押すと、<code>result.jsp</code> にPOSTリクエストでデータが送信されます。</p>



<h3 class="wp-block-heading"><span id="toc25">データを受け取るJSP（result.jsp）</span></h3>



<p>次に、送信されたデータを受け取って表示するためのJSPファイルを作成します。</p>



<h4 class="wp-block-heading">result.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>入力結果&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>ようこそ！&lt;/h2>
  &lt;p>あなたの名前は &lt;strong>&lt;%= request.getParameter("username") %>&lt;/strong> さんですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p>ここでは、<code>request.getParameter("username")</code> というコードで、フォームから送られたデータを取得しています。</p>



<ul class="wp-block-list">
<li><code>request</code> はJSPに自動で用意されているオブジェクト。</li>



<li><code>getParameter("username")</code> は、フォームの<code>name="username"</code> に対応した値を取得するメソッド。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc26">ELを使って書き換える</span></h3>



<p>JSTLやELを使えば、<code>result.jsp</code> をもっとすっきり書くこともできます。以下のようにリクエスト属性に値をセットしてから表示することで、式言語を活用できます。</p>



<h4 class="wp-block-heading">Servlet側（例）</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">String name = request.getParameter("username");
request.setAttribute("username", name);
request.getRequestDispatcher("/result.jsp").forward(request, response);
</pre>



<h4 class="wp-block-heading">result.jsp：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;p>こんにちは、${username} さん！&lt;/p>
</pre>



<p>ただし、Servletを使う方法はこのガイドの後半で詳しく扱いますので、今はまず <code>request.getParameter()</code> による受け取りに慣れることをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc27">セッションとCookieでデータを保持する</span></h2>



<p>JSPでは、ユーザーが入力した情報を「別のページでも使いたい」という場面がよくあります。<br>たとえば、ログイン状態を維持したり、前の画面で入力された名前を次の画面でも表示したりする場合です。</p>



<p>そのようなときに役立つのが <strong>セッション（Session）</strong> と <strong>クッキー（Cookie）</strong> です。<br>この章では、それぞれの役割と使い方を学びます。</p>



<h3 class="wp-block-heading"><span id="toc28">セッションの基本操作</span></h3>



<h4 class="wp-block-heading">データの保存：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = request.getParameter("username");
  session.setAttribute("userName", name);
%>
</pre>



<p>このコードは、<code>userName</code> という名前でセッションに値を保存します。</p>



<h4 class="wp-block-heading">データの取得：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = (String) session.getAttribute("userName");
%>
&lt;p>ようこそ、&lt;%= name %> さん&lt;/p>
</pre>



<p>このようにすれば、<strong>前のページで保存した値を、別のページで取り出して使うことができます。</strong></p>



<h4 class="wp-block-heading">セッションの有効期間と注意点</h4>



<p>セッションは、ユーザーがブラウザを閉じるか、一定時間操作をしないと自動的に無効になります。Tomcatの初期設定では、30分間操作がないとセッションが切れます。</p>



<p>また、<strong>多くの情報をセッションに保存しすぎると、サーバーのメモリを圧迫する可能性がある</strong>ため、用途を絞って使うことが大切です。</p>



<h3 class="wp-block-heading"><span id="toc29">Cookieとは</span></h3>



<p>Cookie（クッキー）は、<strong>情報をユーザーのブラウザに保存する仕組み</strong>です。<br>サーバー側から「この情報を保存しておいてください」と指示すると、ブラウザがその内容を保持し、次回以降のアクセス時にその情報を自動的に送信してきます。</p>



<h3 class="wp-block-heading"><span id="toc30">Cookieの基本操作</span></h3>



<h4 class="wp-block-heading">Cookieの作成と送信：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = request.getParameter("username");
  Cookie cookie = new Cookie("userName", name);
  cookie.setMaxAge(60 * 60); // 1時間（秒単位）
  response.addCookie(cookie);
%>
</pre>



<h4 class="wp-block-heading">Cookieの取得：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = "";
  Cookie[] cookies = request.getCookies();
  if (cookies != null) {
    for (Cookie c : cookies) {
      if ("userName".equals(c.getName())) {
        name = c.getValue();
      }
    }
  }
%>
&lt;p>こんにちは、&lt;%= name %> さん&lt;/p>
</pre>



<p>このように、Cookieを使えば、ブラウザに保存された情報を次回のアクセス時にも利用できます。</p>



<h3 class="wp-block-heading"><span id="toc31">セッションとCookieの使い分け</span></h3>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>セッション</th><th>Cookie</th></tr></thead><tbody><tr><td>保存場所</td><td>サーバー側</td><td>ブラウザ側</td></tr><tr><td>有効期間</td><td>ログアウトや時間切れまで</td><td>明示的に期限を設定できる</td></tr><tr><td>データの大きさ</td><td>比較的大きなデータがOK</td><td>少量（4KBまで）</td></tr><tr><td>セキュリティ</td><td>比較的安全（外部に見えない）</td><td>攻撃に注意が必要（盗聴・改ざん）</td></tr></tbody></table></div></figure>



<p><strong>一時的な状態保持（ログイン情報など）にはセッション</strong>、<br><strong>ユーザーに関連する設定（言語選択やテーマなど）にはCookie</strong>がよく使われます。</p>



<h2 class="wp-block-heading"><span id="toc32">JSPで簡単なアンケートアプリを作ろう</span></h2>



<p>JSPを使ってWebアプリケーションを作るには、「複数ページにまたがる処理」を整理することが大切です。<br>この章では、<strong>3画面構成のアンケートアプリ</strong>を作り、情報の受け渡し、表示の切り替え、セッションの活用を総合的に体験します。</p>



<h3 class="wp-block-heading"><span id="toc33">アプリの構成と目的</span></h3>



<p>このアプリでは、以下のような流れでユーザーにアンケートに答えてもらい、最終画面でまとめて表示します。</p>



<ol class="wp-block-list">
<li><strong>入力画面</strong>：名前と好きな色を入力（form）</li>



<li><strong>確認画面</strong>：入力された内容を表示（セッションで一時保持）</li>



<li><strong>完了画面</strong>：ありがとうメッセージと入力内容の最終確認</li>
</ol>



<p class="has-text-align-center"><strong>プロジェクト構造</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">jsp-demo/
├─ input.jsp     （入力画面）
├─ confirm.jsp   （確認画面）
└─ thanks.jsp    （完了画面）
</pre>



<h4 class="wp-block-heading">入力画面：input.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>アンケート入力&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>アンケートにご協力ください&lt;/h2>
  &lt;form action="confirm.jsp" method="post">
    &lt;p>お名前：&lt;input type="text" name="userName" />&lt;/p>
    &lt;p>好きな色：
      &lt;select name="favoriteColor">
        &lt;option value="赤">赤&lt;/option>
        &lt;option value="青">青&lt;/option>
        &lt;option value="緑">緑&lt;/option>
      &lt;/select>
    &lt;/p>
    &lt;input type="submit" value="確認画面へ" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">確認画面：confirm.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String userName = request.getParameter("userName");
  String favoriteColor = request.getParameter("favoriteColor");

  session.setAttribute("userName", userName);
  session.setAttribute("favoriteColor", favoriteColor);
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>確認画面&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>以下の内容でよろしいですか？&lt;/h2>
  &lt;p>お名前：&lt;%= userName %>&lt;/p>
  &lt;p>好きな色：&lt;%= favoriteColor %>&lt;/p>
  &lt;form action="thanks.jsp" method="post">
    &lt;input type="submit" value="送信する" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">完了画面：thanks.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String name = (String) session.getAttribute("userName");
  String color = (String) session.getAttribute("favoriteColor");

  // 必要があればセッションのデータを破棄
  session.invalidate();
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>送信完了&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>ご協力ありがとうございました！&lt;/h2>
  &lt;p>&lt;strong>&lt;%= name %>&lt;/strong> さんの好きな色は &lt;strong>&lt;%= color %>&lt;/strong> ですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center">&#x2705; まとめ</p>



<ul class="wp-block-list">
<li><strong>JSPとは何か</strong>
<ul class="wp-block-list">
<li>HTMLにJavaの処理を埋め込んで、動的なWebページを作成できる技術</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">サーバー側で処理され、HTMLとしてブラウザに返される</li>
</ul>
</li>



<li><strong>JSPの実行に必要な環境</strong>
<ul class="wp-block-list">
<li>JDKとTomcatが必須（Java実行環境とWebサーバー）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPファイルはTomcatの<code>webapps</code>内に配置することで動作する</li>
</ul>
</li>



<li><strong>JSPファイルの基本構文</strong>
<ul class="wp-block-list">
<li><code>&lt;%@ page %&gt;</code>：ページ全体の設定</li>



<li><code>&lt;%= ... %&gt;</code>：Javaの値をHTMLに出力</li>



<li><code>&lt;% ... %&gt;</code>：処理を書く（スクリプトレット）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%! ... %&gt;</code>：変数やメソッドの宣言</li>
</ul>
</li>



<li><strong>スクリプトレットの非推奨と代替方法</strong>
<ul class="wp-block-list">
<li>EL（式言語）で<code>${変数名}</code>と書くと簡単に出力可能</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLで<code>&lt;c:if&gt;</code>や<code>&lt;c:forEach&gt;</code>などの制御構文を記述可能</li>
</ul>
</li>



<li><strong>フォームデータの送受信</strong>
<ul class="wp-block-list">
<li><code>&lt;form&gt;</code>タグでデータをPOST送信し、<code>request.getParameter()</code>で取得</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">データをセッションに保存して複数ページで利用可能</li>
</ul>
</li>



<li><strong>セッションとCookieの使い分け</strong>
<ul class="wp-block-list">
<li>セッション：サーバー側に一時的に情報を保持（ログイン状態など）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">Cookie：ブラウザに保存し、次回アクセス時に自動送信（言語設定など）</li>
</ul>
</li>
</ul>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT初心者向け】入力チェック/バリデーションの意味を３分で解説</title>
		<link>https://it-biz.online/it-skills/check-the-input/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 26 May 2020 00:00:00 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=1820</guid>

					<description><![CDATA[SEやプログラマーでなくても理解しておきたい「入力チェックの基本・入力チェックの種類」について解説します。 この記事では、必須チェックや相関チェック、外字チェック等々、入力チェックの種類とその意味について丁寧にご説明いた [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>SEやプログラマーでなくても理解しておきたい「入力チェックの基本・入力チェックの種類」について解説します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>入力チェックとは、社内システムやWebサイトなどの各種入門画面を持つシステムにおいて、<strong><span class="marker-under">ユーザーからの入力データが予想される形式や範囲に適合しているかどうかを確認する</span></strong>プロセスを指します。</p>
</div></div>



<p>この記事では、必須チェックや相関チェック、外字チェック等々、入力チェックの種類とその意味について丁寧にご説明いたします。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>入力チェックとは？
<ul class="wp-block-list">
<li>入力チェックとバリデーションの違い</li>
</ul>
</li>



<li>基本的な入力チェックの意味とチェック内容</li>
</ul>
</div>
</div></div>



<p>システムエンジニアやプログラマーであれば知らないと<strong><span class="marker-under">恥ずかしい超・基本知識の１つ</span></strong>です。是非最後までご覧ください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">入力チェックとは</a></li><li><a href="#toc2" tabindex="0">入力チェック</a><ol><li><a href="#toc3" tabindex="0">１．必須チェック（必須入力チェック）</a></li><li><a href="#toc4" tabindex="0">２．項目長チェック（文字数チェック）</a></li><li><a href="#toc5" tabindex="0">３．属性チェック</a></li><li><a href="#toc6" tabindex="0">４．相関チェック</a></li><li><a href="#toc7" tabindex="0">５．存在チェック</a></li><li><a href="#toc8" tabindex="0">６．外字チェック</a></li><li><a href="#toc9" tabindex="0">７．権限チェック</a></li></ol></li><li><a href="#toc10" tabindex="0">補足：入力チェックと一緒に理解したい用語</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">入力チェックとは</span></h2>



<p>入力チェックとは、<strong><span class="marker-under">ユーザーからの入力データが予想される形式や範囲に適合しているかどうかを確認するプロセス</span></strong>のこと。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="867" height="378" src="https://it-biz.online/wp-content/uploads/2023/03/image-27.png" alt="" class="wp-image-6944" srcset="https://it-biz.online/wp-content/uploads/2023/03/image-27.png 867w, https://it-biz.online/wp-content/uploads/2023/03/image-27-300x131.png 300w, https://it-biz.online/wp-content/uploads/2023/03/image-27-500x218.png 500w, https://it-biz.online/wp-content/uploads/2023/03/image-27-768x335.png 768w, https://it-biz.online/wp-content/uploads/2023/03/image-27-800x349.png 800w" sizes="(max-width: 867px) 100vw, 867px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>例えば「生年月日」を入力する項目であれば正しく「〇〇〇〇/〇〇/〇〇」の形式で入力されているかどうか？を判定するのが入力チェック（＝この場合は形式チェック）です。</p>
</div></div>



<p>入力チェックは、システムやアプリケーションの正常な動作を保証するために重要な役割を果たしています。ユーザーが誤った形式のデータを入力した場合、システムはそれを適切に処理できず、エラーや不正な操作が発生する可能性が出てきます。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-question-circle"><span class="tab-caption-box-label-text block-box-label-text box-label-text">入力チェックとバリデーション</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>入力チェックと似たような意味をもつ「バリデーション」について少しだけ補足します。</p>
</div></div>



<p>「バリデーション」と「入力チェック」は、両方とも入力データの検証に関連する用語ですが、微妙に異なる意味で利用されます。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title">入力チェックとバリデーションの違い</div>
<ul class="wp-block-list">
<li><strong>入力チェック</strong><br>データの形式や範囲をチェックする際に利用される。</li>



<li><strong>バリデーション</strong><br>データの形式だけではなく<span style="text-decoration: underline;">要件やルールに適しているかどうかまでチェックする</span>際に利用される。</li>
</ul>
</div>
</div>



<p>「入力チェック」とは、入力データが予想される形式や範囲に適合しているかどうかを確認するプロセスを指します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>たとえば入力されたデータが数値である場合、それが数字のみで構成されているか、負の値ではないか、または特定の範囲内の数値であるかどうかを確認します。</p>
</div></div>



<p>一方、「バリデーション」は入力データが意図した用途に適しているかどうかを検証するプロセスを指します。つまり、<strong>データが予想される形式や範囲に適合しているだけでなく、システムやアプリケーションの要件や規則にも適合しているかどうかを確認</strong>します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>たとえば、ユーザーの登録フォームにおいて、パスワードが一定の強度基準を満たしているか、または入力されたメールアドレスが有効な形式であるかどうかを確認することができます。</p>
</div></div>



<p>つまり、入力チェックは入力データの形式や範囲の検証に重点を置いているのに対し、バリデーションはデータの用途や要件に適合しているかどうかを検証しています。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">入力チェック</span></h2>



<p>入力チェックは、ユーザビリティを考慮し、<strong><span class="marker-under">画面の上から下・左から右</span></strong>の項目順でチェックすることが基本です。</p>



<p>入力チェックには大きく分けて７種類のチェックが存在します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>現場やシステムの種類に応じて多少呼び方が異なる場合もあります。その点あらかじめご了承ください。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc3">１．必須チェック（必須入力チェック）</span></h3>



<p>最も基本形です。</p>



<p>項目に値が入力されているかどうかのチェックです。必須チェックには、「ある項目を選択したら関連項目も必須入力とする」条件付き必須チェックがあります。</p>



<p>例）転記日付が入力されていること</p>



<h3 class="wp-block-heading"><span id="toc4">２．項目長チェック（文字数チェック）</span></h3>



<p>入力された文字数が指定された文字数であること、もしくは指定された文字数以内であることをチェックします。</p>



<p>例１）備考欄は30文字以内であること</p>



<p>例２）契約番号は５桁で入力されていること</p>



<h3 class="wp-block-heading"><span id="toc5">３．属性チェック</span></h3>



<p>属性とは、文字/数字/日付などのデータ型のことです。</p>



<p>入力された項目が、指定されたデータ型と一致していることをチェックします。</p>



<p>ちなみに、同じ文字といっても「ひらがな」なのか「カタカナ」なのか、全角なのか半角なのか、細かく指定することも可能です。</p>



<p>例）日付項目に日付以外の値が入力されていないこと</p>



<h3 class="wp-block-heading"><span id="toc6">４．相関チェック</span></h3>



<p>相関チェックは、複数の項目に入力された値の妥当性のチェックです。</p>



<p>項目Aの入力値と、項目Bの入力値と、項目Cの入力値と、・・・に妥当性があるかどうかを制限するチェックです。</p>



<p>例）転記日付が登録日付より前の日付ではないこと</p>



<h3 class="wp-block-heading"><span id="toc7">５．存在チェック</span></h3>



<p>入力値に関連するデータがシステム（データベース）に存在しているかどうかをチェックします。</p>



<p>マスタの値から選択する場合などに用います。</p>



<p>例）勘定コードマスタに存在する勘定コードが入力されていること</p>



<h3 class="wp-block-heading"><span id="toc8">６．外字チェック</span></h3>



<p>外字とは、<strong>システムに存在しない文字のこと</strong>です。</p>



<p>つまり、最新のパソコンからであれば入力できるものの、システムには登録されていない文字のことです。「㉚」とか、特殊な文字をよく使う場合には必須です。</p>



<p>外字チェックとは、入力された項目に外字が指定されていないことをチェックすることです。</p>



<p>このチェックをしない場合、プログラム停止か、うまくいっても文字化けします。</p>



<p>例）備考欄にS-JIS以外の文字が入力されていないこと</p>



<h3 class="wp-block-heading"><span id="toc9">７．権限チェック</span></h3>



<p>入力された値によるデータへのアクセス権限をチェックします。</p>



<p>例えば、人事システムにおいて給料を確認する際に「自分以外を指定していないか」をチェックするなどというのが代表的な使い方です。</p>



<p>例）指定された会社コードの参照権限があること</p>



<h2 class="wp-block-heading"><span id="toc10">補足：入力チェックと一緒に理解したい用語</span></h2>



<p>入力チェックは、画面の入力欄だけでなく、APIやデータベースへ値を渡す前にも重要になります。何をチェックしているのかを考えるときは、データの種類やシステム間の受け渡しも一緒に見ると理解しやすいです。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/data_type/">データ型とは何か</a>を理解すると、数値・文字列・日付などのチェック観点が整理しやすくなります。</li>



<li><a href="https://it-biz.online/it-skills/web_api/">APIとは何か</a>を読むと、入力値を別システムへ送る前に検証する理由が見えてきます。</li>



<li><a href="https://it-biz.online/it-skills/character-code/">文字コード</a>も押さえておくと、外字チェックや文字化け対策の背景が理解しやすくなります。</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ngOnInitとは？Angularのライフサイクルを1からわかりやすく</title>
		<link>https://it-biz.online/web-design/lifesycle/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Fri, 10 Jan 2025 10:06:24 +0000</pubDate>
				<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Angular]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=9554</guid>

					<description><![CDATA[Angularのライフサイクルは、コンポーネントやディレクティブが「生成」「変化」「破棄」という流れで動作する仕組みを指します。ngOnInitはこのライフサイクルの中で、初期化のために特化したフックです。 目次 Ang [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>結論「<code><strong>ngOnInit</strong></code>は、Angularのライフサイクルフックの１つで、コンポーネントが初期化された直後に呼び出されます。主に、初期化処理やデータの準備を行うために使用されます。」</p>
</div>



<p>Angularのライフサイクルは、コンポーネントやディレクティブが「生成」「変化」「破棄」という流れで動作する仕組みを指します。<strong><code>ngOnInit</code>はこのライフサイクルの中で、初期化のために特化したフック</strong>です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p><strong><code>ngOnInit</code></strong>を理解するために、このページではAngularのライフサイクル/ライフサイクルフックの概念について解説します。</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Angularのライフサイクルとは？</a></li><li><a href="#toc2" tabindex="0">ライフサイクルフックとは？</a><ol><li><a href="#toc3" tabindex="0">Angularの主要フック</a></li><li><a href="#toc4" tabindex="0">ngOnInitの役割と特徴</a></li></ol></li><li><a href="#toc5" tabindex="0">ngOnInitを通じてライフサイクルを理解する</a><ol><li><a href="#toc6" tabindex="0">動作の原理</a></li></ol></li><li><a href="#toc7" tabindex="0">補足：ngOnInitはAngular全体の中で理解する</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Angularのライフサイクルとは？</span></h2>



<p>Angularのコンポーネントは以下のような「一生」を持っています：</p>



<ol class="wp-block-list">
<li><strong>生成 (Creation)</strong><br>コンポーネントが作られる瞬間。</li>



<li><strong>変化 (Change Detection)</strong><br>データが更新され、それに応じてビューが再描画される過程。</li>



<li><strong>破棄 (Destruction)</strong><br>役割を終えて、メモリから削除されるタイミング。</li>
</ol>



<p>この一連の流れが「ライフサイクル」です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>よりシステム的に言えば、対象のコードがロードされ、そのコードが外部からのリクエストで様々な動作をし、最終的に処理が終了する～、という一連の流れをライフサイクルと呼びます。</p>
</div></div>



<p>日常生活の例で考えてみると以下のようなイメージです。</p>



<ul class="wp-block-list is-style-numeric-list-step has-list-style">
<li><strong>生成</strong>: 新しい家を建てる。</li>



<li><strong>変化</strong>: 家具を配置し直したり、壁を塗り替える。</li>



<li><strong>破棄</strong>: 家を解体する。</li>
</ul>



<h2 class="wp-block-heading"><span id="toc2">ライフサイクルフックとは？</span></h2>



<p>ライフサイクルフックは、ライフサイクルの特定のタイミングで実行される<strong><span class="marker-under">「きっかけ」や「スイッチ」</span></strong>のようなものです。開発者がこれを利用して、適切なタイミングでカスタムロジックを追加することができます。</p>



<p>これをシステム的に捉えると、ライフサイクルフックは「状態遷移」に基づくイベント駆動型プログラミングの一部と説明できます。アプリケーションやコンポーネントは、それぞれの状態（生成、更新、破棄など）において異なる責務を持ち、ライフサイクルフックはその責務を実行するトリガーとして機能します。</p>



<h3 class="wp-block-heading"><span id="toc3">Angularの主要フック</span></h3>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table class="has-fixed-layout"><thead><tr><th>タイミング</th><th>フック名</th><th>主な用途</th></tr></thead><tbody><tr><td><strong>生成時</strong></td><td><code>constructor</code></td><td>コンポーネントのインスタンス化。依存性の注入。</td></tr><tr><td><strong>初期化時</strong></td><td><code>ngOnInit</code></td><td>初期設定や外部データの取得を実行。</td></tr><tr><td><strong>変更検知時</strong></td><td><code>ngOnChanges</code>、<code>ngDoCheck</code></td><td>入力データの変更を検知。</td></tr><tr><td><strong>描画後</strong></td><td><code>ngAfterViewInit</code></td><td>DOM要素や子コンポーネントが完全に初期化された後の処理。</td></tr><tr><td><strong>破棄時</strong></td><td><code>ngOnDestroy</code></td><td>メモリ解放やサブスクリプション解除。</td></tr></tbody></table></div></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">ngOnInitの役割と特徴</span></h3>



<p><code>ngOnInit</code>は、Angularがすべての入力プロパティ（<code>@Input</code>）を設定した後、1度だけ呼び出されます。<strong>生成フェーズの一部として、コンポーネントの初期化処理を担当</strong>します。</p>



<h4 class="wp-block-heading"><strong>特徴</strong></h4>



<ul class="wp-block-list">
<li><strong>呼び出し回数</strong>: 一度だけ呼び出される。</li>



<li><strong>依存性注入後に実行</strong>: コンストラクタで設定された依存性を利用可能。</li>



<li><strong>データが利用可能</strong>: 入力プロパティ（<code>@Input</code>）が初期化された状態。</li>
</ul>



<h4 class="wp-block-heading">用途</h4>



<ol class="wp-block-list">
<li><strong>初期データの設定</strong>
<ul class="wp-block-list">
<li>APIからのデータ取得。</li>



<li>初期状態を設定する。</li>
</ul>
</li>



<li><strong>入力データの利用</strong>
<ul class="wp-block-list">
<li><code>@Input</code>で渡された値を基にロジックを実行。</li>
</ul>
</li>



<li><strong>コンストラクタとの分離</strong>
<ul class="wp-block-list">
<li>初期化ロジックをコンストラクタから分離し、コードを整理する。</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc5">ngOnInitを通じてライフサイクルを理解する</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここからは具体的にどんな感じで動作するのか？をイメージできるように実際のコードを用いてご説明します。</p>
</div></div>



<p>以下のコードで<code>ngOnInit</code>がライフサイクル全体の中でどのように機能するかを見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="typescript" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-demo',
  template: `&lt;p>{{message}}&lt;/p>`
})
export class DemoComponent implements OnInit {
  @Input() userName: string = ''; // 入力プロパティ
  message: string = '';

  constructor() {
    console.log('Constructor: コンポーネントが生成されました');
  }

  ngOnInit() {
    console.log('ngOnInit: 初期化処理を実行します');
    this.message = `こんにちは、${this.userName}さん！`;
  }
}
</pre>



<p>このコードは、Angularのコンポーネントを使って、ユーザー名を受け取り、その名前を使ってメッセージを表示する仕組みを実現しています。以下に、実行結果と動作の原理をわかりやすく説明します。</p>



<p class="is-style-border-left-box has-box-style"><strong>実行結果</strong></p>



<p>このコンポーネントを以下のように使用すると、画面に「こんにちは、〇〇さん！」と表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="typescript" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;app-demo [userName]="'太郎'">&lt;/app-demo>
</pre>



<p>画面の表示：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="typescript" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">こんにちは、太郎さん！
</pre>



<h3 class="wp-block-heading"><span id="toc6">動作の原理</span></h3>



<ol class="wp-block-list">
<li><strong>コンポーネントの基本構成</strong>
<ul class="wp-block-list">
<li><code>@Component</code> デコレーターでコンポーネントの情報を設定します。</li>



<li><code>selector: 'app-demo'</code> により、このコンポーネントは <code>&lt;app-demo></code> というタグで使用可能になります。</li>



<li><code>template: &lt;p>{{message}}&lt;/p></code> で、HTMLテンプレートに表示する内容を指定しています。</li>
</ul>
</li>



<li><strong>入力プロパティ (<code>@Input</code>)</strong>
<ul class="wp-block-list">
<li><code>@Input()</code> デコレーターを使うと、親コンポーネントから値を受け取ることができます。</li>



<li>この例では、<code>userName</code> プロパティが入力プロパティで、親コンポーネントから値が渡されます。</li>
</ul>
</li>



<li><strong>コンストラクター</strong>
<ul class="wp-block-list">
<li><code>constructor()</code> は、コンポーネントが生成されたタイミングで一度だけ呼び出されます。</li>



<li>ここでは特別な処理はしていませんが、ログ出力で確認できます。</li>
</ul>
</li>



<li><strong><span class="marker-under">ngOnInit メソッド</span></strong>
<ul class="wp-block-list">
<li><code>ngOnInit()</code> は、コンポーネントが初期化された後に呼び出されます。</li>



<li>このメソッドで、<code>userName</code> を使って <code>message</code> の内容を設定しています。</li>
</ul>
</li>



<li><strong>動作の流れ</strong>
<ul class="wp-block-list">
<li>親コンポーネントから <code>&lt;app-demo [userName]="'太郎'">&lt;/app-demo></code> として <code>userName</code> に値が渡されます。</li>



<li><code>ngOnInit()</code> が実行され、<code>message</code> プロパティに「こんにちは、太郎さん！」という文字列がセットされます。</li>



<li>テンプレートの <code>&lt;p>{{message}}&lt;/p></code> がその値を表示します。</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading"><span id="toc7">補足：ngOnInitはAngular全体の中で理解する</span></h2>



<p>ngOnInitだけを単独で覚えるより、Angularのコンポーネントやデータ表示の流れとセットで見ると理解しやすくなります。どのタイミングで初期化処理を書くのか、どこから値が渡ってくるのかを順番に確認しましょう。</p>



<ul class="wp-block-list">

<li><a href="https://it-biz.online/web-design/what-is-angular/">Angularとは何か</a>を読むと、フレームワーク全体の役割を先に整理できます。</li>


<li><a href="https://it-biz.online/web-design/ng-generate-component/">Angularのコンポーネント作成</a>を押さえると、ngOnInitがどの部品の中で使われるかが見えやすくなります。</li>


<li><a href="https://it-biz.online/web-design/angular-binding/">Angularのデータバインディング</a>も一緒に読むと、初期化した値が画面に表示される流れを理解しやすくなります。</li>

</ul>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】let・const・var の違いとは？初心者向けに使い分けを3分で整理</title>
		<link>https://it-biz.online/web-design/var-let/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Wed, 22 Jan 2020 00:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=3318</guid>

					<description><![CDATA[JavaScriptの let・const・var の違いを初心者向けに整理します。スコープ、再代入、再宣言、使い分けの基本を押さえながら、いま新しく書くコードでどれを選べばよいかをわかりやすく解説します。]]></description>
										<content:encoded><![CDATA[
<p>JavaScriptの変数宣言を学ぶと、<code>let</code> と <code>const</code> と <code>var</code> の違いで迷いやすいです。が、結論からいうと、<strong><span class="marker-under">いま新しく書くコードでは「基本は <code>const</code>、再代入が必要なときだけ <code>let</code>、<code>var</code> は古いコードを読むための知識」と考えれば大丈夫</span></strong>です。</p>



<p>ただし、3つの違いを曖昧なまま使うと、変数のスコープや再宣言の挙動で混乱しやすくなります。この記事では、<strong><code>let</code>・<code>const</code>・<code>var</code> の違い、使い分け、よくあるつまずき</strong>を初心者向けに整理します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>迷ったら、まず <code>const</code> で書けないかを考えるのがいちばん実務的です。</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">結論：let・const・var の違いはここだけ押さえればOK</a></li><li><a href="#toc2" tabindex="0">1. var は古い書き方で、挙動が少し特殊</a></li><li><a href="#toc3" tabindex="0">2. let は「あとで値が変わる変数」に使う</a></li><li><a href="#toc4" tabindex="0">3. const は「基本の選択肢」</a></li><li><a href="#toc5" tabindex="0">4. どう使い分ければよいのか</a></li><li><a href="#toc6" tabindex="0">5. よくあるつまずき</a><ol><li><a href="#toc7" tabindex="0">宣言前に使おうとしてエラーになる</a></li><li><a href="#toc8" tabindex="0">const なのに中身を書き換えられる</a></li><li><a href="#toc9" tabindex="0">var を使っていて思わぬ場所で値が見えてしまう</a></li></ol></li><li><a href="#toc10" tabindex="0">補足：コードと実務場面で見る let・const・var の選び方</a><ol><li><a href="#toc11" tabindex="0">実務でよく見る場面</a></li><li><a href="#toc12" tabindex="0">迷ったときのチェックリスト</a></li><li><a href="#toc13" tabindex="0">この違いが分からないと困ること</a></li></ol></li><li><a href="#toc14" tabindex="0">関連して学びたい記事</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">結論：let・const・var の違いはここだけ押さえればOK</span></h2>



<figure class="wp-block-table aligncenter is-style-regular"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>宣言方法</th><th>スコープ</th><th>再代入</th><th>再宣言</th><th>使いどころ</th></tr></thead><tbody><tr><td><code>var</code></td><td>関数スコープ</td><td>できる</td><td>できる</td><td>古いコードを読むとき</td></tr><tr><td><code>let</code></td><td>ブロックスコープ</td><td>できる</td><td>できない</td><td>値が変わる変数</td></tr><tr><td><code>const</code></td><td>ブロックスコープ</td><td>できない</td><td>できない</td><td>値を固定したいとき</td></tr></tbody></table></div></figure>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-blue">ポイント</span> <strong>「スコープ」と「再代入できるか」で見分けると整理しやすいです</strong></p>
</div>



<h2 class="wp-block-heading"><span id="toc2">1. var は古い書き方で、挙動が少し特殊</span></h2>



<p><code>var</code> は昔からある変数宣言です。いまでも古いJavaScriptコードではよく見かけますが、<strong>ブロックスコープを持たない</strong>ため、初心者が混乱しやすい書き方でもあります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">if (true) {
  var message = "varで宣言";
}

console.log(message); // varで宣言</pre>



<p>この例では、<code>if</code> 文の中で宣言した <code>message</code> を外でも使えています。これは <code>var</code> が <code>{ }</code> のブロックではなく、関数単位で有効になるためです。</p>



<p>さらに <code>var</code> は同じスコープで再宣言もできるので、意図しない上書きが起きやすくなります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">var count = 1;
var count = 2;

console.log(count); // 2</pre>



<p>この柔らかさが便利な場面もありますが、現在の開発ではバグの原因になりやすいため、新しく書くコードではあまり使いません。</p>



<h2 class="wp-block-heading"><span id="toc3">2. let は「あとで値が変わる変数」に使う</span></h2>



<p><code>let</code> はブロックスコープを持つ変数宣言です。つまり、<code>if</code> 文や <code>for</code> 文などの <code>{ }</code> の中で宣言すると、その外では使えません。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">if (true) {
  let total = 10;
  console.log(total); // 10
}

// console.log(total); // ReferenceError</pre>



<p>また、<code>let</code> は再代入できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">let score = 0;

score = 100;

console.log(score); // 100</pre>



<p>そのため、カウントアップや入力値の更新など、<strong>途中で値が変わる前提の変数</strong>に向いています。</p>



<h2 class="wp-block-heading"><span id="toc4">3. const は「基本の選択肢」</span></h2>



<p><code>const</code> も <code>let</code> と同じくブロックスコープです。違いは、<strong>再代入できない</strong>ことです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">const taxRate = 0.1;

// taxRate = 0.2; // TypeError</pre>



<p>一度決めた値を後から変えたくないときに使うことで、「この値は書き換えないつもりです」という意図がコードから伝わります。</p>



<p>ただし、ここで1つだけ勘違いしやすい点があります。<code>const</code> は「中身が完全に不変」という意味ではありません。<strong>再代入できないのは変数そのもの</strong>で、オブジェクトや配列の中身は変更できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">const user = {
  name: "田中"
};

user.name = "佐藤";

console.log(user.name); // 佐藤</pre>



<p>この性質まで知っておくと、<code>const</code> への苦手意識がかなり減ります。</p>



<h2 class="wp-block-heading"><span id="toc5">4. どう使い分ければよいのか</span></h2>



<p>実務でも学習でも、使い分けは次のルールでほぼ十分です。</p>



<ul class="wp-block-list">
<li>基本は <code>const</code></li>



<li>あとで値を入れ替えるなら <code>let</code></li>



<li><code>var</code> は古いコードを読むときの知識</li>
</ul>



<p>たとえば、APIのURLや設定値、固定のメッセージなどは <code>const</code> に向いています。ループ回数や状態の更新などは <code>let</code> が自然です。</p>



<p>変数の有効範囲まで含めて理解したい方は、<a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープの記事</a>もあわせて読むと、より整理しやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc6">5. よくあるつまずき</span></h2>



<h3 class="wp-block-heading"><span id="toc7">宣言前に使おうとしてエラーになる</span></h3>



<p><code>let</code> と <code>const</code> は、宣言より前で使うとエラーになります。これは不具合ではなく、安全のための仕様です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="javascript">// console.log(price); // ReferenceError
let price = 500;</pre>



<h3 class="wp-block-heading"><span id="toc8">const なのに中身を書き換えられる</span></h3>



<p><code>const</code> は再代入を禁止するだけなので、配列の <code>push</code> やオブジェクトのプロパティ変更はできます。ここで「壊れている」と感じやすいですが、仕様どおりです。</p>



<h3 class="wp-block-heading"><span id="toc9">var を使っていて思わぬ場所で値が見えてしまう</span></h3>



<p>古いサンプルコードをそのまま写すと、<code>if</code> 文の外でも値が使えてしまい、なぜ動くのか分からなくなることがあります。そういうときはまず「<code>var</code> だからかもしれない」と疑うと解決しやすいです。</p>



<h2 class="wp-block-heading"><span id="toc10">補足：コードと実務場面で見る let・const・var の選び方</span></h2>



<p>ここまでで <code>let</code>・<code>const</code>・<code>var</code> の基本的な違いを整理しました。ここでは、実際にコードを書いているときに迷いやすい場面を、もう少し具体的に見ていきます。</p>



<p>特に初心者の方がつまずきやすいのは、「値を変えられるか」だけで判断してしまうことです。もちろん再代入できるかどうかは大事ですが、実務ではそれと同じくらい「その変数がどこから見えるか」も重要になります。</p>



<p>まずは次の画像で、<code>var</code> と <code>let</code> の見え方の違いを確認してください。コードそのものは短いですが、JavaScriptの変数宣言で混乱しやすいポイントが詰まっています。</p>



<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-var-let-code-result.png" alt="JavaScriptのvarとletのスコープ差をコードと実行結果で示した図" />
  <figcaption>varはブロックの外からも見えますが、letはブロックの外では使えません。</figcaption>
</figure>



<p>この画像で見てほしいのは、<code>if</code> の中で宣言した変数が、外側から使えるかどうかです。<code>var</code> で宣言した <code>oldName</code> は外側でも表示されますが、<code>let</code> で宣言した <code>newName</code> は外側で参照すると <code>ReferenceError</code> になります。</p>



<p>一見すると、外側でも使える <code>var</code> のほうが便利に見えるかもしれません。しかし、実務では「思ったより広い範囲から変数が見えてしまう」ことがバグにつながります。たとえば、画面の入力チェック、一覧の絞り込み、フォームの送信処理などでは、同じ名前の変数を別の場所で使ってしまうことがあります。そのとき、変数の有効範囲が広すぎると、どこで値が変わったのか追いかけにくくなります。</p>



<p>そのため、今から新しくJavaScriptを書くなら、まずは <code>const</code> を基本にして、値を後から入れ替える必要がある場合だけ <code>let</code> を使うのが安全です。<code>var</code> は「古いコードを読むために知っておくもの」と考えると、かなり整理しやすくなります。</p>



<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-var-let-choice-flow.png" alt="JavaScriptのlet const varの選び方を初心者向けに整理した比較表" />
  <figcaption>新しく書くコードでは、constを基本にして、値が変わるときだけletを選ぶと整理しやすくなります。</figcaption>
</figure>



<p>この図では、迷ったときの判断順を示しています。最初に「その値は後から変わるか」を考えます。変わらないなら <code>const</code>、変わるなら <code>let</code>、古いコードを読むときだけ <code>var</code> を理解する、という流れです。</p>



<p>たとえば、消費税率、APIのURL、HTML要素を取得した結果など、基本的に差し替えない値は <code>const</code> が向いています。一方で、クリック回数、フォーム入力の途中状態、ループの中で更新する合計値などは <code>let</code> が向いています。</p>



<pre><code>const taxRate = 0.1;
let total = 0;

for (const price of [100, 200, 300]) {
  total += price;
}

console.log(total); // 600</code></pre>



<p>この例では、<code>taxRate</code> のように変わらない値は <code>const</code>、<code>total</code> のように後から加算していく値は <code>let</code> にしています。こうして役割を分けると、後から読んだ人も「この値は変わるのか、変わらないのか」をすぐ判断できます。</p>



<p>よくあるミスは、すべてを何となく <code>let</code> で書いてしまうことです。動きはしますが、変わらないはずの値まで再代入できる状態になってしまいます。逆に、すべてを <code>const</code> にしてしまうと、カウントや合計のように値を更新する処理で困ります。大事なのは、宣言方法を暗記することではなく、変数の役割に合わせて選ぶことです。</p>



<h3 class="wp-block-heading"><span id="toc11">実務でよく見る場面</span></h3>



<p>実際の開発では、<code>const</code> は「参照先を変えないもの」によく使います。たとえば、フォーム要素を取得した結果、APIのエンドポイント、画面に表示する固定メッセージなどです。これらは一度決めたら別の値に差し替えないため、<code>const</code> にしておくと読み手が安心できます。</p>



<p><code>let</code> は、処理の途中で値が変わること自体に意味がある場面で使います。たとえば、検索条件を組み立てる途中の文字列、合計金額、ページ番号、バリデーション結果などです。あとで値が変わることが分かっているなら、<code>let</code> を使う理由があります。</p>



<p><code>var</code> は、古い記事や古い社内システムのコードを読むときに出てきます。新しく書くコードでは避けることが多いですが、既存コードを保守する場面では、<code>var</code> がなぜ外側から見えてしまうのかを理解しておく必要があります。</p>



<h3 class="wp-block-heading"><span id="toc12">迷ったときのチェックリスト</span></h3>



<ul class="wp-block-list">
<li>その値を後から入れ替える必要がないなら、まず <code>const</code> を選ぶ</li>



<li>カウントや合計のように値を更新するなら、<code>let</code> を選ぶ</li>



<li>古いコードを読むときだけ、<code>var</code> の関数スコープに注意する</li>



<li>同じ名前の変数を近い場所で何度も使っていないか確認する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc13">この違いが分からないと困ること</span></h3>



<p>変数宣言の違いを曖昧にしたままだと、最初は動いているように見えても、少しコードが長くなった時点で原因を追いにくい不具合が出ます。たとえば、同じ画面の中で検索条件、並び替え条件、入力チェック結果を扱っているとき、意図しない場所で変数が上書きされると、表示結果だけがおかしく見えることがあります。</p>



<p>このような不具合は、文法エラーとしてすぐ止まるとは限りません。画面は表示されるのに、検索結果だけ違う、ボタンを2回押したときだけ値が変になる、という形で現れることがあります。だからこそ、最初から変数の範囲を狭くし、変えない値は変えられないようにしておくことが大切です。</p>



<p>実務では、コードを書いた本人だけでなく、あとから別の人が読むことも多いです。<code>const</code> が使われていれば「この値は基本的に変わらない」、<code>let</code> が使われていれば「後で変わる可能性がある」と読み取れます。宣言方法そのものが、コードを読む人への小さなメッセージになります。</p>



<p>この考え方は、<a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープ</a> や <a href="https://it-biz.online/web-design/function/">function（関数）</a> を学ぶときにもつながります。変数がどこから見えるのか、どこで値が変わるのかを意識できると、JavaScriptのコードはかなり読みやすくなります。</p>



<p>もう少し実務寄りに考えると、変数宣言は「将来の自分が読み返したときのヒント」にもなります。数週間後に同じコードを見たとき、<code>const</code> で宣言されていれば、その値は途中で差し替えない前提だとすぐ分かります。</p>



<p>逆に <code>let</code> が使われている場合は、処理のどこかで値が変わる可能性を意識して読みます。デバッグするときも、最初から「この変数は更新されるものだ」と分かるため、確認すべき場所を絞り込みやすくなります。</p>



<p>初心者の段階では、まず「基本は <code>const</code>、必要なときだけ <code>let</code>、古いコードで <code>var</code> を読む」と決めておくと迷いが減ります。このルールだけでも、変数の上書きミスやスコープの勘違いをかなり減らせます。</p>



<p>小さなルールですが、コードが長くなるほど効果が出ます。変数宣言を丁寧に選ぶことは、バグを防ぐだけでなく、チームで読みやすいコードを書く第一歩になります。</p>



<h2 class="wp-block-heading"><span id="toc14">関連して学びたい記事</span></h2>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープ（変数の有効範囲）とは？</a></li>



<li><a href="https://it-biz.online/web-design/function/">JavaScriptの関数 function の使い方</a></li>



<li><a href="https://it-biz.online/web-design/arrow-function/">JavaScriptのアロー関数とは？</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span> <strong>let・const・var の使い分け</strong></p>

<ul class="wp-block-list">
<li><code>var</code> は古い書き方で、関数スコープを持つ</li>
<li><code>let</code> は再代入できるブロックスコープの変数</li>
<li><code>const</code> は再代入できないブロックスコープの定数</li>
<li>新しく書くコードでは、基本は <code>const</code>、必要に応じて <code>let</code> を使う</li>
<li><code>var</code> は主に古いコードを読むときに理解しておけば十分</li>
</ul>
</div>



<p>JavaScriptの変数宣言は、最初にきちんと整理しておくと後の学習がかなり楽になります。特にスコープと再代入の違いを押さえておくと、関数やアロー関数、非同期処理を学ぶときにもつまずきにくくなります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】コールバック関数とは？意味・使い方・Promiseとの違いをやさしく解説</title>
		<link>https://it-biz.online/web-design/callback-function/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 13 Feb 2024 04:20:37 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8900</guid>

					<description><![CDATA[JavaScriptのコールバック関数とは何かを初心者向けに解説します。基本の意味、配列処理や非同期処理での使い方、関数を渡す考え方、Promiseとの違いまでやさしく整理します。]]></description>
										<content:encoded><![CDATA[<p>JavaScriptの学習で「コールバック関数」という言葉が出てくると、一気に難しく感じやすいです。結論からいうと、<strong><span class="marker-under">コールバック関数とは「別の関数に引数として渡して、あとで実行してもらう関数」</span></strong>です。</p>
<p>意味だけ聞くと抽象的ですが、実際は配列処理やイベント処理、非同期処理で毎日のように使われます。この記事では、<strong>コールバック関数の意味、基本例、非同期処理との関係、Promiseとの違い</strong>を初心者向けに整理します。</p>
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
<div class="speech-person">
<figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
<div class="speech-name"></div>
</div>
<div class="speech-balloon">
<p>「あとで呼び出すために渡す関数」と言い換えると、かなり分かりやすくなります。</p>
</div>
</div>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">結論：コールバック関数は処理の差し込み口</a></li><li><a href="#toc2" tabindex="0">1. なぜコールバック関数を使うのか</a></li><li><a href="#toc3" tabindex="0">2. 配列処理でもコールバックは使われている</a></li><li><a href="#toc4" tabindex="0">3. 非同期処理でのコールバック関数</a></li><li><a href="#toc5" tabindex="0">4. Promise や async/await と何が違うのか</a></li><li><a href="#toc6" tabindex="0">5. よくあるつまずき</a><ol><li><a href="#toc7" tabindex="0">関数を渡すのではなく、その場で実行してしまう</a></li><li><a href="#toc8" tabindex="0">引数の流れが分からなくなる</a></li><li><a href="#toc9" tabindex="0">非同期処理だけの用語だと思ってしまう</a></li></ol></li><li><a href="#toc10" tabindex="0">補足：コールバック関数を実務で読むための見方</a><ol><li><a href="#toc11" tabindex="0">コールバックを読むときのチェックリスト</a></li><li><a href="#toc12" tabindex="0">コールバックで混乱しやすい実務場面</a></li></ol></li><li><a href="#toc13" tabindex="0">関連して学びたい記事</a></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">結論：コールバック関数は処理の差し込み口</span></h2>
<p>まずはシンプルな例を見てみます。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function processUser(name, callback) {
  console.log("処理開始");
  callback(name);
}

function greet(userName) {
  console.log("こんにちは、" + userName + "さん");
}

processUser("田中", greet);</pre>
<p>この例では、<code>greet</code> がコールバック関数です。<code>processUser</code> に渡されて、内部であとから実行されています。</p>
<p>つまり、コールバック関数は「処理の流れのどこかで実行したい追加処理」を外から差し込むための仕組みです。</p>
<h2 class="wp-block-heading"><span id="toc2">1. なぜコールバック関数を使うのか</span></h2>
<p>コールバック関数を使うと、親の関数の中身を固定しすぎず、実行する処理だけを外から差し替えられます。</p>
<p>たとえば、同じ「データ取得後の処理」でも、ある画面では表示したい、別の画面では保存したい、ということがあります。そんなとき、結果の後処理だけをコールバックとして渡せば、関数の再利用性が高まります。</p>
<h2 class="wp-block-heading"><span id="toc3">2. 配列処理でもコールバックは使われている</span></h2>
<p>コールバック関数は非同期処理だけの話ではありません。配列の <code>forEach</code> や <code>map</code> でも使われています。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">const numbers = [1, 2, 3];

numbers.forEach(function(number) {
  console.log(number);
});</pre>
<p><code>forEach</code> に渡している関数がコールバック関数です。配列の要素1つ1つに対して、あとで順番に呼び出されています。</p>
<p>この形はアロー関数と相性がよく、実務では次のようにもよく書きます。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">numbers.forEach(number =&gt; {
  console.log(number);
});</pre>
<p><a href="https://it-biz.online/web-design/foreach/">forEach の記事</a>や<a href="https://it-biz.online/web-design/arrow-function/">アロー関数の記事</a>もあわせて読むと、実際の見え方がつかみやすいです。</p>
<h2 class="wp-block-heading"><span id="toc4">3. 非同期処理でのコールバック関数</span></h2>
<p>コールバック関数が特に重要になるのは、時間がかかる処理の完了後に何かをしたい場面です。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">setTimeout(function() {
  console.log("2秒後に実行");
}, 2000);</pre>
<p>ここでは、<code>setTimeout</code> に渡した関数が2秒後に実行されます。これも立派なコールバック関数です。</p>
<p>つまり、「今すぐではなく、ある条件がそろった後で呼び出す関数」がコールバックだと考えると整理しやすいです。</p>
<h2 class="wp-block-heading"><span id="toc5">4. Promise や async/await と何が違うのか</span></h2>
<p>昔からJavaScriptの非同期処理ではコールバック関数がよく使われてきました。ただ、非同期処理が何段も続くと、関数の入れ子が深くなって読みにくくなることがあります。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">step1(function() {
  step2(function() {
    step3(function() {
      console.log("完了");
    });
  });
});</pre>
<p>このような状態は「コールバック地獄」と呼ばれます。そこで、今のJavaScriptでは Promise や async/await を使って、もっと読みやすく非同期処理を書くことが増えました。</p>
<p>ただし、だからといってコールバック関数が不要になるわけではありません。イベント処理、配列メソッド、ライブラリのAPIなどでは今でも頻繁に登場します。</p>
<h2 class="wp-block-heading"><span id="toc6">5. よくあるつまずき</span></h2>
<h3 class="wp-block-heading"><span id="toc7">関数を渡すのではなく、その場で実行してしまう</span></h3>
<p>コールバック関数では、<code>greet</code> を渡すのであって、<code>greet()</code> を先に実行するわけではありません。この違いは非常に大切です。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">processUser("田中", greet);   // OK
// processUser("田中", greet()); // これは別物</pre>
<h3 class="wp-block-heading"><span id="toc8">引数の流れが分からなくなる</span></h3>
<p>親の関数からコールバックへ、どの値が渡されるのかを追う必要があります。慣れるまでは、サンプルコードを紙に書いて流れを追うと理解しやすいです。</p>
<h3 class="wp-block-heading"><span id="toc9">非同期処理だけの用語だと思ってしまう</span></h3>
<p>実際には <code>forEach</code> や <code>map</code> のような同期処理でも使われています。コールバックは「使われる場面」ではなく、「関数の渡し方」の名前だと考えるのがポイントです。</p>
<h2><span id="toc10">補足：コールバック関数を実務で読むための見方</span></h2>
<p>コールバック関数は、言葉だけ見ると難しそうですが、実際には「あとで実行してほしい処理を、先に渡しておく仕組み」です。イベント処理、配列処理、API通信など、JavaScriptではかなり頻繁に登場します。</p>
<p>まずは、コールバックを処理の流れとして見てみます。ポイントは、関数をその場で実行するのではなく、別の関数に預けて、必要なタイミングで呼び出してもらうことです。</p>
<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-callback-flow.png" alt="JavaScriptのコールバック関数が後で呼ばれる流れを説明した図" /><figcaption>コールバック関数は、関数を渡し、親の関数が必要なタイミングであとから実行する仕組みです。</figcaption></figure>
<p>この図で見てほしいのは、「渡す」と「呼ぶ」が別のタイミングで起きることです。コールバック関数は、渡した瞬間に必ず実行されるわけではありません。親の関数の中で、条件がそろったとき、クリックされたとき、通信が終わったときなどに実行されます。</p>
<p>実務でよく見るのは、ボタンのクリック処理です。画面のボタンに対して「クリックされたらこの関数を実行してね」と登録する処理は、コールバックの代表例です。</p>
<pre><code>function sayHello() {
  console.log("こんにちは");
}

button.addEventListener("click", sayHello);</code></pre>
<p>この例では、<code>sayHello</code> をその場で実行しているのではなく、クリックされたときに実行してもらうために渡しています。ここで重要なのが、関数名の後ろに <code>()</code> を付けないことです。</p>
<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-callback-code-result.png" alt="JavaScriptで関数を渡す場合と実行する場合の違いを示した図" /><figcaption>関数を渡すときはカッコなし、関数をその場で実行するときはカッコありです。</figcaption></figure>
<p>この画像では、<code>sayHello</code> と <code>sayHello()</code> の違いを示しています。<code>sayHello</code> は関数そのものを渡しているため、クリック後に実行されます。一方で <code>sayHello()</code> はその場で関数を実行してしまい、イベントに登録したい処理としては意図とずれます。</p>
<p>初心者の方が混乱しやすいのは、「関数を渡す」と「関数を実行する」が見た目では少ししか違わないことです。カッコがあるかないかだけですが、意味は大きく変わります。コールバックを読むときは、まずその関数が今実行されるのか、あとで実行されるのかを確認しましょう。</p>
<p>もうひとつ大切なのは、コールバック関数は非同期処理だけの用語ではないという点です。<code>forEach</code> や <code>map</code> のような配列処理でも、引数として渡している関数はコールバックです。</p>
<pre><code>const numbers = [1, 2, 3];

numbers.forEach(number =&gt; {
  console.log(number);
});</code></pre>
<p>この例では、<code>number =&gt; { ... }</code> がコールバック関数です。配列の要素ごとにあとから呼ばれる処理として渡されています。配列処理でコールバックに慣れておくと、Promiseや <code>async/await</code> の理解にもつながります。</p>
<p>関連して、関数そのものの基本は <a href="https://it-biz.online/web-design/function/">function（関数）</a>、短く書く記法は <a href="https://it-biz.online/web-design/arrow-function/">アロー関数</a>、非同期処理の整理は <a href="https://it-biz.online/web-design/async-await/">async/await</a> を読むと理解がつながりやすいです。</p>
<h3><span id="toc11">コールバックを読むときのチェックリスト</span></h3>
<p>コールバック関数を読むときは、いきなり中身を細かく追うより、まず「誰が、いつ、この関数を呼ぶのか」を確認すると整理しやすいです。配列処理なら配列の各要素ごと、イベント処理ならクリックされたとき、通信処理なら結果が返ってきたとき、というように実行タイミングを先に押さえます。</p>
<ul>
<li>関数を渡しているだけなのか、その場で実行しているのか</li>
<li>コールバックに渡される引数は何か</li>
<li>戻り値を使う処理なのか、表示や保存などの副作用を起こす処理なのか</li>
<li>非同期処理なら、どの順番で実行されるのか</li>
</ul>
<p>特に非同期処理では、コードに書いた順番と実行される順番が一致しないことがあります。たとえば、タイマー、API通信、ファイル読み込みなどは、後から処理が完了します。その「完了したあとに何をするか」を渡すのが、コールバックの重要な役割です。</p>
<pre><code>console.log("開始");

setTimeout(() =&gt; {
  console.log("あとで実行");
}, 1000);

console.log("終了");</code></pre>
<p>このコードでは、出力順は「開始」「終了」「あとで実行」になります。<code>setTimeout</code> に渡した関数は、すぐには実行されず、指定した時間のあとに呼び出されるからです。</p>
<h3><span id="toc12">コールバックで混乱しやすい実務場面</span></h3>
<p>実務でコールバックが分かりにくくなるのは、処理が何段階もつながったときです。たとえば、ボタンを押す、入力値をチェックする、APIへ送る、結果を受け取る、画面を書き換える、という流れでは、それぞれのタイミングで関数が呼ばれます。</p>
<p>このとき、どの関数が最初に実行され、どの関数があとから実行されるのかを整理しないと、コードが急に読みにくくなります。特に、通信処理では結果が返ってくるまで時間がかかるため、「送った直後」と「結果が返った後」を分けて考えることが大切です。</p>
<p>最近のJavaScriptでは、非同期処理を <code>Promise</code> や <code>async/await</code> で書くことも多いですが、内部では「処理が終わったら次に何をするか」という考え方が残っています。つまり、コールバックを理解しておくと、より新しい書き方も読みやすくなります。</p>
<p>このように、コールバック関数は「処理の順番を後ろへ回す」「処理の一部を外から差し込む」ための基本的な考え方です。最初は難しく感じますが、イベント処理や配列処理の身近な例から慣れていくと、Promiseやasync/awaitも理解しやすくなります。</p>
<p>注意点として、コールバックに渡す関数をその場で実行してしまうミスはとても多いです。イベントに登録したいのに <code>()</code> を付けてしまうと、クリック前に処理が走ってしまい、クリック時には何も起きないように見えることがあります。</p>
<p>もうひとつのよくあるミスは、コールバックの中で使う値が、実行されるタイミングでは変わっているケースです。特にループや非同期処理では、コードを書いた順番だけでなく、実際にいつ呼ばれるかを意識する必要があります。</p>
<p>コールバックを読むときは、「渡している関数」「受け取っている関数」「実行されるタイミング」を分けてメモすると整理しやすいです。最初は少し面倒に感じますが、この3つを分けるだけで、イベント処理やAPI通信のコードがかなり読みやすくなります。</p>
<p>実務では、ボタンを押した後の処理、入力フォームの変更検知、通信完了後の画面更新など、ユーザー操作とコールバックが強く結びつきます。つまり、コールバックは文法だけでなく、画面の動きそのものを理解するための考え方でもあります。</p>
<p>慣れてきたら、コールバックで書かれた処理を <code>async/await</code> ではどう表すかを比べてみると理解が深まります。書き方は変わっても、「ある処理が終わった後に次の処理を実行する」という基本は同じです。</p>
<p>最初は、ボタンや配列処理のような身近な例から確認すると十分です。小さな例で「あとで呼ばれる」感覚をつかめると、非同期通信のコードも段階的に読みやすくなります。</p>
<p>迷ったときは、関数名の後ろにカッコがあるかを最初に確認しましょう。</p>
<h2 class="wp-block-heading"><span id="toc13">関連して学びたい記事</span></h2>
<ul class="wp-block-list">
<li><a href="https://it-biz.online/web-design/function/">JavaScriptの関数 function の使い方</a></li>
<li><a href="https://it-biz.online/web-design/arrow-function/">JavaScriptのアロー関数とは？</a></li>
<li><a href="https://it-biz.online/web-design/foreach/">JavaScriptの forEach メソッドとは？</a></li>
</ul>
<h2 class="wp-block-heading"><span id="toc14">まとめ</span></h2>
<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span> <strong>コールバック関数の基本</strong></p>
<ul class="wp-block-list">
<li>コールバック関数は、別の関数に渡してあとで実行してもらう関数</li>
<li>配列処理、イベント処理、非同期処理でよく使われる</li>
<li>関数そのものを渡すのであって、先に実行するわけではない</li>
<li>非同期処理が深く入れ子になると読みにくくなる</li>
<li>Promise や async/await は、その読みにくさを改善するための考え方</li>
</ul>
</div>
<p>コールバック関数は、最初は抽象的に見えますが、「後で呼び出すための関数を渡しているだけ」と分かると一気に読みやすくなります。JavaScriptの非同期処理を理解する土台にもなるので、ここでしっかり押さえておくのがおすすめです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】function（関数）とは？使い方と引数・戻り値を初心者向けに解説</title>
		<link>https://it-biz.online/web-design/function/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 28 Jan 2020 12:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=3439</guid>

					<description><![CDATA[JavaScriptの function（関数）とは何かを初心者向けに解説します。関数の意味、書き方、引数と戻り値、関数式との違い、スコープの基本までシンプルに整理します。]]></description>
										<content:encoded><![CDATA[<p>JavaScriptを学び始めると、何度も同じ処理を書くのが面倒に感じる場面が出てきます。そんなときに使うのが関数です。結論からいうと、<strong><span class="marker-under">関数とは「処理をまとめて名前を付けた再利用できる部品」</span></strong>です。</p>
<p>関数を理解すると、コードの重複を減らし、読みやすく保守しやすいプログラムを書けるようになります。この記事では、<strong>JavaScriptの関数とは何か、書き方、引数と戻り値、よくあるつまずき</strong>を初心者向けに整理します。</p>
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
<div class="speech-person">
<figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
<div class="speech-name"></div>
</div>
<div class="speech-balloon">
<p>まずは「同じ処理を何度も使い回すための仕組み」と覚えるだけでも十分です。</p>
</div>
</div>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-11" checked><label class="toc-title" for="toc-checkbox-11">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">結論：関数で押さえたいのは3つだけ</a></li><li><a href="#toc2" tabindex="0">1. 関数とは何か</a></li><li><a href="#toc3" tabindex="0">2. JavaScriptで関数を書く基本形</a></li><li><a href="#toc4" tabindex="0">3. 引数と戻り値を理解すると実用的になる</a></li><li><a href="#toc5" tabindex="0">4. 関数宣言と関数式の違い</a></li><li><a href="#toc6" tabindex="0">5. 関数の中で作った変数は外では使えない</a></li><li><a href="#toc7" tabindex="0">6. よくあるつまずき</a><ol><li><a href="#toc8" tabindex="0">関数を定義しただけで実行されたと思い込む</a></li><li><a href="#toc9" tabindex="0">return と console.log を同じものだと思ってしまう</a></li><li><a href="#toc10" tabindex="0">引数を受け取る関数に値を渡し忘れる</a></li></ol></li><li><a href="#toc11" tabindex="0">補足：関数を実務で使うときの見方</a><ol><li><a href="#toc12" tabindex="0">関数に切り出すか迷ったときの判断</a></li><li><a href="#toc13" tabindex="0">よくあるミスを防ぐコツ</a></li><li><a href="#toc14" tabindex="0">関数を小さく分けるメリット</a></li><li><a href="#toc15" tabindex="0">関数を書くときの順番</a></li></ol></li><li><a href="#toc16" tabindex="0">関連して学びたい記事</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">結論：関数で押さえたいのは3つだけ</span></h2>
<ul class="wp-block-list">
<li>関数は処理のまとまり</li>
<li>引数は関数に渡す入力</li>
<li>戻り値は関数が返す結果</li>
</ul>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function add(a, b) {
  return a + b;
}

const result = add(3, 5);
console.log(result); // 8</pre>
<p>この短いコードだけでも、関数の基本が詰まっています。<code>add</code> が関数名、<code>a</code> と <code>b</code> が引数、<code>return a + b;</code> が戻り値です。</p>
<h2 class="wp-block-heading"><span id="toc2">1. 関数とは何か</span></h2>
<p>関数は、一連の処理をひとまとまりにしたものです。たとえば「税込価格を計算する」「あいさつ文を作る」「ボタンが押されたら実行する処理」などを関数として切り出せます。</p>
<p>関数を使うメリットは主に次の3つです。</p>
<ul class="wp-block-list">
<li>同じコードを何度も書かずに済む</li>
<li>処理の意味が名前で分かるようになる</li>
<li>修正箇所を1か所にまとめやすい</li>
</ul>
<h2 class="wp-block-heading"><span id="toc3">2. JavaScriptで関数を書く基本形</span></h2>
<p>もっとも基本的な書き方は、<code>function</code> を使う関数宣言です。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function greet(name) {
  console.log("こんにちは、" + name + "さん");
}

greet("田中");</pre>
<p>この例では、<code>greet</code> という名前の関数を定義し、後から <code>greet("田中")</code> のように呼び出しています。</p>
<p>書き方の流れは次のとおりです。</p>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>要素</th>
<th>意味</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>function</code></td>
<td>関数を定義するという宣言</td>
</tr>
<tr>
<td><code>greet</code></td>
<td>関数名</td>
</tr>
<tr>
<td><code>(name)</code></td>
<td>引数</td>
</tr>
<tr>
<td><code>{ ... }</code></td>
<td>実行する処理</td>
</tr>
</tbody>
</table></div>
</figure>
<h2 class="wp-block-heading"><span id="toc4">3. 引数と戻り値を理解すると実用的になる</span></h2>
<p>関数は外から値を受け取り、その結果を返せます。これが引数と戻り値です。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function getTaxIncludedPrice(price) {
  return price * 1.1;
}

const total = getTaxIncludedPrice(1000);
console.log(total); // 1100</pre>
<p><code>price</code> が引数、<code>price * 1.1</code> が戻り値です。こうしておくと、1000円でも2000円でも同じ関数を再利用できます。</p>
<p>初心者の方は、<strong>引数 = 入力、戻り値 = 出力</strong> と考えると整理しやすいです。</p>
<h2 class="wp-block-heading"><span id="toc5">4. 関数宣言と関数式の違い</span></h2>
<p>JavaScriptでは、関数は <code>function</code> で宣言する以外に、変数へ代入する形でも書けます。これを関数式といいます。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">const greet = function(name) {
  console.log("こんにちは、" + name + "さん");
};</pre>
<p>動作の考え方は似ていますが、書き方や呼び出せるタイミングに違いがあります。関数式の基本を知りたい方は、<a href="https://it-biz.online/web-design/function-expression/">関数式の記事</a>も合わせて読むと理解が深まります。</p>
<p>また、最近のJavaScriptではこの関数式を短く書ける<a href="https://it-biz.online/web-design/arrow-function/">アロー関数</a>もよく使われます。</p>
<h2 class="wp-block-heading"><span id="toc6">5. 関数の中で作った変数は外では使えない</span></h2>
<p>関数には独自のスコープがあります。つまり、関数の中で宣言した変数は、外からは参照できません。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function sample() {
  const message = "関数の中だけ";
  console.log(message);
}

sample();
// console.log(message); // ReferenceError</pre>
<p>このルールを知っておくと、「なぜその変数が使えないのか」で悩みにくくなります。スコープをしっかり整理したい方は、<a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープ解説</a>もおすすめです。</p>
<h2 class="wp-block-heading"><span id="toc7">6. よくあるつまずき</span></h2>
<h3 class="wp-block-heading"><span id="toc8">関数を定義しただけで実行されたと思い込む</span></h3>
<p>関数は定義しただけでは実行されません。最後に <code>()</code> を付けて呼び出して初めて動きます。</p>
<h3 class="wp-block-heading"><span id="toc9">return と console.log を同じものだと思ってしまう</span></h3>
<p><code>console.log</code> は表示するだけ、<code>return</code> は関数の結果を返すためのものです。ここを区別できると、関数の理解が一気に進みます。</p>
<h3 class="wp-block-heading"><span id="toc10">引数を受け取る関数に値を渡し忘れる</span></h3>
<p>関数に必要な引数を渡さないと、<code>undefined</code> になることがあります。エラーではなく動いてしまう分、初心者が見落としやすいポイントです。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="javascript">function greet(name) {
  console.log("こんにちは、" + name + "さん");
}

greet(); // こんにちは、undefinedさん</pre>
<h2><span id="toc11">補足：関数を実務で使うときの見方</span></h2>
<p>関数は、文法として覚えるだけでは少しもったいないです。実務では、関数を「処理を分けて、名前を付けて、あとから使いやすくするための部品」として使います。問い合わせフォーム、料金計算、入力チェック、画面の表示切り替えなど、同じような処理が何度も出てくる場面で特に役立ちます。</p>
<p>まずは、関数を入力から結果までの流れとして見てみます。関数が苦手な方は、<code>function</code> という単語よりも「引数・処理・戻り値」の3点に分けて考えると理解しやすくなります。</p>
<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-function-input-output-flow.png" alt="JavaScript関数の引数処理戻り値の流れを説明した図" /><figcaption>関数は、引数を受け取り、処理を行い、戻り値を返す部品として見ると整理しやすいです。</figcaption></figure>
<p>この図で見てほしいのは、関数の中に入るものと、関数から出てくるものです。引数は関数に渡す入力、戻り値は関数が呼び出し元へ返す結果です。たとえば税込価格を計算する関数なら、税抜価格が引数で、税込価格が戻り値になります。</p>
<pre><code>function addTax(price) {
  return Math.floor(price * 1.1);
}

const total = addTax(1000);
console.log(total); // 1100</code></pre>
<p>この例では、<code>1000</code> が引数として関数に入り、計算された <code>1100</code> が戻り値として返っています。戻り値があるからこそ、結果を <code>total</code> に入れて、次の処理で使えます。</p>
<p>初心者が特につまずきやすいのが、<code>return</code> と <code>console.log</code> の違いです。どちらも画面上では何かが表示されることがあるため、同じものだと思いやすいですが、役割はまったく違います。</p>
<figure class="wp-block-image size-large">
  <img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/js-function-return-code-result.png" alt="JavaScriptのreturnとconsole.logの違いをコードと結果で示した図" /><figcaption>console.logは表示、returnは値を返す処理です。次の処理で使いたいならreturnが必要です。</figcaption></figure>
<p>この画像では、関数の中で <code>console.log(a + b)</code> を実行しているため、画面には <code>5</code> が表示されます。しかし、関数が <code>return</code> していないため、<code>result</code> には <code>undefined</code> が入ります。</p>
<p>実務でよくあるのは、デバッグ中に <code>console.log</code> で値が見えたため「関数が値を返している」と勘違いするケースです。画面に表示するだけなら <code>console.log</code> で十分ですが、その計算結果を別の関数へ渡したり、画面表示に使ったりするなら <code>return</code> が必要です。</p>
<p>もうひとつ大事なのは、関数名です。関数名はコメントの代わりにもなります。<code>calc</code> のような曖昧な名前より、<code>calculateTotalPrice</code> や <code>validateEmail</code> のように、何をする関数なのか分かる名前にすると、あとから読む人が理解しやすくなります。</p>
<p>関数を理解したら、次は <a href="https://it-biz.online/web-design/arrow-function/">アロー関数</a> や <a href="https://it-biz.online/web-design/callback-function/">コールバック関数</a> へ進むと自然です。どちらも関数の考え方を土台にしているため、引数と戻り値を押さえておくと一気に読みやすくなります。</p>
<h3><span id="toc12">関数に切り出すか迷ったときの判断</span></h3>
<p>初心者のうちは、どこまでを関数にすればよいか迷いやすいです。判断の目安は、「同じ処理が2回以上出てくるか」「処理に名前を付けると読みやすくなるか」です。同じ計算、同じチェック、同じ表示処理が何度も出てくるなら、関数に切り出す価値があります。</p>
<p>たとえば、メールアドレスの形式チェックを複数の画面で使うなら、毎回同じコードを書くより <code>validateEmail</code> のような関数にまとめたほうが安全です。あとでチェック条件を変えたいときも、修正箇所を1つにできます。</p>
<pre><code>function validateEmail(email) {
  return email.includes("@");
}

if (!validateEmail(inputValue)) {
  console.log("メールアドレスを確認してください");
}</code></pre>
<p>この例では、メールアドレスらしいかを確認する処理を関数にしています。実務ではもっと厳密なチェックが必要になることもありますが、「何を確認している処理なのか」が関数名で分かる点が大きなメリットです。</p>
<h3><span id="toc13">よくあるミスを防ぐコツ</span></h3>
<ul>
<li>関数を作っただけで満足せず、必要な場所で呼び出す</li>
<li>戻り値を使うなら、必ず <code>return</code> を書く</li>
<li>関数名は「何をするか」が分かる動詞から始める</li>
<li>1つの関数に、関係ない処理を詰め込みすぎない</li>
</ul>
<h3><span id="toc14">関数を小さく分けるメリット</span></h3>
<p>関数を小さく分けると、コード全体の流れが追いやすくなります。たとえば、会員登録画面の処理を考えると、入力値を取得する、メールアドレスをチェックする、パスワードをチェックする、エラーを表示する、送信する、という複数の役割があります。これを1つの大きな関数に全部入れると、どこで何をしているのか分かりにくくなります。</p>
<p>一方で、それぞれを関数に分けると、処理の名前を見るだけで流れを読めるようになります。<code>getFormValues</code>、<code>validateEmail</code>、<code>showErrorMessage</code> のように分けておけば、細かい中身を読む前に全体像をつかめます。</p>
<p>もちろん、何でも細かく分ければよいわけではありません。1回しか使わず、名前を付けても分かりやすくならない処理まで無理に関数化すると、逆に読みにくくなります。まずは「同じ処理が繰り返される」「名前を付けると意味が伝わる」「修正箇所をまとめたい」という場面から関数化するとよいです。</p>
<h3><span id="toc15">関数を書くときの順番</span></h3>
<p>関数を書くときは、いきなり文法から入るよりも、「何を受け取るか」「何を返すか」「関数名を何にするか」の順番で考えると整理しやすいです。たとえば税込価格を計算するなら、受け取るのは税抜価格、返すのは税込価格、関数名は <code>addTax</code> や <code>calculateTaxIncludedPrice</code> のようになります。</p>
<p>この順番で考えると、関数の中身も自然に決まります。引数が足りない、戻り値を返し忘れる、関数名と処理内容が合っていない、といったミスにも気づきやすくなります。</p>
<ul>
<li>まず、関数に渡す入力を決める</li>
<li>次に、呼び出し元へ返す結果を決める</li>
<li>最後に、処理内容が分かる名前を付ける</li>
</ul>
<p>関数は、JavaScriptだけでなく多くのプログラミング言語で使う基本です。ここで「入力、処理、戻り値」の感覚をつかんでおくと、アロー関数、コールバック関数、Promise、async/awaitを学ぶときにも土台になります。</p>
<p>関数は、コードを短くするためだけのものではありません。処理に名前を付け、あとから読み返しやすくし、修正しやすくするための整理方法でもあります。</p>
<p>実務では、関数を作ったあとに「この関数は何を知らなくてよいか」も考えます。たとえば、税込価格を計算する関数なら、画面のどこに表示するかまでは知らなくて構いません。計算は計算、表示は表示に分けると、修正時の影響範囲が小さくなります。</p>
<p>この分け方ができると、同じ関数を別の画面でも使いやすくなります。商品一覧、カート、注文確認画面で同じ計算を使う場合、計算処理を1つにまとめておけば、税率や丸め方を変えるときも修正漏れを防げます。</p>
<p>初心者のうちは、まず「関数名だけを読んで処理の目的が想像できるか」を確認してみてください。名前を見ても目的が分からない場合は、処理を詰め込みすぎているか、名前が曖昧な可能性があります。</p>
<p>関数は、プログラムの中に小さな見出しを作るようなものです。適切に分けられた関数は、コード全体を読みやすくし、ミスが起きたときに調べる場所を見つけやすくしてくれます。</p>
<p>また、関数を小さくしておくとテストもしやすくなります。入力に対して期待した戻り値が返るかを確認できるため、画面全体を動かさなくても一部の処理だけを検証できます。</p>
<h2 class="wp-block-heading"><span id="toc16">関連して学びたい記事</span></h2>
<ul class="wp-block-list">
<li><a href="https://it-biz.online/web-design/function-expression/">JavaScriptの関数式とは？</a></li>
<li><a href="https://it-biz.online/web-design/arrow-function/">JavaScriptのアロー関数とは？</a></li>
<li><a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープとは？</a></li>
</ul>
<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>
<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span> <strong>JavaScriptの関数の基本</strong></p>
<ul class="wp-block-list">
<li>関数は処理をまとめて再利用するための仕組み</li>
<li>引数は入力、戻り値は出力</li>
<li><code>function</code> を使う書き方が基本</li>
<li>関数の中で宣言した変数は外から使えない</li>
<li>関数式やアロー関数もあわせて学ぶと理解が広がる</li>
</ul>
</div>
<p>JavaScriptの関数は、文法そのものよりも「何のために使うのか」が分かると覚えやすくなります。まずは短い関数を自分で書いて、引数と戻り値の流れに慣れていくのがおすすめです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>alt属性とは？imgタグの代替テキストの書き方を初心者向けに解説</title>
		<link>https://it-biz.online/web-design/html-alt-attribute/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Sat, 25 Apr 2026 10:57:37 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10564</guid>

					<description><![CDATA[HTMLのalt属性とは何かを初心者向けに解説します。imgタグの代替テキストの役割、画像の種類別の書き方、空のaltを使う場面、title属性やファイル名との違いまで整理します。]]></description>
										<content:encoded><![CDATA[
<p>HTMLで画像を表示するときは <code>img</code> タグを使います。そのときによく出てくるのが <code>alt</code> 属性です。画像タグの例を見るとほぼ必ず書かれていますが、「何を書けばいいのか」「空でもいいのか」で迷いやすい属性でもあります。</p>



<p>結論からいうと、<strong><span class="marker-under">alt属性とは、画像が見えない・読み上げられる・読み込めないときに、画像の意味を文字で補うための属性</span></strong>です。SEOのためだけにキーワードを詰める場所ではなく、画像が伝えている内容をテキストで伝えるために使います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず見てください：alt属性は画像の意味を文字で補う</a></li><li><a href="#toc2" tabindex="0">結論：alt属性は画像の代替テキストを書く場所</a></li><li><a href="#toc3" tabindex="0">alt属性が必要な理由</a></li><li><a href="#toc4" tabindex="0">alt属性の基本的な書き方</a></li><li><a href="#toc5" tabindex="0">画像の種類ごとにaltの書き方を変える</a></li><li><a href="#toc6" tabindex="0">実務で使うalt属性の例</a></li><li><a href="#toc7" tabindex="0">title属性やファイル名との違い</a></li><li><a href="#toc8" tabindex="0">alt属性でよくあるミス</a></li><li><a href="#toc9" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず見てください：alt属性は画像の意味を文字で補う</span></h2>



<p>alt属性の役割は、画像の代わりになる説明文を用意することです。まずは、imgタグにalt属性を書いたコードと、ブラウザ側で画像の意味がどう補われるかを並べて見てみましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/html-alt-attribute-code-result.png" alt="alt属性のソースコードとブラウザでの表示結果を並べた説明画像"/></figure>



<p>この画像で大切なのは、alt属性が「画像ファイルの名前」ではなく「画像が伝えている意味」を補う点です。左側の <code>alt="ログイン画面の入力例"</code> は、右側の画像が見えない・読み上げられる場面でも、何の画像なのかを伝えるための文章です。装飾だけの画像なら、例のように <code>alt=""</code> と空にすることもあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>alt属性は「この画像が見えなかったら、何と説明すれば伝わるか」で考えると書きやすいです。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">結論：alt属性は画像の代替テキストを書く場所</span></h2>



<p><code>alt</code> 属性は、<a href="https://it-biz.online/web-design/img/">imgタグ</a> に書く代替テキストです。代替テキストとは、画像そのものが使えないときに、画像の役割や内容を文字で伝えるための説明です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;img src="contact-form.png" alt="問い合わせフォームの入力例"&gt;</pre>



<p>この例では、画像が「問い合わせフォームの入力例」を示していることをalt属性で伝えています。画像ファイル名の説明ではなく、ページを読んでいる人にとって必要な意味を言葉にしている点が重要です。</p>



<h2 class="wp-block-heading"><span id="toc3">alt属性が必要な理由</span></h2>



<p>alt属性が必要な理由は、大きく3つあります。どれも「画像が見える人だけに情報が偏らないようにする」ためのものです。</p>



<ul class="wp-block-list">
<li>画像が読み込めないときに内容を補える</li>
<li>スクリーンリーダーなどで画像の意味を伝えやすくなる</li>
<li>検索エンジンにも画像の内容を理解してもらいやすくなる</li>
</ul>



<p>ただし、SEOだけを目的に不自然なキーワードを詰め込むのは逆効果です。alt属性は、あくまで画像の代わりになる説明です。ページの内容と関係ない言葉や、同じキーワードの連続は避けます。</p>



<h2 class="wp-block-heading"><span id="toc4">alt属性の基本的な書き方</span></h2>



<p>基本形は、imgタグの中に <code>alt="説明文"</code> を書きます。説明文は長すぎず、画像の意味が伝わる自然な日本語にします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;img src="login-screen.png" alt="ログイン画面でメールアドレスとパスワードを入力する例"&gt;</pre>



<p>このように書くと、画像が表示されない状況でも「ログイン画面の入力例を示す画像だ」と分かります。単に <code>alt="画像"</code> や <code>alt="login-screen"</code> とするより、読者にとって意味が伝わりやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc5">画像の種類ごとにaltの書き方を変える</span></h2>



<p>alt属性は、すべての画像に同じテンションで説明を書けばよいわけではありません。画像がページ内でどんな役割を持っているかによって、書き方を変えます。</p>



<figure class="wp-block-table is-style-regular"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>画像の種類</th><th>altの考え方</th><th>例</th></tr></thead><tbody><tr><td>内容を伝える画像</td><td>画像から分かる重要な情報を書く</td><td><code>alt="商品Aの正面写真"</code></td></tr><tr><td>操作説明の画像</td><td>何の画面・手順を示すかを書く</td><td><code>alt="会員登録フォームの入力例"</code></td></tr><tr><td>リンクになっている画像</td><td>クリック先や操作の意味を書く</td><td><code>alt="資料をダウンロードする"</code></td></tr><tr><td>装飾だけの画像</td><td>空のaltにすることがある</td><td><code>alt=""</code></td></tr></tbody></table></div></figure>



<p>装飾画像に長い説明を入れると、読み上げ時に余計な情報が増えてしまいます。逆に、内容を伝える画像のaltが空だと、画像を見られない人に必要な情報が届きません。画像の役割を見て、説明するか空にするかを判断します。</p>



<h2 class="wp-block-heading"><span id="toc6">実務で使うalt属性の例</span></h2>



<p>ブログや企業サイトでは、alt属性を書く場面が多くあります。たとえば記事内の説明画像、商品写真、サービス紹介の図、操作手順のスクリーンショットなどです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;img src="html-form-example.png" alt="HTMLフォームで氏名とメールアドレスを入力する例"&gt;

&lt;img src="service-flow.png" alt="問い合わせから契約までの流れを示す図"&gt;

&lt;img src="decoration-line.png" alt=""&gt;</pre>



<p>1つ目と2つ目は、画像そのものが情報を持っているため説明を書いています。3つ目は装飾線のような画像を想定しているため、空のaltにしています。すべての画像へ機械的に文章を入れるのではなく、画像の役割に合わせるのがポイントです。</p>



<h2 class="wp-block-heading"><span id="toc7">title属性やファイル名との違い</span></h2>



<p>alt属性は、title属性や画像ファイル名とは役割が違います。混同しやすいので、ここで整理しておきます。</p>



<figure class="wp-block-table is-style-regular"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>項目</th><th>役割</th><th>代替テキストとして使えるか</th></tr></thead><tbody><tr><td><code>alt</code></td><td>画像の代替テキスト</td><td>使える。ここが本命</td></tr><tr><td><code>title</code></td><td>補足情報として表示されることがある</td><td>altの代わりにはしない</td></tr><tr><td>ファイル名</td><td>画像ファイルを識別する名前</td><td>読者向け説明とは別物</td></tr></tbody></table></div></figure>



<p>たとえば <code>img001.png</code> というファイル名では、画像の意味はほとんど伝わりません。title属性も補足には使えますが、alt属性の代わりとして考えないほうが安全です。</p>



<h2 class="wp-block-heading"><span id="toc8">alt属性でよくあるミス</span></h2>



<ul class="wp-block-list">
<li><code>alt="画像"</code> のように意味が伝わらない説明にする</li>
<li>画像と関係ないSEOキーワードを詰め込む</li>
<li>装飾画像にも長い説明を入れてしまう</li>
<li>内容を伝える画像なのに <code>alt=""</code> にしてしまう</li>
<li>title属性を書いたからalt属性はいらないと思い込む</li>
</ul>



<p>alt属性は、短ければよい、長ければよいというものではありません。大事なのは、画像を見られない人にもページの意味が伝わることです。迷ったら「この画像が表示されなかったら、どんな一文があれば困らないか」と考えてみてください。</p>



<h2 class="wp-block-heading"><span id="toc9">まとめ</span></h2>



<p>alt属性は、imgタグで表示する画像の意味をテキストで補うための属性です。画像が見えない状況、読み上げ環境、検索エンジンの理解などに関わるため、HTMLを書くうえでとても重要です。</p>



<ul class="wp-block-list">
<li>alt属性は画像の代替テキストを書く場所</li>
<li>画像のファイル名ではなく、画像が伝える意味を書く</li>
<li>装飾だけの画像では <code>alt=""</code> を使うことがある</li>
<li>SEOキーワードの詰め込みではなく、自然な説明を意識する</li>
</ul>



<p>画像表示そのものの基本を復習したい場合は、<a href="https://it-biz.online/web-design/img/">imgタグの解説</a> や <a href="https://it-biz.online/web-design/attribute/">HTML属性の基本</a> も合わせて読むと、alt属性の位置づけがより分かりやすくなります。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【HTML】sectionタグとは？div・article・mainとの違いを初心者向けにわかりやすく解説</title>
		<link>https://it-biz.online/web-design/html-section/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 11:16:12 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10540</guid>

					<description><![CDATA[HTMLのsectionタグとは何かを、サービス紹介ページの例を見ながら初心者向けに解説します。div・article・mainとの違い、使いどころ、見出しとの関係まで前提からわかりやすく整理します。]]></description>
										<content:encoded><![CDATA[
<p><code>section</code> タグを学び始めると、初心者の方はかなり高い確率で「<code>div</code> と何が違うの？」「見た目が同じなら使わなくてもよいのでは？」と迷います。これは自然な反応です。</p>



<p>なぜなら、sectionタグは <strong>label のように画面上の見え方が大きく変わるタグではない</strong> からです。</p>



<p>そこで今回は、定義から入るのではなく、まず「1ページの中で section をどこに使うのか」を実例で見てから意味を整理します。sectionタグは、見た目を装飾するためのタグではなく、ページの中にある話題の区切りを表すためのタグです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-13" checked><label class="toc-title" for="toc-checkbox-13">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず見てください：section は 1 ページの中の話題ごとに使う</a></li><li><a href="#toc2" tabindex="0">結論：sectionタグは 1 ページ内の話題のまとまりを表すタグ</a></li><li><a href="#toc3" tabindex="0">前提：section は見た目を変えるタグではないので、初心者は迷いやすい</a></li><li><a href="#toc4" tabindex="0">基本の書き方は、見出し付きのまとまりを section で囲む形</a></li><li><a href="#toc5" tabindex="0">div・article・main との違いをページの役割で整理すると分かりやすい</a></li><li><a href="#toc6" tabindex="0">section を使うと自然な場面</a></li><li><a href="#toc7" tabindex="0">よくあるミスと迷いどころ</a></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず見てください：section は 1 ページの中の話題ごとに使う</span></h2>



<p>下の画像は、サービス紹介ページをイメージした例です。ページ全体の主内容があり、その中に「特徴」「料金プラン」「よくある質問」といった話題のまとまりが並んでいます。このような <strong>同じページの中で話題が切り替わる単位</strong> を section と考えると、かなり分かりやすくなります。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/html-section-visual.png" alt="sectionタグをサービス紹介ページの構成で示した説明画像"/></figure>



<p>この画像で見てほしいのは、section が「見た目の箱」ではなく「話題の単位」を表している点です。ページ全体は <code>main</code> のイメージで、その中に「特徴」「料金プラン」「FAQ」など、1つのテーマとして読めるまとまりが入っています。section は、このまとまりごとに「ここからここまでが同じ話題です」と示すために使います。</p>



<ul class="wp-block-list">
<li>ページ全体の主内容は <code>main</code> で考える</li>



<li>その中にある話題ごとの区切りが <code>section</code></li>



<li>各 section には見出しがあると、何のまとまりかが一目で伝わる</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>section は「ただ囲むタグ」ではなく、「このページの中で話題がここで切り替わります」と示すタグです。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">結論：sectionタグは 1 ページ内の話題のまとまりを表すタグ</span></h2>



<p>結論からいうと、<strong><span class="marker-under">sectionタグとは、文書やページの中にある「意味のある話題のまとまり」を表すためのタグ</span></strong>です。特徴、料金、よくある質問、概要、手順、注意点のように、1つのテーマとして読める単位を分けたいときに向いています。</p>



<figure class="wp-block-table aligncenter is-style-regular"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>観点</th><th>sectionタグの考え方</th></tr></thead><tbody><tr><td>役割</td><td>ページの中の話題ごとのまとまりを示す</td></tr><tr><td>相性がよいもの</td><td>見出し、説明文、箇条書き、カード群など</td></tr><tr><td>向いている場面</td><td>サービス紹介ページ、記事本文、会社紹介ページ、FAQ構成など</td></tr></tbody></table></div></figure>



<p>つまり、sectionタグは「見た目を整えるための箱」ではなく、<strong>ページの内容を章や節のように分けるためのタグ</strong>です。</p>



<h2 class="wp-block-heading"><span id="toc3">前提：section は見た目を変えるタグではないので、初心者は迷いやすい</span></h2>



<p>sectionタグが分かりにくい理由は、使ってもブラウザ上の見た目が劇的に変わるわけではないからです。<code>&lt;div&gt;</code> で囲んでも、<code>&lt;section&gt;</code> で囲んでも、CSS を当てなければ表示結果はかなり似ています。</p>



<p>だから初心者のうちは、「見た目が同じなら div でよいのでは？」と感じやすいです。ただし HTML では、見た目だけでなく <strong>その部分が何を表しているか</strong> も大切です。MDN でも、section は一般的なセクションを表す要素で、スタイル用ラッパーに過ぎないなら div を使うべきだと説明されています。</p>



<p>つまり section を理解するコツは、「見た目で違いを探すこと」ではなく、「この部分は同じ話題として読めるまとまりか」を考えることです。</p>



<h2 class="wp-block-heading"><span id="toc4">基本の書き方は、見出し付きのまとまりを section で囲む形</span></h2>



<p>もっとも基本的で分かりやすい書き方は、見出しと本文を1つのまとまりとして section で囲む方法です。サービス紹介ページや記事本文の一部をイメージすると自然に理解できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;main&gt;
  &lt;section&gt;
    &lt;h2&gt;特徴&lt;/h2&gt;
    &lt;p&gt;このサービスの特徴を紹介します。&lt;/p&gt;
  &lt;/section&gt;

  &lt;section&gt;
    &lt;h2&gt;料金プラン&lt;/h2&gt;
    &lt;p&gt;月額料金や無料プランを説明します。&lt;/p&gt;
  &lt;/section&gt;

  &lt;section&gt;
    &lt;h2&gt;よくある質問&lt;/h2&gt;
    &lt;p&gt;導入前によくある質問をまとめます。&lt;/p&gt;
  &lt;/section&gt;
&lt;/main&gt;</pre>



<p>この例では、ページ全体の主内容が <code>main</code> で、その中に3つの話題のまとまりがあります。各まとまりは、それぞれ独立した話題として読めるので section を使うのが自然です。見出しが入っているので、「このまとまりは何について書いているか」もすぐ分かります。</p>



<p>MDN でも、section には少数の例外を除いて見出しを置くよう案内されています。初心者のうちは、<strong>section を使うなら見出しもセットで考える</strong>と覚えておくと失敗しにくいです。</p>



<h2 class="wp-block-heading"><span id="toc5">div・article・main との違いをページの役割で整理すると分かりやすい</span></h2>



<p>sectionタグが難しく感じる最大の理由は、似たタグが近くにあるからです。ここは「見た目」ではなく「役割」で分けると整理しやすくなります。</p>



<figure class="wp-block-table aligncenter is-style-regular"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>タグ</th><th>向いている役割</th><th>初心者向けの覚え方</th></tr></thead><tbody><tr><td><code>main</code></td><td>ページ全体の主内容</td><td>1ページの中心になる中身全体</td></tr><tr><td><code>section</code></td><td>ページ内の話題ごとのまとまり</td><td>特徴、料金、概要、FAQ のような区切り</td></tr><tr><td><code>article</code></td><td>それ単体で完結する内容</td><td>ブログ記事1本、ニュース1件、投稿カード1件</td></tr><tr><td><code>div</code></td><td>意味を持たないグループ化やレイアウト</td><td>見た目や配置のための箱</td></tr></tbody></table></div></figure>



<p>たとえばブログ記事ページなら、記事本文全体が <code>main</code> の中にあり、その中に「概要」「手順」「注意点」といった section が入るイメージです。逆に、ブログ記事1本そのものを表したいなら article が向いています。横並びのレイアウトや装飾のために囲むだけなら div のほうが自然です。</p>



<p>迷ったときは、次のように考えるとかなり整理しやすいです。<strong>1ページの中の話題なら section、単体で完結する記事なら article、見た目のためだけなら div</strong> です。</p>



<h2 class="wp-block-heading"><span id="toc6">section を使うと自然な場面</span></h2>



<p>sectionタグは抽象的に見えますが、実際にはかなり身近な場面で使いやすいタグです。特に次のようなページでは、section の考え方がそのまま活きます。</p>



<ul class="wp-block-list">
<li>サービス紹介ページの「特徴」「料金」「導入事例」「よくある質問」</li>



<li>会社紹介ページの「事業内容」「実績」「採用情報」「お問い合わせ案内」</li>



<li>ブログ記事の「概要」「手順」「注意点」「まとめ」</li>



<li>ドキュメントページの「前提」「設定方法」「確認方法」</li>
</ul>



<p>共通しているのは、どれも「1ページの中に複数の話題がある」ことです。section は、こうしたページを意味のある単位に分けて考えるときにとても役立ちます。</p>



<p>逆に、単なるカードの横並びや余白調整のために囲むだけなら、section より div のほうが自然です。意味ではなくレイアウトが目的だからです。</p>



<h2 class="wp-block-heading"><span id="toc7">よくあるミスと迷いどころ</span></h2>



<ul class="wp-block-list">
<li>見た目の囲みとしてだけ section を使っている</li>



<li>何の話題か説明できないブロックまで section にしている</li>



<li>独立した記事なのに section だけで済ませている</li>



<li>見出しのない section を大量に並べて、まとまりの意味が見えにくくなっている</li>
</ul>



<p>一番大切なのは、「この部分は何のまとまりですか？」と聞かれたときに答えられることです。答えられるなら section の可能性がありますし、答えられないなら div のほうが自然なことが多いです。</p>



<p>また、MDN では section よりも具体的な意味を持つ要素があるなら、そちらを優先すると説明されています。たとえばページの主内容なら <code>main</code>、独立した記事なら <code>article</code>、ナビゲーションなら <code>nav</code> です。section は便利ですが、何でも section にすればよいわけではありません。</p>



<h2 class="wp-block-heading"><span id="toc8">まとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span> <strong>sectionタグの基本</strong></p>
<ul class="wp-block-list">
<li>sectionタグは 1 ページ内の話題ごとのまとまりを表すために使う</li>
<li>見た目を変えるためのタグではなく、内容の区切りを示すタグである</li>
<li>見出し付きのまとまりとして使うと理解しやすい</li>
<li>独立した内容なら article、レイアウト用なら div、ページ全体の主内容なら main を考える</li>
<li>「この部分は何の話題か」を説明できるかが section を使う判断基準になる</li>
</ul>
</div>



<p>sectionタグは派手なタグではありませんが、セマンティックHTMLを理解するうえでとても大事です。まずは「1ページの中で話題が変わる場所を区切るタグ」と覚え、サービス紹介ページや記事本文の構成を section の視点で見てみると、使いどころがかなり掴みやすくなります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>関連する考え方も一緒に整理したい方は、<a href="https://it-biz.online/web-design/semantic-html/">セマンティックHTMLとは？</a>、<a href="https://it-biz.online/web-design/div/">divタグの使い方</a>、<a href="https://it-biz.online/web-design/main/">mainタグの意味と使い方</a> も続けて読むと、役割の違いがさらに見えやすくなります。</p>
</div></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
