<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Charlotte Stone - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Charlotte Stone - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 15:26:31 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/author/charlotte-stone/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ JavaScript で文字列を数値に変換する方法 ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript では、文字列を数値に変換する方法がたくさんあります。それぞれコードではどのように書くのでしょうか？ この記事では、文字列を数値に変換する 11 の方法を紹介します。 こちらは、JavaScript で文字列を数値に変換する方法を示すインタラクティブなスクリーンです: JavaScript で文字列を数値に変換する方法: Number() 関数を使用する 文字列を数値に変換する方法の一つは、Number() 関数を使用することです。 この例では、quantity という名前の文字列があり、その値は "12" です。 const quantity = "12"; typeof 演算子を quantity に使用すると、その型は string として返されます。 console.log(typeof quantity); Number 関数を使って、quantity を次のように数値に変換できます: Number(quantity) 再び typeof 演算子を使用して、それが数値になったことを確認できます。 console.log(typeo ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-convert-a-string-to-a-number-in-javascript/</link>
                <guid isPermaLink="false">66caff161ba26f044de398f6</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Mon, 25 Nov 2024 11:59:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/08/volkan-olmez-aG-pvyMsbis-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-convert-a-string-to-a-number-in-javascript/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Convert a String to a Number in JavaScript</a>
      </p><p>JavaScript では、文字列を数値に変換する方法がたくさんあります。それぞれコードではどのように書くのでしょうか？</p><p>この記事では、文字列を数値に変換する 11 の方法を紹介します。</p><h3 id="-javascript-">こちらは、JavaScript で文字列を数値に変換する方法を示すインタラクティブなスクリーンです:</h3><p></p><!--kg-card-begin: html--><iframe src="https://v1.scrimba.com/scrim/co2894c679bc693326603ac73?embed=freecodecamp%2Cmini-header&amp;a=354.0.3.L1_22" width="100%" height="420" title="Embedded content" loading="lazy"></iframe><!--kg-card-end: html--><h2 id="javascript-number-">JavaScript で文字列を数値に変換する方法: <code>Number()</code> 関数を使用する</h2><p>文字列を数値に変換する方法の一つは、<code>Number()</code> 関数を使用することです。</p><p>この例では、<code>quantity</code> という名前の文字列があり、その値は <code>"12"</code> です。</p><pre><code class="language-JavaScript">const quantity = "12";
</code></pre><p><code>typeof</code> 演算子を <code>quantity</code> に使用すると、その型は <code>string</code> として返されます。</p><pre><code class="language-JavaScript">console.log(typeof quantity);</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-9.50.17-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-9.50.17-AM" width="172" height="160" loading="lazy"></figure><p><code>Number</code> 関数を使って、<code>quantity</code> を次のように数値に変換できます:</p><pre><code class="language-JavaScript">Number(quantity)</code></pre><p>再び <code>typeof</code> 演算子を使用して、それが数値になったことを確認できます。</p><pre><code class="language-js">console.log(typeof Number(quantity));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-9.57.35-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-9.57.35-AM" width="164" height="154" loading="lazy"></figure><p>数値に変換できない値を渡そうとすると、返り値は <code>NaN</code>「Not a Number」になります。</p><pre><code class="language-JavaScript">console.log(Number("awesome"));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-10.00.34-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.00.34-AM" width="184" height="174" loading="lazy"></figure><h2 id="javascript-parseint-">JavaScript で文字列を数値に変換する方法: <code>parseInt()</code> 関数を使用する</h2><p>文字列を数値に変換するもう一つの方法は、<code>parseInt()</code> 関数を使用することです。この関数は文字列とオプションの基数 (radix) を受け取ります。</p><p>基数は、記数法の底を表す 2 から 36 の間の数値です。例えば、基数が 2 の場合は 2 進数を表し、基数が 10 の場合は 10 進数を表します。</p><p>先ほどの <code>quantity</code> 変数を使用して、その文字列を数値に変換することができます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(parseInt(quantity, 10));</code></pre><p><code>quantity</code> 変数を <code>"12.99"</code> に変更した場合、<code>parseInt()</code> を使用して得られる結果は数値の <code>12.99</code> になるでしょうか？</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM" width="158" height="184" loading="lazy"></figure><p>ご覧のとおり、結果は丸められた整数になります。浮動小数点数を返したい場合は、<code>parseFloat()</code> を使用する必要があります。</p><h2 id="javascript-parsefloat-">JavaScript で文字列を数値に変換する方法: <code>parseFloat()</code> 関数を使用する</h2><p><code>parseFloat()</code> 関数は値を受け取り、浮動小数点数を返します。浮動小数点数の例としては、<code>12.99</code> や <code>3.14</code> などがあります。</p><p>以前の例を修正して <code>parseFloat()</code> を使用すると、結果は浮動小数点数の 12.99 になります。</p><pre><code class="language-JavaScript">const quantity = "12.99";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM" width="170" height="142" loading="lazy"></figure><p>文字列に先頭または末尾の空白が含まれていても、<code>parseFloat()</code> はその文字列を浮動小数点数に変換します。</p><pre><code class="language-JavaScript">const quantity = "   12.99    ";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM-1" width="170" height="142" loading="lazy"></figure><p>文字列の最初の文字が数値に変換できない場合、<code>parseFloat()</code> は <code>NaN</code> を返します。</p><pre><code class="language-JavaScript">const quantity = "F12.99";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM" width="172" height="162" loading="lazy"></figure><h2 id="javascript-">JavaScript で文字列を数値に変換する方法: 単項プラス演算子 (<code>+</code>) を使用する</h2><p>単項プラス演算子 (<code>+</code>) を使用すると、文字列を数値に変換できます。この演算子はオペランドの前に置かれます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM-1" width="158" height="184" loading="lazy"></figure><p>単項プラス演算子 (<code>+</code>) を使用して、文字列を浮動小数点数に変換することもできます。</p><pre><code class="language-JavaScript">const quantity = "12.99";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM-2" width="170" height="142" loading="lazy"></figure><p>文字列の値が数値に変換できない場合、結果は <code>NaN</code> になります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-1" width="172" height="162" loading="lazy"></figure><h2 id="javascript-1-">JavaScript で文字列を数値に変換する方法: 文字列を数値の 1 と掛け算する</h2><p>文字列を数値に変換する別の方法は、基本的な数学演算を使用することです。文字列の値に 1 を掛けると、数値が返されます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM-2" width="158" height="184" loading="lazy"></figure><p>ご覧のとおり、<code>quantity</code> の値に 1 を掛けると、数値の <code>12</code> が返されます。しかし、これはどのように機能するのでしょうか？</p><p>この例では、JavaScript は文字列の値を数値に変換し、その後に数学演算を実行しています。文字列が数値に変換できない場合、数学演算は機能せず、<code>NaN</code> が返されます。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-2" width="172" height="162" loading="lazy"></figure><p>この方法は浮動小数点数にも適用できます。</p><pre><code class="language-JavaScript">const quantity = "10.5";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.56.19-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.56.19-AM" width="152" height="178" loading="lazy"></figure><h2 id="javascript-1--1">JavaScript で文字列を数値に変換する方法: 文字列を数値の 1 で割る</h2><p>1 を掛ける代わりに、文字列を 1 で割ることもできます。JavaScript は文字列の値を数値に変換し、その後に数学演算を実行します。</p><pre><code class="language-JavaScript">const quantity = "10.5";

console.log(quantity / 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.56.19-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.56.19-AM-1" width="152" height="178" loading="lazy"></figure><h2 id="javascript-0-">JavaScript で文字列を数値に変換する方法: 文字列から数値の 0 を引く</h2><p>別の方法として、文字列から 0 を引くこともできます。この場合も同様に、JavaScript は文字列の値を数値に変換し、その後に数学演算を実行します。</p><pre><code class="language-JavaScript">const quantity = "19";

console.log(quantity - 0);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM" width="158" height="160" loading="lazy"></figure><h2 id="javascript-not-">JavaScript で文字列を数値に変換する方法: ビット単位の NOT 演算子 (<code>~</code>) を使用する</h2><p>ビット単位の NOT 演算子 (<code>~</code>) はオペランドのビットを反転させ、その値を 32 ビット符号付き整数に変換します。32 ビット符号付き整数は、32 ビット (または 4 バイト) で表される整数値です。</p><p>数値に対して 1 つのビット単位の NOT 演算子 (<code>~</code>) を使用すると、以下の操作が実行されます: <code>-(x + 1)</code></p><pre><code class="language-JavaScript">console.log(~19);</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.20.18-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.20.18-PM" width="152" height="150" loading="lazy"></figure><p>しかし、ビット単位の NOT 演算子 (<code>~</code>) を 2 回使用すると、文字列を数値に変換することができます。</p><pre><code class="language-JavaScript">const quantity = "19";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM-1" width="158" height="160" loading="lazy"></figure><p>この方法は浮動小数点数には適用できません。結果は整数になるためです。</p><pre><code class="language-JavaScript">const quantity = "19.99";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM-2" width="158" height="160" loading="lazy"></figure><p>この方法を数値以外の文字に対して使用した場合、結果はゼロになります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.32.45-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.32.45-PM" width="174" height="156" loading="lazy"></figure><p>この方法には制限があり、非常に大きな値の場合には動作が不安定になることがあります。数値が 32 ビット符号付き整数の範囲内に収まっていることを確認することが重要です。</p><pre><code class="language-JavaScript">const quantity = "2700000000";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.36.16-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.36.16-PM" width="230" height="160" loading="lazy"></figure><p>ビット単位の NOT 演算子 (<code>~</code>) について詳しく知りたい場合は、<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT">ドキュメント</a>を参照してください。</p><h2 id="javascript-math-floor-">JavaScript で文字列を数値に変換する方法: <code>Math.floor()</code> 関数を使用する</h2><p>文字列を数値に変換する方法として、他には <code>Math.floor()</code> 関数も使用できます。この関数は数値を最も近い整数に切り捨てます。</p><pre><code class="language-JavaScript">const quantity = "13.4";

console.log(Math.floor(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.44.53-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.44.53-PM" width="184" height="180" loading="lazy"></figure><p>以前の例と同様に、数値以外の文字を使用しようとすると、結果は <code>NaN</code> になります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(Math.floor(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-3.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-3" width="172" height="162" loading="lazy"></figure><h2 id="javascript-math-floor--1">JavaScript で文字列を数値に変換する方法: <code>Math.floor()</code> 関数を使用する</h2><p><code>Math.ceil()</code> 関数は、数値を最も近い整数に切り上げます。</p><pre><code class="language-JavaScript">const quantity = "7.18";

console.log(Math.ceil(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.48.15-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.48.15-PM" width="166" height="146" loading="lazy"></figure><h2 id="javascript-math-round-">JavaScript で文字列を数値に変換する方法: <code>Math.round()</code> 関数を使用する</h2><p><code>Math.round()</code> 関数は、数値を最も近い整数に丸めます。</p><p>例えば、値が <code>6.3</code> の場合、<code>Math.round()</code> は <code>6</code> を返します。</p><pre><code class="language-JavaScript">const quantity = "6.3";

console.log(Math.round(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.50.20-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.50.20-PM" width="164" height="156" loading="lazy"></figure><p>しかし、その値を <code>6.5</code> に変更すると、<code>Math.round()</code> は <code>7</code> を返します。</p><pre><code class="language-js">const quantity = "6.5";

console.log(Math.round(quantity));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.51.35-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.51.35-PM" width="172" height="156" loading="lazy"></figure><h2 id="-">結論</h2><p>この記事では、JavaScript を使用して文字列を数値に変換する 11 の方法を紹介しました。</p><p>この記事で説明した 11 の方法は以下の通りです。</p><ul><li><code>Number()</code> 関数を使用する</li><li><code>parseInt()</code> 関数を使用する</li><li><code>parseFloat()</code> 関数を使用する</li><li>単項プラス演算子 (<code>+</code>) を使用する</li><li>文字列に数値の 1 を掛ける</li><li>文字列を数値の 1 で割る</li><li>文字列から数値の 0 を引く</li><li>ビット単位の NOT 演算子 (<code>~</code>) を使用する</li><li><code>Math.floor()</code> 関数を使用する</li><li><code>Math.ceil()</code> 関数を使用する</li><li><code>Math.round()</code> 関数を使用する</li></ul><p>この記事を楽しんでいただけたなら幸いです。JavaScript の学習、頑張ってください！</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ JavaScript でページをリフレッシュする方法 – JS でページを再読み込みする方法 ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript は、動的でインタラクティブなウェブアプリケーションを作成するための多用途なプログラミング言語です。ウェブ開発における一般的なタスクの一つに、ページのコンテンツを更新したり特定のアクションをトリガーするための、ウェブページのリフレッシュ (再読み込み) があります。 この記事では、JavaScript でページをリフレッシュするさまざまな方法を探り、それぞれのアプローチの長所と短所を理解します。 JavaScript でページをリフレッシュする理由 ウェブページをリフレッシュすることは、さまざまなシナリオで役立ちます。例えば:  1. コンテンツ更新:     ウェブページのコンテンツが動的で頻繁に変わる場合、最新のデータや情報を表示するためにページをリフレッシュする必要があるかもしれません。これはニュースサイト、株式市場のトラッカー、天気アプリなどでよく見られます。  2. フォーム送信:     ウェブページでフォームを送信した後、成功メッセージを表示したり、新しい送信のためにフォームをリセットするためにページをリフレッシュしたくなるかもしれません。  3 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/javascript-refresh-page-how-to-reload-a-page-in-js/</link>
                <guid isPermaLink="false">66919d85327328043a3383cc</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ WEB DEVELOPMENT ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Tue, 23 Jul 2024 14:23:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/07/cover-template--8-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/javascript-refresh-page-how-to-reload-a-page-in-js/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">JavaScript Refresh Page – How to Reload a Page in JS</a>
      </p><p>JavaScript は、動的でインタラクティブなウェブアプリケーションを作成するための多用途なプログラミング言語です。ウェブ開発における一般的なタスクの一つに、ページのコンテンツを更新したり特定のアクションをトリガーするための、ウェブページのリフレッシュ (再読み込み) があります。</p><p>この記事では、JavaScript でページをリフレッシュするさまざまな方法を探り、それぞれのアプローチの長所と短所を理解します。</p><h2 id="javascript-">JavaScript でページをリフレッシュする理由</h2><p>ウェブページをリフレッシュすることは、さまざまなシナリオで役立ちます。例えば:</p><!--kg-card-begin: markdown--><ol>
<li>コンテンツ更新: ウェブページのコンテンツが動的で頻繁に変わる場合、最新のデータや情報を表示するためにページをリフレッシュする必要があるかもしれません。これはニュースサイト、株式市場のトラッカー、天気アプリなどでよく見られます。</li>
<li>フォーム送信: ウェブページでフォームを送信した後、成功メッセージを表示したり、新しい送信のためにフォームをリセットするためにページをリフレッシュしたくなるかもしれません。</li>
<li>状態リセット: 場合によっては、ウェブページの状態をリセットしたり、特定のデータをクリアして再スタートしたいことがあります。ページをリフレッシュすることでこれを達成できます。</li>
</ol>
<!--kg-card-end: markdown--><p>それでは、JavaScript でページをリフレッシュするさまざまな方法を探ってみましょう。</p><h2 id="-1-location-reload-">方法 1: <code>location.reload()</code> を使用してページをリフレッシュする方法</h2><p>JavaScript でページをリフレッシュする最も簡単な方法は、<code>location.reload()</code> メソッドを使用することです。このメソッドは、現在のウェブページをサーバーから再読み込みし、現在のコンテンツを破棄して最新のコンテンツを読み込みます。</p><pre><code class="language-JavaScript">// Refresh the page
location.reload();
</code></pre><h3 id="location-reload-">location.reload() を使用する利点</h3><ul><li>シンプルで使いやすい。</li><li>サーバーからページ全体を再読み込みするため、最新のコンテンツを取得できる。</li></ul><h3 id="location-reload--1">location.reload() を使用する欠点</h3><ul><li>ページの現在のコンテンツが破棄されるため、ユーザーの入力やデータが失われる可能性がある。</li><li>ページが再読み込みされる際にちらつきが発生し、ユーザーエクスペリエンスに影響を与えることがある。</li></ul><h2 id="-2-location-replace-">方法 2: <code>location.replace()</code> を使用してページをリフレッシュする方法</h2><p>JavaScript でページをリフレッシュする別の方法として、<code>location.replace()</code> メソッドを使用する方法があります。このメソッドは現在のウェブページの URL を新しい URL で置き換えることで、新しいコンテンツでページを再読み込みします。</p><p>このコードをコンソールで試すと、現在の URL が表示されることに気付くでしょう。</p><pre><code class="language-JavaScript">console.log(location.href)</code></pre><p>これは、<code>location.replace()</code> メソッドを使用して現在のウェブページの URL を新しい URL (同じ URL) で置き換えると、ページがリフレッシュされることを意味します。</p><pre><code class="language-JavaScript">// Refresh the page by replacing the URL with itself
location.replace(location.href);</code></pre><h3 id="location-replace-">location.replace() を使用する利点</h3><ul><li>新しいコンテンツでページを迅速にリロードする方法である。</li><li>現在のページのコンテンツを保持し、URL のみを置き換えるため、ユーザーの入力やデータの損失を回避できる。</li></ul><h3 id="location-replace--1">location.replace() を使用する欠点</h3><ul><li>ページの URL 全体を置き換えるため、現在のブラウジング履歴が失われる可能性がある。</li><li>ウェブページが新しいウィンドウやタブで開かれている場合など、一部のシナリオで機能しないことがある。</li></ul><h2 id="-3-location-reload-true-">方法 3: <code>location.reload(true)</code> を使用してページをリフレッシュする方法</h2><p><code>location.reload()</code> メソッドは、<code>forceGet</code> というブール型パラメータも受け入れます。これを <code>true</code> に設定すると、ページがキャッシュされていてもサーバーから強制的に再読み込みされます。</p><p>これは、ページがキャッシュされていても最新のコンテンツを確実に取得したい場合に便利です。</p><pre><code class="language-JavaScript">// Refresh the page and bypass the cache
location.reload(true);</code></pre><h3 id="location-reload-true-">location.reload(true) を使用する利点</h3><ul><li>ページがキャッシュされていても、最新のコンテンツをサーバーから確実に取得できる。</li></ul><h3 id="location-reload-true--1">location.reload(true) を使用する欠点</h3><ul><li>ページの現在のコンテンツが破棄されるため、ユーザーの入力やデータが失われる可能性がある。</li><li>ページが再読み込みされる際にちらつきが発生し、ユーザーエクスペリエンスに影響を与えることがある。</li></ul><h2 id="-4-location-href-">方法 4: <code>location.href</code> を使用してページをリフレッシュする方法</h2><p>JavaScript でページをリフレッシュするもう 1 つの方法として、<code>location.href</code> プロパティを使用してウェブページの URL を同じ URL に再設定する方法があります。これにより、ページが新しい URL で再読み込みされ、ページのリフレッシュがトリガーされます。</p><pre><code class="language-JavaScript">// Refresh the page by setting the URL to itself
location.href = location.href;</code></pre><h3 id="location-href-">location.href を使用する利点</h3><ul><li>ページをリフレッシュするためのシンプルで効果的な方法である。</li><li>現在のページのコンテンツを保持し、URL のみを更新するため、ユーザーの入力やデータの損失を回避できる。</li></ul><h3 id="location-href--1">location.href を使用する欠点</h3><ul><li>ページの URL 全体を置き換えるため、現在のブラウジング履歴が失われる可能性がある。</li><li>ウェブページが新しいウィンドウやタブで開かれている場合など、一部のシナリオで機能しないことがある。</li></ul><h2 id="-5-location-reload-">方法 5: <code>location.reload()</code> を遅延させてページをリフレッシュする方法</h2><p>ページをリフレッシュする前に遅延を追加したい場合は、<code>setTimeout()</code> 関数を <code>location.reload()</code> メソッドと組み合わせて使うことができます。</p><p>これにより、ページがリロードされる前の遅延時間をミリ秒単位で指定でき、リフレッシュのタイミングを制御することができます。</p><pre><code class="language-JavaScript">// Refresh the page after a delay of 3 seconds
setTimeout(function(){
    location.reload();
}, 3000); // 3000 milliseconds = 3 seconds</code></pre><h3 id="location-reload--2">location.reload() を遅延させて使用する利点</h3><ul><li>遅延を追加することでページリフレッシュのタイミングを制御できる。</li><li>特定のイベントやアクションの後にページをリフレッシュしたい場合に柔軟に対応できる。</li></ul><h3 id="location-reload--3">location.reload() を遅延させて使用する欠点</h3><ul><li>ページリフレッシュに遅延が発生するため、ユーザーエクスペリエンスに影響を与えることがある。</li><li>不安定なまたは遅いネットワーク接続のシナリオでは期待通りに動作しないことがある。</li></ul><h2 id="-">まとめ</h2><p>この記事では、JavaScript でページをリフレッシュするさまざまな方法を学びました。それぞれの方法には利点と欠点があり、それらを考慮してウェブ開発プロジェクトに最適な方法を選ぶことができるようになりましたね。</p><p>ページをリフレッシュする際には、ユーザーエクスペリエンスやデータの損失、ブラウジング履歴への影響を考慮することが重要です。</p><p>この記事が JavaScript でウェブページをリロードする方法を理解し、特定のユースケースに適した方法を選ぶ手助けになれば幸いです。</p><p>Happy coding!</p><p>そしてさらなる学習の旅に出かけましょう！<a href="https://joelolawanle.com/posts">私のブログ</a>でも他の記事をご覧いただけます。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Bash スクリプトチュートリアル – 初心者向けの Linux シェルスクリプトとコマンドライン ]]>
                </title>
                <description>
                    <![CDATA[ Linux では、プロセスの自動化は shell スクリプトに大きく依存しています。shell スクリプトとは、一連のコマンドを含むファイルを作成し、まとめて実行できるようにすることを意味します。 この記事では、変数、コマンド、入力 / 出力、およびデバッグを含む bash スクリプトの基本から説明します。それぞれの例もあわせて見ていきます。 それでは始めましょう。🚀 目次  1. 事前準備  2. はじめに  * Bash スクリプトの定義  * Bash スクリプトの利点  * Bash shell とコマンドラインインターフェースの概要  3. Bash スクリプトの始め方  * コマンドラインから Bash コマンドを実行する方法  * Bash スクリプトの作成と実行方法  4. Bash スクリプトの基本  * ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/</link>
                <guid isPermaLink="false">6655a9337aebac04055b9be1</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Bash ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Fri, 12 Jul 2024 15:57:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/05/Copy-of-Cast-a-Function-in-SQL---Convert-Char-to-Int-SQL-Server-Example.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Bash Scripting Tutorial – Linux Shell Script and Command Line for Beginners</a>
      </p><p>Linux では、プロセスの自動化は shell スクリプトに大きく依存しています。shell スクリプトとは、一連のコマンドを含むファイルを作成し、まとめて実行できるようにすることを意味します。</p><p>この記事では、変数、コマンド、入力 / 出力、およびデバッグを含む bash スクリプトの基本から説明します。それぞれの例もあわせて見ていきます。</p><p>それでは始めましょう。🚀</p><h2 id="-">目次</h2><!--kg-card-begin: markdown--><ol>
<li><a href="#pre-requisites">事前準備</a></li>
<li><a href="#introduction">はじめに</a></li>
</ol>
<ul>
<li><a href="#definition-of-bash-scripting">Bash スクリプトの定義</a></li>
<li><a href="#advantages-of-bash-scripting">Bash スクリプトの利点</a></li>
<li><a href="#overview-of-bash-shell-and-command-line-interface">Bash shell とコマンドラインインターフェースの概要</a></li>
</ul>
<ol start="3">
<li><a href="#how-to-get-started-with-bash-scripting">Bash スクリプトの始め方</a></li>
</ol>
<ul>
<li><a href="#how-to-run-bash-commands-from-the-command-line">コマンドラインから Bash コマンドを実行する方法</a></li>
<li><a href="#how-to-create-and-execute-bash-scripts">Bash スクリプトの作成と実行方法</a></li>
</ul>
<ol start="4">
<li><a href="#bash-scripting-basics">Bash スクリプトの基本</a></li>
</ol>
<ul>
<li><a href="#comments-in-bash-scripting">Bash スクリプトでのコメント</a></li>
<li><a href="#variables-and-data-types-in-bash">Bash における変数とデータ型</a></li>
<li><a href="#input-and-output-in-bash-scripts">入力と出力に関する Bash スクリプト</a></li>
<li><a href="#basic-bash-commands-echo-read-etc-">基本的な Bash コマンド (echo、read など)</a></li>
<li><a href="#conditional-statements-if-else-">条件文 (if / else)</a></li>
</ul>
<ol start="5">
<li><a href="#looping-and-branching-in-bash">Bash におけるループと分岐</a></li>
</ol>
<ul>
<li><a href="#while-loop">While ループ</a></li>
<li><a href="#for-loop">For ループ</a></li>
<li><a href="#case-statements">Case 文</a></li>
</ul>
<ol start="6">
<li><a href="#how-to-schedule-scripts-using-cron">cron を使用したスクリプトのスケジュール設定方法</a></li>
<li><a href="#how-to-debug-and-troubleshoot-bash-scripts">Bash スクリプトのデバッグとトラブルシューティング方法</a></li>
<li><a href="#conclusion">結論</a></li>
</ol>
<ul>
<li><a href="#resources-for-learning-more-about-bash-scripting">Bash スクリプトに関するさらなる学習リソース</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h2 id="pre-requisites">事前準備</h2><!--kg-card-end: html--><p>このチュートリアルに従うには、次のアクセス権が必要です:</p><ul><li>コマンドラインにアクセスできる、実行可能な Linux のバージョン。</li></ul><p>Linux をインストールしていない場合や、まだ始めたばかりの場合は、<a href="https://replit.com/~">Replit</a> を介して簡単に Linux コマンドラインにアクセスできます。Replit はブラウザベースの IDE であり、数分で bash シェルにアクセスできます。</p><p>Windows システム上に Linux をインストールする方法として、WSL (Windows Subsystem for Linux) を使用することもできます。<a href="https://www.freecodecamp.org/news/how-to-install-wsl2-windows-subsystem-for-linux-2-on-windows-10/">そのためのチュートリアルはこちら</a>です。</p><!--kg-card-begin: html--><h2 id="introduction">はじめに</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="definition-of-bash-scripting">Bash スクリプトの定義</h3><!--kg-card-end: html--><p>Bash スクリプトとは、bash プログラムによって一行ずつ実行されるコマンドのシーケンスを含むファイルのことです。これにより、特定のディレクトリへの移動、フォルダの作成、コマンドラインを使用したプロセスの起動など、一連の操作を実行することができます。</p><p>これらのコマンドをスクリプトに保存することにより、スクリプトを実行するだけで、同じ手順を何度も繰り返すことができます。</p><!--kg-card-begin: html--><h3 id="advantages-of-bash-scripting">Bash スクリプトの利点</h3><!--kg-card-end: html--><p>Bash スクリプトは、システム管理タスクの自動化、システムリソースの管理、および Unix / Linux システムでのその他のルーチンタスクを実行するための強力で多用途なツールです。シェルスクリプトの利点には以下のものがあります:</p><ul><li><strong>自動化</strong>: シェルスクリプトは繰り返しのタスクやプロセスを自動化でき、手動実行によるエラーのリスクを減らしながら時間を節約できます。</li><li><strong>移植性</strong>: シェルスクリプトは Unix、Linux、macOS、さらにはエミュレーターや仮想マシンを使えば Windows でも実行可能です。</li><li><strong>柔軟性</strong>: シェルスクリプトはカスタマイズ性が非常に高く、特定の要件に合わせて簡単に修正できます。他のプログラミング言語やユーティリティと組み合わせて、より強力なスクリプトを作成することも可能です。</li><li><strong>アクセシビリティ</strong>: シェルスクリプトは簡単に書ける上、特別なツールやソフトウェアを必要としません。どのテキストエディタでも編集でき、大部分のオペレーティングシステムには標準でシェルインタープリターが搭載されています。</li><li><strong>統合性</strong>: シェルスクリプトはデータベース、ウェブサーバー、クラウドサービスなど、他のツールやアプリケーションと統合でき、より複雑な自動化やシステム管理タスクを実行することができます。</li><li><strong>デバッグ</strong>: シェルスクリプトはデバッグが容易で、ほとんどのシェルにはデバッグおよびエラーレポートツールが内蔵されており、問題を迅速に特定して修正するのに役立ちます。</li></ul><!--kg-card-begin: html--><h3 id="overview-of-bash-shell-and-command-line-interface">Bash シェルとコマンドラインインターフェースの概要</h3><!--kg-card-end: html--><p>「シェル」と「bash」という用語は同じように使われることがありますが、二つの間には微妙な違いがあります。</p><p>「シェル」という用語は、オペレーティングシステムと対話するためのコマンドラインインターフェースを提供するプログラムを指します。Bash (Bourne-Again SHell) は最も一般的に使用される Unix / Linux シェルの一つで、多くの Linux ディストリビューションでデフォルトのシェルとなっています。</p><p>シェルやコマンドラインインターフェースは次のような見た目をしています:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-135.png" class="kg-image" alt="image-135" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/06/image-135.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-135.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="532" loading="lazy"><figcaption>ユーザーからのコマンドを受け付け、出力を表示するシェル</figcaption></figure><p>上記の出力例では、<code>zaira@Zaira</code> がシェルプロンプトです。シェルが対話的に使用される場合、ユーザーからのコマンドを待っているときに <code>$</code> が表示されます。</p><p>シェルが root (管理権限を持つユーザー) として実行されている場合、プロンプトは <code>#</code> に変わります。スーパーユーザーのシェルプロンプトは次のような見た目です:</p><pre><code class="language-Bash">[root@host ~]#</code></pre><p>Bash はシェルの一種ですが、他にも Korn シェル (ksh)、C シェル (csh)、Z シェル (zsh) などのシェルがあります。各シェルにはそれぞれ独自の構文と機能がありますが、いずれもオペレーティングシステムと対話するためのコマンドラインインターフェースを提供するという共通の目的を持っています。</p><p><code>ps</code> コマンドを使用して、自分のシェルの種類を確認することができます:</p><pre><code class="language-Bash">ps</code></pre><p>私の環境では、以下のように出力結果されます:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-134.png" class="kg-image" alt="image-134" width="417" height="145" loading="lazy"><figcaption>シェルの種類の確認。私は Bash シェルを使用しています。</figcaption></figure><p>要約すると、「シェル (shell)」はコマンドラインインターフェースを提供する任意のプログラムを指す広義の用語であり、「Bash」は Unix / Linux システムで広く使用されている特定の種類のシェルです。</p><p>注意: このチュートリアルでは「bash」シェルを使用します。</p><!--kg-card-begin: html--><h2 id="how-to-get-started-with-bash-scripting">Bash スクリプトの始め方</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="how-to-run-bash-commands-from-the-command-line">コマンドラインから Bash コマンドを実行する方法</h3><!--kg-card-end: html--><p>前述の通り、シェルプロンプトは以下のように表示されます:</p><pre><code class="language-Bash">[username@host ~]$</code></pre><p><code>$</code> マークの後に任意のコマンドを入力し、その出力をターミナルで確認できます。</p><p>一般的に、コマンドは以下の構文に従います:</p><pre><code class="language-Bash">command [OPTIONS] arguments</code></pre><p>基本的な Bash コマンドについていくつか説明しながら、その出力を見てみましょう。一緒に試しながら進めてください :)</p><ul><li><code>date</code>: 現在の日付を表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ date
Tue Mar 14 13:08:57 PKT 2023</code></pre><ul><li><code>pwd</code>: 現在の作業ディレクトリを表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ pwd
/home/zaira/shell-tutorial</code></pre><ul><li><code>ls</code>: 現在のディレクトリの内容を一覧表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ ls
check_plaindrome.sh  count_odd.sh  env  log  temp</code></pre><ul><li><code>echo</code>: テキスト文字列や変数の値をターミナルに表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ echo "Hello bash"
Hello bash</code></pre><p>コマンドのマニュアルは <code>man</code> コマンドでいつでも参照できます。</p><p>例えば、<code>ls</code> のマニュアルは以下のように表示されます:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-138.png" class="kg-image" alt="image-138" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/06/image-138.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/06/image-138.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2024/06/image-138.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-138.png 1890w" sizes="(min-width: 720px) 720px" width="1890" height="969" loading="lazy"><figcaption><code>man</code> コマンドを使用すると、コマンドの詳細なオプションを確認できます。</figcaption></figure><!--kg-card-begin: html--><h3 id="how-to-create-and-execute-bash-scripts">Bash スクリプトの作成と実行方法</h3><!--kg-card-end: html--><h3 id="--1">スクリプトの命名規則</h3><p>命名規則によれば、Bash スクリプトは <code>.sh</code> で終わります。ただし、<code>sh</code> の拡張子なしでも Bash スクリプトは正常に実行できます。</p><h3 id="shebang-">Shebang の追加</h3><p>Bash スクリプトは「シバン」<code>shebang</code> で始まります。Shebang は、hash <code>#</code> と bang <code>!</code> に続いて bash シェルのパスが書かれたものです。これはスクリプトの最初の行に書かれます。Shebang はシェルに対して、このスクリプトを bash シェルで実行するよう指示します。Shebang は単に bash インタープリターの絶対パスです。</p><p>以下は shebang ステートメントの例です:</p><pre><code class="language-Bash">#!/bin/bash</code></pre><p>次のコマンドを使用して、お使いの bash シェルのパス (上記の例とは異なる場合があります) を見つけることができます:</p><pre><code class="language-Bash">which bash</code></pre><h3 id="-bash-">最初の Bash スクリプトを作成する</h3><p>これから作成するスクリプトでは、ユーザーにパスの入力を促します。そして結果として、そのパスの内容を一覧表示します。</p><p>まず、<code>vi</code> コマンドを使用して、<code>run_all.sh</code> という名前のファイルを作成してください。他の任意のエディタを使用しても構いません。</p><pre><code class="language-Bash">vi run_all.sh</code></pre><p>ファイルに以下のコマンドを追加して保存してください:</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">#!/bin/bash
echo "Today is " `date`

echo -e "\nenter the path to directory"
read the_path

echo -e "\n you path has the following files and folders: "
ls $the_path</code></pre><figcaption>ユーザーが指定したディレクトリの内容を表示するスクリプト</figcaption></figure><p>スクリプトを行ごとに詳しく見てみましょう。同じスクリプトを、行番号付きで以下に示します。</p><pre><code class="language-Bash">  1 #!/bin/bash
  2 echo "Today is " `date`
  3
  4 echo -e "\nenter the path to directory"
  5 read the_path
  6
  7 echo -e "\n you path has the following files and folders: "
  8 ls $the_path</code></pre><ul><li>1 行目: シバン (<code>#!/bin/bash</code>) は Bash シェルのパスを指します。</li><li>2 行目: <code>echo</code> コマンドはバッククォートで囲まれた <code>date</code> を使用して、現在の日付と時刻をターミナルに表示します。</li><li>4 行目: ユーザーに有効なパスを入力してもらいます。</li><li>5 行目: <code>read</code> コマンドは入力を読み取り、変数 <code>the_path</code> に格納します。</li><li>8 行目: <code>ls</code> コマンドは変数に格納されたパスを取り、現在のファイルやフォルダを表示します。</li></ul><h3 id="bash-">Bash スクリプトを実行する</h3><p>スクリプトを実行可能にするために、次のコマンドでユーザーに実行権限を付与します:</p><pre><code class="language-Bash">chmod u+x run_all.sh</code></pre><p>ここでは、</p><ul><li><code>chmod</code> は現在のユーザー <code>u</code> のファイルの所有権を変更します。</li><li><code>+x</code> は現在のユーザーに実行権限を追加します。これにより、ファイルの所有者であるユーザーがスクリプトを実行できるようになります。</li><li><code>run_all.sh</code> は実行可能にしたいファイルです。</li></ul><p>以下の方法でスクリプトを実行できます:</p><ul><li><code>sh run_all.sh</code></li><li><code>bash run_all.sh</code></li><li><code>./run_all.sh</code></li></ul><p>それでは実際に動作する様子を見てみましょう🚀</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/run-script-bash-2.gif" class="kg-image" alt="run-script-bash-2" width="927" height="411" loading="lazy"></figure><!--kg-card-begin: html--><h2 id="bash-scripting-basics">Bash スクリプトの基本</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="comments-in-bash-scripting">Bash スクリプトでのコメント</h3><!--kg-card-end: html--><p>Bash スクリプトのコメントは <code>#</code> から始まります。つまり、<code>#</code> で始まる行はコメントであり、インタープリターに無視されます。</p><p>コメントはコードのドキュメント化に非常に役立ち、他の人がコードを理解しやすくするためにも、コメントを追加するのは良い習慣です。</p><p>以下はコメントの例です:</p><pre><code class="language-bash"># This is an example comment
# Both of these lines will be ignored by the interpreter</code></pre><!--kg-card-begin: html--><h3 id="variables-and-data-types-in-bash">Bash における変数とデータ型</h3><!--kg-card-end: html--><p>変数を使用するとデータを保存できます。変数を使ってスクリプトのあらゆる場所でデータを読み取り、アクセスし、操作することができます。</p><p>Bash にはデータ型がありません。Bash では、変数は数値、個々の文字、または文字列を保存することができます。</p><p>Bash では、変数の値を以下のように使用および設定できます:</p><ol><li>直接値を割り当てる例:</li></ol><pre><code class="language-bash">country=Pakistan</code></pre><!--kg-card-begin: markdown--><ol start="2">
<li>コマンド置換を使用して、プログラムやコマンドの出力に基づいて値を割り当てる例。既存の変数の値にアクセスするには <code>$</code> が必要です。</li>
</ol>
<!--kg-card-end: markdown--><figure class="kg-card kg-code-card"><pre><code class="language-bash">same_country=$country</code></pre><figcaption><code>country</code> の値を新しい変数 <code>same_country</code> に割り当てる</figcaption></figure><p>変数の値にアクセスするには、変数名の頭に <code>$</code> を付け加えます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">zaira@Zaira:~$ country=Pakistan
zaira@Zaira:~$ echo $country
Pakistan
zaira@Zaira:~$ new_country=$country
zaira@Zaira:~$ echo $new_country
Pakistan</code></pre><figcaption>変数に値を割り当てて値を表示する</figcaption></figure><h3 id="--2">変数の命名規則</h3><p>Bash スクリプティングにおける変数の命名規則は以下の通りです:</p><!--kg-card-begin: markdown--><ol>
<li>変数名は文字またはアンダースコア (<code>_</code>) で始める必要があります。</li>
<li>変数名には文字、数字、アンダースコア (<code>_</code>) を含めることができます。</li>
<li>変数名は大文字と小文字を区別します。</li>
<li>変数名にはスペースや特殊文字を含めることはできません。</li>
<li>変数の目的を反映した説明的な名前を使用します。</li>
<li><code>if</code>、<code>then</code>、<code>else</code>、<code>fi</code> などの予約キーワードを変数名として使用することは避けます。</li>
</ol>
<!--kg-card-end: markdown--><p>以下は Bash で有効な変数名の例です:</p><pre><code class="language-bash">name
count
_var
myVar
MY_VAR</code></pre><p>以下は Bash で無効な変数名の例です:</p><pre><code class="language-bash">2ndvar (variable name starts with a number)
my var (variable name contains a space)
my-var (variable name contains a hyphen)</code></pre><p>これらの命名規則に従うことは、Bash スクリプトをより読みやすく、メンテナンスしやすくするのに役立ちます。</p><!--kg-card-begin: markdown--><h3 id="input-and-output-in-bash-scripts">入力と出力に関する Bash スクリプト</h3><!--kg-card-end: markdown--><h3 id="--3">入力の収集</h3><p>このセクションでは、スクリプトに入力を提供するいくつかの方法について説明します。</p><ol><li>ユーザーの入力を読み取り、変数に格納する方法</li></ol><p><code>read</code> コマンドを使用してユーザーの入力を読み取ることができます。</p><pre><code class="language-bash">#!/bin/bash 

echo "What's your name?" 

read entered_name 

echo -e "\nWelcome to bash tutorial" $entered_name</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/name-sh.gif" class="kg-image" alt="name-sh" width="843" height="431" loading="lazy"></figure><!--kg-card-begin: markdown--><ol start="2">
<li>ファイルから読み取る方法</li>
</ol>
<!--kg-card-end: markdown--><p>このコードは、<code>input.txt</code> という名前のファイルから各行を読み取り、それをターミナルに出力します。while ループについては後ほど学びます。</p><pre><code class="language-bash">while read line
do
  echo $line
done &lt; input.txt
</code></pre><!--kg-card-begin: markdown--><ol start="3">
<li>コマンドライン引数を使う方法</li>
</ol>
<!--kg-card-end: markdown--><p>Bash スクリプトや関数では、<code>$1</code> は渡された最初の引数、<code>$2</code> は 2 番目の引数を表します。その後の数字も同様です。</p><p>下記のスクリプトは、コマンドライン引数として名前を受け取り、個別の挨拶メッセージを表示します。</p><pre><code class="language-bash">echo "Hello, $1!"
</code></pre><p>スクリプトに引数として <code>Zaira</code> を渡してみます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash
echo "Hello, $1!"</code></pre><figcaption>スクリプト <code>greeting.sh</code> のコード</figcaption></figure><!--kg-card-begin: markdown--><p><strong>出力:</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/name-sh-1.gif" class="kg-image" alt="name-sh-1" width="883" height="455" loading="lazy"></figure><h3 id="--4">出力の表示</h3><p>ここでは、スクリプトから出力を受け取るいくつかの方法について説明します。</p><ol><li>ターミナルへの出力:</li></ol><pre><code class="language-bash">echo "Hello, World!"
</code></pre><p>これは、ターミナルに「Hello, World!」というテキストを表示します。</p><!--kg-card-begin: markdown--><ol start="2">
<li>ファイルへの書き込み:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">echo "This is some text." &gt; output.txt</code></pre><p>これは、「This is some text.」というテキストを <code>output.txt</code> という名前のファイルに書き込みます。なお、<code>&gt;</code> 演算子はファイルに既に内容がある場合、それを上書きします。</p><!--kg-card-begin: markdown--><ol start="3">
<li>ファイルへの追記:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">echo "More text." &gt;&gt; output.txt</code></pre><p>これは、「More text.」というテキストを <code>output.txt</code> ファイルの末尾に追記します。</p><!--kg-card-begin: markdown--><ol start="4">
<li>出力のリダイレクト:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">ls &gt; files.txt</code></pre><p>これは、現在のディレクトリ内のファイルを一覧表示し、その出力を <code>files.txt</code> という名前のファイルに書き込みます。この方法で任意のコマンドの出力をファイルにリダイレクトできます。</p><!--kg-card-begin: html--><h3 id="basic-bash-commands-echo-read-etc-">基本的な Bash コマンド (echo、read など)</h3><!--kg-card-end: html--><p>以下は、最もよく使われる Bash コマンドのリストです:</p><!--kg-card-begin: markdown--><ol>
<li><code>cd</code>: ディレクトリを別の場所に変更します。</li>
<li><code>ls</code>: 現在のディレクトリの内容を一覧表示します。</li>
<li><code>mkdir</code>: 新しいディレクトリを作成します。</li>
<li><code>touch</code>: 新しいファイルを作成します。</li>
<li><code>rm</code>: ファイルまたはディレクトリを削除します。</li>
<li><code>cp</code>: ファイルまたはディレクトリをコピーします。</li>
<li><code>mv</code>: ファイルまたはディレクトリを移動または名前を変更します。</li>
<li><code>echo</code>: テキストをターミナルに表示します。</li>
<li><code>cat</code>: ファイルの内容を連結して表示します。</li>
<li><code>grep</code>: ファイル内のパターンを検索します。</li>
<li><code>chmod</code>: ファイルまたはディレクトリの権限を変更します。</li>
<li><code>sudo</code>: 管理者権限でコマンドを実行します。</li>
<li><code>df</code>: 使用可能なディスク容量を表示します。</li>
<li><code>history</code>: 以前に実行したコマンドのリストを表示します。</li>
<li><code>ps</code>: 実行中のプロセスに関する情報を表示します。</li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h3 id="conditional-statements-if-else-">条件文 (if / else)</h3><!--kg-card-end: html--><p>条件を評価してブール値 (true または false) を返す式は、条件と呼ばれます。条件を評価する方法には、<code>if</code>、<code>if-else</code>、<code>if-elif-else</code>、およびネストした条件分岐があります。</p><!--kg-card-begin: markdown--><p><strong>構文:</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-code-card"><pre><code class="language-bash">if [[ condition ]];
then
	statement
elif [[ condition ]]; then
	statement 
else
	do this by default
fi</code></pre><figcaption>Bash の条件文の構文</figcaption></figure><p>論理演算子、AND <code>-a</code> および OR <code>-o</code>、を使用して、より詳細な比較を行うことができます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">if [ $a -gt 60 -a $b -lt 100 ]</code></pre><figcaption>この文は、「a が 60 より大きい」かつ「b が 100 未満」という両方の条件が <code>true</code> であるかどうかをチェックします。</figcaption></figure><p>ここでは、ユーザーが入力した数値が正、負、またはゼロのいずれかを判定するために、<code>if</code>、<code>if-else</code>、および <code>if-elif-else</code> 文を使用する Bash スクリプトの例を見てみましょう。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash

echo "Please enter a number: "
read num

if [ $num -gt 0 ]; then
  echo "$num is positive"
elif [ $num -lt 0 ]; then
  echo "$num is negative"
else
  echo "$num is zero"
fi
</code></pre><figcaption>数値が正、負、またはゼロのいずれかを判定するスクリプト</figcaption></figure><p>最初に、スクリプトはユーザーに数値の入力を促します。次に、その数値が 0 より大きいかどうかを <code>if</code> 文でチェックします。もし数値が 0 より大きければ、スクリプトは数値が正であると出力します。当てはまらない場合、スクリプトは次の <code>if-elif</code> 文に進みます。ここで、スクリプトは数値が 0 より小さいかどうかをチェックします。もし数値が 0 より小さければ、スクリプトは数値が負であると出力します。最後に、もし数値が 0 より大きくも小さくもなければ、スクリプトは <code>else</code> 文を使用して数値がゼロであることを出力します。</p><p>実際に動作を見てみましょう🚀</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/test-odd.gif" class="kg-image" alt="test-odd" width="913" height="518" loading="lazy"></figure><!--kg-card-begin: html--><h2 id="looping-and-branching-in-bash">Bash におけるループと分岐</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="while-loop">While ループ</h3><!--kg-card-end: html--><p>While ループは条件を確認し、条件が <code>true</code> の間ループします。ループの実行を制御するために、カウンター文を提供する必要があります。</p><p>以下の例では、<code>(( i += 1 ))</code> がカウンター文であり、<code>i</code> の値を増やします。このループはちょうど 10 回実行されます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash
i=1
while [[ $i -le 10 ]] ; do
   echo "$i"
  (( i += 1 ))
done</code></pre><figcaption>10 回繰り返す While ループ</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-187.png" class="kg-image" alt="image-187" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/07/image-187.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-187.png 630w" width="630" height="266" loading="lazy"></figure><!--kg-card-begin: html--><h3 id="for-loop">For ループ</h3><!--kg-card-end: html--><p><code>for</code> ループも、<code>while</code> ループと同様に、特定の回数だけステートメントを実行することができます。それぞれのループは構文と使用方法が異なります。</p><p>以下の例では、ループは 5 回繰り返されます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash

for i in {1..5}
do
    echo $i
done</code></pre><figcaption>5 回繰り返す For ループ</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-186.png" class="kg-image" alt="image-186" width="580" height="150" loading="lazy"></figure><!--kg-card-begin: html--><h3 id="case-statements">Case 文</h3><!--kg-card-end: html--><p>Bash では、case 文を使用して、与えられた値をパターンのリストと比較し、最初にマッチしたパターンに基づいてコードブロックを実行することができます。Bash における case 文の構文は以下の通りです:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">case expression in
    pattern1)
        # code to execute if expression matches pattern1
        ;;
    pattern2)
        # code to execute if expression matches pattern2
        ;;
    pattern3)
        # code to execute if expression matches pattern3
        ;;
    *)
        # code to execute if none of the above patterns match expression
        ;;
esac
</code></pre><figcaption>case 文の構文</figcaption></figure><p>ここでは、「expression」は比較したい値であり、「pattern1」、「pattern2」、「pattern3」などが比較対象にしたいパターンです。</p><p>二重のセミコロン ";;" は、各パターンに対して実行するコードブロックを区切ります。アスタリスク "*" はデフォルトのケースを表し、指定されたパターンのどれも一致しない場合に実行されます。</p><p>例を見てみましょう。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">fruit="apple"

case $fruit in
    "apple")
        echo "This is a red fruit."
        ;;
    "banana")
        echo "This is a yellow fruit."
        ;;
    "orange")
        echo "This is an orange fruit."
        ;;
    *)
        echo "Unknown fruit."
        ;;
esac
</code></pre><figcaption>case 文の例</figcaption></figure><p>この例では、「fruit」の値が「apple」であるため、最初のパターンが一致し、「This is a red fruit.」と出力するコードブロックが実行されます。もし "fruit" の値が代わりに "banana" であれば、2 番目のパターンが一致し、「This is a yellow fruit.」と出力するコードブロックが実行されます。そして、「fruit」の値が指定されたどのパターンにも一致しない場合は、デフォルトのケースが実行され、「Unknown fruit.」と出力されます。</p><!--kg-card-begin: html--><h2 id="how-to-schedule-scripts-using-cron">cron を使用したスクリプトのスケジュール設定方法</h2><!--kg-card-end: html--><p>Cron は、Unix 系オペレーティングシステムで利用可能なジョブスケジューリングの強力なユーティリティです。cron を設定することで、日次、週次、月次、または特定の時間ベースで自動ジョブを設定することができます。cron が提供する自動化機能は、Linux システム管理において重要な役割を果たします。</p><p>以下は cron をスケジュールするための構文です:</p><pre><code class="language-bash"># Cron job example
* * * * * sh /path/to/script.sh</code></pre><p>この <code>*</code> は、それぞれ分、時、日、月、曜日を表します。</p><p>以下は cron ジョブをスケジュールするいくつかの例です。</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>スケジュール</th>
<th>説明</th>
<th>例</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>0 0 * * *</code></td>
<td>毎日真夜中にスクリプトを実行する</td>
<td><code>0 0 * * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>*/5 * * * *</code></td>
<td>5 分ごとにスクリプトを実行する</td>
<td><code>*/5 * * * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 6 * * 1-5</code></td>
<td>月曜日から金曜日の朝 6 時にスクリプトを実行する</td>
<td><code>0 6 * * 1-5 /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 0 1-7 * *</code></td>
<td>毎月最初の 7 日間にスクリプトを実行する</td>
<td><code>0 0 1-7 * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 12 1 * *</code></td>
<td>毎月 1 日の正午にスクリプトを実行する</td>
<td><code>0 12 1 * * /path/to/script.sh</code></td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h3 id="crontab-">crontab を使用する</h3><p><code>crontab</code> ユーティリティは、cron ジョブを追加および編集するために使用されます。</p><p><code>crontab -l</code> は特定のユーザーに予定されているスクリプトのリストを表示します。</p><p><code>crontab -e</code> を使用して cron を追加および編集できます。</p><p><a href="https://www.freecodecamp.org/news/cron-jobs-in-linux/">他の記事で cron ジョブについて詳しく読む</a>ことができます。</p><!--kg-card-begin: html--><h2 id="how-to-debug-and-troubleshoot-bash-scripts">Bash スクリプトのデバッグとトラブルシューティング方法</h2><!--kg-card-end: html--><p>デバッグとトラブルシューティングは、どんな Bash スクリプトの作成者にとっても重要なスキルです。Bash スクリプトは非常にパワフルですが、エラーや予期しない動作が発生することもあります。このセクションでは、Bash スクリプトのデバッグとトラブルシューティングのためのいくつかのヒントやテクニックについて説明します。</p><h3 id="set-x-"><code>set -x</code> オプションを設定する</h3><p>Bash スクリプトをデバッグするための最も有用なテクニックの 1 つは、スクリプトの先頭で <code>set -x</code> オプションを設定することです。このオプションを設定すると、Bash はデバッグモードが有効になり、実行する各コマンドの先頭に <code>+</code> 記号を付けて端末に出力します。これは、スクリプト内でどこでエラーが発生しているかを特定するのに非常に役立ちます。</p><pre><code class="language-bash">#!/bin/bash

set -x

# Your script goes here
</code></pre><h3 id="--5">終了コードを確認する</h3><p>Bash がエラーに遭遇すると、そのエラーの性質を示す終了コードが設定されます。直近で実行したコマンドの終了コードは、<code>$?</code> 変数を使用して確認できます。値が <code>0</code> の場合、成功を示し、それ以外の値はエラーを示します。</p><pre><code class="language-bash">#!/bin/bash

# Your script goes here

if [ $? -ne 0 ]; then
    echo "Error occurred."
fi
</code></pre><h3 id="echo-"><code>echo</code> 文を使用する</h3><p>Bash スクリプトをデバッグする別の有用なテクニックは、コード全体に <code>echo</code> 文を挿入することです。これにより、どこでエラーが発生しているかや変数に渡されている値を特定するのに役立ちます。</p><pre><code class="language-bash">#!/bin/bash

# Your script goes here

echo "Value of variable x is: $x"

# More code goes here
</code></pre><p><code>set -e</code> オプションを使用する</p><p>スクリプト内の任意のコマンドが失敗した場合にスクリプトを直ちに終了させたい場合は、<code>set -e</code> オプションを使用できます。このオプションにより、スクリプト内のどのコマンドが失敗しても Bash はエラーで終了し、スクリプト内のエラーを特定して修正することが容易になります。</p><pre><code class="language-bash">#!/bin/bash

set -e

# Your script goes here
</code></pre><h3 id="-cron-">ログを確認して cron のトラブルシューティングを行う</h3><p>ログファイルを使用して cron のトラブルシューティングを行うことができます。スケジュールされたすべてのジョブについて、ログが保持されています。特定のジョブが意図通りに実行されたかどうか、ログを確認して検証することができます。</p><p>Ubuntu や Debian の場合、<code>cron</code> ログは次の場所にあります:</p><pre><code class="language-bash">/var/log/syslog</code></pre><p>他のディストリビューションでは場所が異なる場合があります。</p><p>cron ジョブのログファイルは次のようになっているでしょう:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">2022-03-11 00:00:01 Task started
2022-03-11 00:00:02 Running script /path/to/script.sh
2022-03-11 00:00:03 Script completed successfully
2022-03-11 00:05:01 Task started
2022-03-11 00:05:02 Running script /path/to/script.sh
2022-03-11 00:05:03 Error: unable to connect to database
2022-03-11 00:05:03 Script exited with error code 1
2022-03-11 00:10:01 Task started
2022-03-11 00:10:02 Running script /path/to/script.sh
2022-03-11 00:10:03 Script completed successfully</code></pre><figcaption>cron ログ</figcaption></figure><!--kg-card-begin: html--><h2 id="conclusion">結論</h2><!--kg-card-end: html--><p>この記事では、まずターミナルへのアクセス方法といくつかの基本的な Bash コマンドの実行方法を説明しました。また、Bash シェルの概要についても学びました。ループや条件分岐を使用したコードの分岐についても簡単に見てきました。最後に、cron を使用したスクリプトの自動化とそのトラブルシューティング手法についても述べました。</p><!--kg-card-begin: html--><h3 id="resources-for-learning-more-about-bash-scripting">Bash スクリプトに関するさらなる学習リソース</h3><!--kg-card-end: html--><p>Bash スクリプティングの世界をさらに深く掘り下げたい場合は、freeCodeCamp による Linux に関する 6 時間の動画講座をお勧めします。</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/sWbUDq4S6Y8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="Introduction to Linux – Full Course for Beginners" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><p>このチュートリアルで学んだ中で一番好きなことは何ですか？また、この<a href="https://zaira_.bio.link/">プラットフォーム</a>で私とつながることもできます。📧</p><p>次のチュートリアルでお会いしましょう。楽しいコーディングを😁</p><p>バナー画像のクレジット: <a href="https://www.freepik.com/free-vector/hand-drawn-flat-design-devops-illustration_25726540.htm#query=programmer%20linux&amp;position=4&amp;from_view=search&amp;track=ais">Freepik</a> による画像</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Node と NPM を最新バージョンに更新する方法 ]]>
                </title>
                <description>
                    <![CDATA[ Node は、JavaScript コードをブラウザの外、サーバーサイドで実行するためのランタイム環境です。 一方、NPM は JavaScript パッケージ (または Node モジュールとも呼ばれます) を npm レジストリ [https://www.npmjs.com] に公開するためのパッケージマネージャーです。また、アプリケーションにパッケージをインストールするためにも使われます。 Node をインストールするには、Node.js のウェブサイト [https://nodejs.org/en/] にアクセスしてインストーラーをダウンロードする必要があります。ダウンロードしたら、インストーラーを実行し、手順に従い、利用規約に同意してデバイスにインストーラーを入れます。 Node をインストールすると、アプリケーション内のパッケージを管理するために使用できる npm CLI も取得できます。 ただし、Node と NPM はそれぞれ個別に最新バージョンに更新できます。この記事では、その方法を説明します。 Node を更新する方法 1. NPM を使用して Node  ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-update-node-and-npm-to-the-latest-version/</link>
                <guid isPermaLink="false">664371b1bb553104041dc659</guid>
                
                    <category>
                        <![CDATA[ Node.js ]]>
                    </category>
                
                    <category>
                        <![CDATA[ npm ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Mon, 27 May 2024 14:09:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/05/pexels-markus-winkler-4052195.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-update-node-and-npm-to-the-latest-version/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Update Node and NPM to the Latest Version</a>
      </p><p>Node は、JavaScript コードをブラウザの外、サーバーサイドで実行するためのランタイム環境です。</p><p>一方、NPM は JavaScript パッケージ (または Node モジュールとも呼ばれます) を <a href="https://www.npmjs.com">npm レジストリ</a>に公開するためのパッケージマネージャーです。また、アプリケーションにパッケージをインストールするためにも使われます。</p><p>Node をインストールするには、<a href="https://nodejs.org/en/">Node.js のウェブサイト</a>にアクセスしてインストーラーをダウンロードする必要があります。ダウンロードしたら、インストーラーを実行し、手順に従い、利用規約に同意してデバイスにインストーラーを入れます。</p><p>Node をインストールすると、アプリケーション内のパッケージを管理するために使用できる <code>npm</code> CLI も取得できます。</p><p>ただし、Node と NPM はそれぞれ個別に最新バージョンに更新できます。この記事では、その方法を説明します。</p><h2 id="node-">Node を更新する方法</h2><h3 id="1-npm-node-">1. NPM を使用して Node のバージョンを更新する場合</h3><p>NPM を使用して Node を更新するには、デバイス上で Node のバージョンを対話形式で管理するための <a href="https://www.npmjs.com/package/n">n</a> パッケージをインストールします。</p><p>以下がその手順です:</p><h4 id="npm-">NPM のキャッシュをクリアする</h4><p>依存関係をインストールすると、次回のダウンロードの速度を向上させるため、いくつかのモジュールがキャッシュされます。そのため、まず NPM のキャッシュをクリアする必要があります。</p><h4 id="n-">n パッケージをインストールする</h4><pre><code>npm install -g n</code></pre><p>このパッケージをグローバルにインストールする必要があります。これは、ルートで Node のバージョンを管理します。</p><h4 id="-node-">新しいバージョンの Node をインストールする</h4><pre><code>n lts
n latest</code></pre><p>上記の二つのコマンドは、Node の長期サポート版と最新版をインストールします。</p><h4 id="-">以前にインストールされたバージョンを削除する</h4><pre><code>n prune</code></pre><p>このコマンドは、以前にインストールされたバージョンのキャッシュされたバージョンを削除し、最後にインストールされたバージョンのみを保持します。</p><h3 id="2-nvm-node-">2. NVM を使用して Node のバージョンを更新する場合</h3><p>NVM は Node Version Manager の略であり、その名前が示すように、Node のバージョンを管理するのに役立ちます。NVM を使用すると、Node のバージョンを複数インストールし、プロジェクトが使用する Node のバージョンを指定することができます。</p><p>NVM を使用すると、さまざまな Node のバージョンでプロジェクトをテストすることが簡単になります。</p><p>NVM を使用して Node のバージョンを更新するには、まず NVM をインストールする必要があります。</p><p>NVM の<a href="https://github.com/nvm-sh/nvm#installing-and-updating">インストールガイドはこちら</a>です。</p><p>インストール後、次のコマンドでパッケージをインストールできます:</p><pre><code>nvm install [version]</code></pre><p>最新バージョンをインストールするには、次のコマンドを使用します:</p><pre><code>nvm install node</code></pre><p>他のバージョンをアンインストールするには、次のコマンドを使用します:</p><pre><code>nvm uninstall [version]</code></pre><p>多くのバージョンがインストールされている場合、特定の時点で使用するバージョンを指定することもあります。これを行う方法の一つは、次のようにデフォルトのエイリアスを設定することです:</p><pre><code>nvm alias default [version]</code></pre><p>このようにすると、Node の実行は指定されたバージョンで実行されます。</p><h3 id="3-node-">3. 更新された Node のバイナリをダウンロードする場合</h3><p>また、<a href="https://nodejs.org/en/">Node.js</a> のウェブサイトから最新バージョンを入手することもできます。そこでは、デバイスに最適な最新バージョンと長期サポートバージョンを見つけることができます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/05/image-7.png" class="kg-image" alt="image-7" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/05/image-7.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/05/image-7.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="662" loading="lazy"><figcaption>Node.js のダウンロードページ</figcaption></figure><p>最新バージョンをダウンロードすると、NPM の最新バージョンも入手できます。</p><h2 id="npm--1">NPM の更新方法</h2><p>パッケージを更新するために NPM を使用するのと同様に、NPM で NPM 自体を更新することもできます。そのコマンドは以下の通りです:</p><pre><code>npm install -g npm@latest</code></pre><p>このコマンドは、最新バージョンの NPM をグローバルにインストールします。</p><p>Mac では、NPM の前に <code>sudo</code> コマンドを渡す必要があるかもしれません。これは、NPM をデバイスのルートにインストールするために特権が必要なためです。</p><h2 id="--1">結論</h2><p>この記事では、Node と NPM を最新バージョンに更新する方法を見てきました。</p><p>繰り返しますが、Node をインストールすると自動的に NPM もインストールされます。また、ウェブサイトからバイナリをインストールして Node を更新すると、更新された NPM が取得できます。</p><p>また、デバイス全体で Node と NPM を更新する他の方法も学びました。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ JSON Stringify の例 - JavaScript で JSON オブジェクトを解析する方法 ]]>
                </title>
                <description>
                    <![CDATA[ JSON、または JavaScript Object Notation は、私たちの身の回りにあります。ウェブアプリを使用したことがあれば、そのウェブアプリがデータを構造化したり、保存したり、サーバーとデバイス間で送信したりするために JSON を使用している可能性が非常に高いでしょう。 この記事では、まず JSON と JavaScript の違いについて簡単に説明し、次にブラウザと Node.js プロジェクトで JSON を解析するさまざまな方法について説明します。 JSON と JavaScript の違い JSON は通常の JavaScript のように見えますが、JSON はテキストファイルと同様のデータ形式と考える方が良いでしょう。JSON は JavaScript の構文を基にしているため、非常に似ています。 JSON オブジェクトと JSON 配列を見て、それらを JavaScript の物と比較してみましょう。 JSON オブジェクトと JavaScript オブジェクトリテラルの違い まず、こちらが JSON オブジェクトです: {   "name": ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/json-stringify-example-how-to-parse-a-json-object-with-javascript/</link>
                <guid isPermaLink="false">663224596851400400c0dbfa</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JSON ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Fri, 17 May 2024 08:58:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/05/602358380a2838549dcc2554.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/json-stringify-example-how-to-parse-a-json-object-with-javascript/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">JSON Stringify Example – How to Parse a JSON Object with JS</a>
      </p><p>JSON、または JavaScript Object Notation は、私たちの身の回りにあります。ウェブアプリを使用したことがあれば、そのウェブアプリがデータを構造化したり、保存したり、サーバーとデバイス間で送信したりするために JSON を使用している可能性が非常に高いでしょう。</p><p>この記事では、まず JSON と JavaScript の違いについて簡単に説明し、次にブラウザと Node.js プロジェクトで JSON を解析するさまざまな方法について説明します。</p><h2 id="json-javascript-">JSON と JavaScript の違い</h2><p>JSON は通常の JavaScript のように見えますが、JSON はテキストファイルと同様のデータ形式と考える方が良いでしょう。JSON は JavaScript の構文を基にしているため、非常に似ています。</p><p>JSON オブジェクトと JSON 配列を見て、それらを JavaScript の物と比較してみましょう。</p><h3 id="json-javascript--1"><strong>JSON オブジェクトと JavaScript オブジェクトリテラル</strong>の違い</h3><p>まず、こちらが JSON オブジェクトです:</p><figure class="kg-card kg-code-card"><pre><code class="language-JSON">{
  "name": "Jane Doe",
  "favorite-game": "Stardew Valley",
  "subscriber": false
}</code></pre><figcaption>jane-profile.json</figcaption></figure><p>JSON オブジェクトと通常の JavaScript オブジェクト (オブジェクトリテラルとも呼ばれます) の主な違いは、引用符に関係しています。JSON オブジェクトのすべてのキーと文字列型の値は、ダブルクォーテーション (<code>"</code>) で囲まれている必要があります。</p><p>JavaScript のオブジェクトリテラルはもう少し柔軟です。オブジェクトリテラルでは、キーや文字列を必ずしもダブルクォーテーションで囲む必要はありません。代わりに、シングルクォーテーション (<code>'</code>) を使用するか、キーに関しては引用符を使用しないことも可能です。</p><p>上記のコードを JavaScript のオブジェクトリテラルとして表すと、次のように書くことができます:</p><pre><code class="language-JavaScript">const profile = {
  name: 'Jane Doe',
  'favorite-game': 'Stardew Valley',
  subscriber: false
}</code></pre><p>キー <code>'favorite-game'</code> がシングルクォーテーションで囲まれていることに注意してください。オブジェクトリテラルでは、単語がダッシュ (<code>-</code>) で区切られているキーは引用符で囲む必要があります。</p><p>引用符を避けたい場合は、キーをキャメルケース (<code>favoriteGame</code>) に書き直すか、単語をアンダースコアで区切る (<code>favorite_game</code>) ことができます。</p><h3 id="json-javascript--2">JSON 配列と JavaScript 配列の違い</h3><p>JSON 配列は、JavaScript の配列とほぼ同じように動作し、文字列、ブール値、数値、および他の JSON オブジェクトを含むことができます。たとえば次のような配列があるとします:</p><figure class="kg-card kg-code-card"><pre><code class="language-JSON">[
  {
    "name": "Jane Doe",
    "favorite-game": "Stardew Valley",
    "subscriber": false
  },
  {
    "name": "John Doe",
    "favorite-game": "Dragon Quest XI",
    "subscriber": true
  }
]</code></pre><figcaption>profiles.json</figcaption></figure><p>これを素の JavaScript で書き直した例がこちらです:</p><pre><code class="language-JavaScript">const profiles = [
  {
    name: 'Jane Doe',
    'favorite-game': 'Stardew Valley',
    subscriber: false
  },
  {
    name: 'John Doe',
    'favorite-game': 'Dragon Quest XI',
    subscriber: true
  }
];</code></pre><h2 id="-json">文字列としての JSON</h2><p>JSON にオブジェクトと配列があるのなら、それらをプログラム内で通常の JavaScript のオブジェクトリテラルや配列のように使用できるのではないかと思っているかもしれません。</p><p>それができない理由は、JSON は実際には単なる文字列であるからです。</p><p>たとえば、上記の <code>jane-profile.json</code> や <code>profiles.json</code> のように、JSON を別のファイルに書き込むと、そのファイルは実際には JSON オブジェクトや配列の形をしたテキストを含んでいます。その形式がたまたま JavaScript のように見えるだけです。</p><p>そして、API にリクエストを送信すると、次のようなものが返ってきます:</p><pre><code class="language-JSON">{"name":"Jane Doe","favorite-game":"Stardew Valley","subscriber":false}</code></pre><p>テキストファイルの場合と同様に、プロジェクトで JSON を使用したい場合は、これを解析して、プログラミング言語が理解できる形式に変更する必要があります。たとえば、Python で JSON オブジェクトを解析すると、辞書型のデータが作成されます。</p><p>その理解をもとに、JavaScript で JSON を解析するさまざまな方法を見てみましょう。</p><h2 id="-json-">ブラウザで JSON を解析する方法</h2><p>ブラウザで JSON を扱う場合、たいていは API を介してデータを受信または送信します。</p><p>いくつかの例を見てみましょう。</p><h3 id="fetch-json-"><code>fetch</code> を使用して JSON を解析する方法</h3><p>API からデータを取得する最も簡単な方法は、<code>fetch</code> を使用することです。<code>fetch</code> には <code>.json()</code> メソッドが含まれており、JSON レスポンスを使用可能な JavaScript オブジェクトリテラルや配列へと簡単に解析できます。</p><p>以下は、<a href="https://api.chucknorris.io">Chuck Norris Jokes API</a> から開発者向けのジョークを取得するために、<code>fetch</code> を使用して <code>GET</code> リクエストを行うコードです:</p><pre><code class="language-JavaScript">fetch('https://api.chucknorris.io/jokes/random?category=dev')
  .then(res =&gt; res.json()) // the .json() method parses the JSON response into a JS object literal
  .then(data =&gt; console.log(data));</code></pre><p>ブラウザでそのコードを実行すると、コンソールに次のような内容がログされます:</p><pre><code>{
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "elgv2wkvt8ioag6xywykbq",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/elgv2wkvt8ioag6xywykbq",
    "value": "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."
}</code></pre><p>これは JSON オブジェクトのように見えますが、実際には JavaScript のオブジェクトリテラルであり、プログラム内で自由に使用できます。</p><h3 id="json-stringify-json-"><code>JSON.stringify()</code> を使用して JSON を文字列に変換する方法</h3><p>しかし、API にデータを送信したい場合はどうすれば良いでしょうか？</p><p>たとえば、他の人が後で読めるように Chuck Norris のジョークを Chuck Norris Jokes API に送信したいとします。</p><p>まず、ジョークを JavaScript のオブジェクトリテラルとして書きます:</p><pre><code class="language-JavaScript">const newJoke = {
  categories: ['dev'],
  value: "Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."
};</code></pre><p>API にデータを送信するので、<code>newJoke</code> オブジェクトリテラルを JSON 文字列に変換する必要があります。</p><p>幸いにも、JavaScript にはそのための非常に役立つメソッド、<code>JSON.stringify()</code> が含まれています:</p><pre><code class="language-JavaScript">const newJoke = {
  categories: ['dev'],
  value: "Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."
};

console.log(JSON.stringify(newJoke)); // {"categories":["dev"],"value":"Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."}

console.log(typeof JSON.stringify(newJoke)); // string</code></pre><p>この例では、オブジェクトリテラルを JSON 文字列に変換していますが、<code>JSON.stringify()</code> は配列にも使えます。</p><p>あとは、JSON 文字列化されたジョークを <code>POST</code> リクエストで API に送信するだけです。</p><p>Chuck Norris Jokes API には実際にはこの機能はありません。しかし、もしこの機能があるとしたら、コードは次のようになるでしょう:</p><pre><code class="language-JavaScript">const newJoke = {
  categories: ['dev'],
  value: "Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."
};

fetch('https://api.chucknorris.io/jokes/submit', { // fake API endpoint
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(newJoke), // turn the JS object literal into a JSON string
})
  .then(res =&gt; res.json())
  .then(data =&gt; console.log(data))
  .catch(err =&gt; {
    console.error(err);
  });</code></pre><p>これで、<code>fetch</code> を使用して受信した JSON を解析し、<code>JSON.stringify()</code> を使用して JavaScript のオブジェクトリテラルを JSON 文字列に変換できました。</p><h3 id="-json--1">ブラウザでローカル JSON ファイルを操作する方法</h3><p>残念ながら、ブラウザでローカルの JSON ファイルをロードすることはできません (またはお勧めしません)。</p><p><code>fetch</code> は、ローカルファイルを読み込もうとするとエラーをスローします。たとえば、いくつかのジョークが含まれている JSON ファイルがあるとします:</p><figure class="kg-card kg-code-card"><pre><code class="language-JSON">[
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "elgv2wkvt8ioag6xywykbq",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/elgv2wkvt8ioag6xywykbq",
    "value": "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."
  },
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "ae-78cogr-cb6x9hluwqtw",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/ae-78cogr-cb6x9hluwqtw",
    "value": "There is no Esc key on Chuck Norris' keyboard, because no one escapes Chuck Norris."
  }
]</code></pre><figcaption>jokes.json</figcaption></figure><p>そして、それを解析して、シンプルな HTML ページ上にジョークのリストを作成したいとします。</p><p>以下のようなページを作成して、ブラウザで開くとします:</p><figure class="kg-card kg-code-card"><pre><code class="language-HTML">&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8" /&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /&gt;
    &lt;meta name="viewport" content="width=device-width" /&gt;
    &lt;title&gt;Fetch Local JSON&lt;/title&gt;
  &lt;/head&gt;
  &lt;script&gt;
    fetch("./jokes.json", { mode: "no-cors" }) // disable CORS because path does not contain http(s)
      .then((res) =&gt; res.json())
      .then((data) =&gt; console.log(data));
  &lt;/script&gt;
&lt;/html&gt;</code></pre><figcaption>index.html</figcaption></figure><p>コンソールには、次のように表示されます:</p><pre><code>Fetch API cannot load file://&lt;path&gt;/jokes.json. URL scheme "file" is not supported
</code></pre><p>デフォルトでは、ブラウザはセキュリティ上の理由からローカルファイルへのアクセスを許可しません。これは良いことであり、この動作を迂回しようとしてはいけません。</p><p>代わりに、最善の方法はローカル JSON ファイルを JavaScript に変換することです。幸いなことに、JSON の構文は JavaScript と非常に似ているため、簡単に変換できます。</p><p>必要なのは新しいファイルを作成し、JSON を変数として宣言することだけです:</p><figure class="kg-card kg-code-card"><pre><code class="language-JavaScript">const jokes = [
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "elgv2wkvt8ioag6xywykbq",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/elgv2wkvt8ioag6xywykbq",
    "value": "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."
  },
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "ae-78cogr-cb6x9hluwqtw",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/ae-78cogr-cb6x9hluwqtw",
    "value": "There is no Esc key on Chuck Norris' keyboard, because no one escapes Chuck Norris."
  }
]</code></pre><figcaption>jokes.js</figcaption></figure><p>そして、それを別個のスクリプトとしてページに追加します:</p><pre><code class="language-HTML">&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8" /&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /&gt;
    &lt;meta name="viewport" content="width=device-width" /&gt;
    &lt;title&gt;Fetch Local JSON&lt;/title&gt;
  &lt;/head&gt;
  &lt;script src="jokes.js"&gt;&lt;/script&gt;
  &lt;script&gt;
    console.log(jokes);
  &lt;/script&gt;
&lt;/html&gt;</code></pre><p>これで、<code>jokes</code> 配列をコードで自由に使用できるようになります。</p><p>または JavaScript <a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Modules">モジュール</a>を使用することもできますが、これはこの記事の範囲外です。</p><p>では、Node.js を使用してローカル JSON ファイルを操作したい場合はどうすれば良いでしょうか？それを見てみましょう。</p><h2 id="node-js-json-">Node.js で JSON を解析する方法</h2><p>Node.js は、ブラウザの外で JavaScript を実行することができる JavaScript ランタイムです。<a href="https://www.freecodecamp.org/news/the-definitive-node-js-handbook-6912378afc6e/">Node.js についてはこちら</a>で詳しく説明されています。</p><p>Node.js を使用してローカルのコンピューター上でコードを実行するか、サーバー上で完全な Web アプリケーションを実行するかに関わらず、JSON を操作する方法を知っておくと良いでしょう。</p><p>以下の例でも、同じ <code>jokes.json</code> ファイルを使用します:</p><figure class="kg-card kg-code-card"><pre><code class="language-JSON">[
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "elgv2wkvt8ioag6xywykbq",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/elgv2wkvt8ioag6xywykbq",
    "value": "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."
  },
  {
    "categories": ["dev"],
    "created_at": "2020-01-05 13:42:19.324003",
    "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
    "id": "ae-78cogr-cb6x9hluwqtw",
    "updated_at": "2020-01-05 13:42:19.324003",
    "url": "https://api.chucknorris.io/jokes/ae-78cogr-cb6x9hluwqtw",
    "value": "There is no Esc key on Chuck Norris' keyboard, because no one escapes Chuck Norris."
  }
]</code></pre><figcaption>jokes.json</figcaption></figure><h3 id="require-json-"><code>require()</code> を使用して JSON ファイルを解析する方法</h3><p>最も簡単な方法から始めましょう。</p><p>ローカルの JSON ファイルがある場合、<code>require()</code> を使用して、他の Node.js モジュールと同様にロードするだけで使用できます:</p><pre><code class="language-JavaScript">const jokes = require('./jokes.json');</code></pre><p>JSON ファイルは自動的に解析され、プロジェクトで使用できるようになります:</p><pre><code class="language-JavaScript">const jokes = require('./jokes.json');

console.log(jokes[0].value); // "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."</code></pre><p>これは同期的な方法であることに注意してください。つまり、プログラムは続行する前にファイル全体を解析し終わるまで停止します。非常に大きな JSON ファイルはプログラムの遅延を引き起こす可能性があるため、注意が必要です。</p><p>また、この方法で JSON を解析すると、全体がメモリに読み込まれるため、この方法は静的な JSON ファイルに使用するのが最適です。プログラムが実行中に JSON ファイルが変更されると、プログラムを再起動して更新された JSON ファイルを解析するまで、それらの変更にアクセスできません。</p><h3 id="fs-readfilesync-json-parse-json-"><code>fs.readFileSync()</code> と <code>JSON.parse()</code> を使用して JSON ファイルを解析する方法</h3><p>これは、Node.js プロジェクトで JSON ファイルを解析するどちらかというと古典的な方法 (他に適切な言い方がないので) です。ファイルを <code>fs</code> (ファイルシステム) モジュールで読み取り、次に <code>JSON.parse()</code> で解析します。</p><p><code>fs.readFileSync()</code> メソッドの使い方を見てみましょう。まず、プロジェクトに <code>fs</code> モジュールを追加します:</p><pre><code class="language-JavaScript">const fs = require('fs');</code></pre><p>次に、<code>jokes.json</code> ファイルの出力を保存する新しい変数を作成し、それに <code>fs.readFileSync()</code> を割り当てます:</p><pre><code class="language-JavaScript">const fs = require('fs');
const jokesFile = fs.readFileSync();</code></pre><p><code>fs.readFileSync()</code> にはいくつかの引数があります。最初の引数は読み込みたいファイルへのパスです:</p><pre><code class="language-JavaScript">const fs = require('fs');
const jokesFile = fs.readFileSync('./jokes.json');</code></pre><p>しかし、この状態で <code>jokesFile</code> をコンソールにログ出力すると、次のようになります:</p><pre><code>&lt;Buffer 5b 0a 20 20 7b 0a 20 20 20 20 22 63 61 74 65 67 6f 72 69 65 73 22 3a 20 5b 22 64 65 76 22 5d 2c 0a 20 20 20 20 22 63 72 65 61 74 65 64 5f 61 74 22 3a ... 788 more bytes&gt;</code></pre><p>これは、<code>fs</code> モジュールがファイルを読み取っているものの、ファイルのエンコーディングや形式がわかっていないことを意味します。<code>fs</code> は JSON のようなテキストベースのファイルだけでなく、ほとんどのファイルを読み込むために使用できるため、ファイルがどのようにエンコードされているかを指定する必要があります。</p><p>テキストベースのファイルの場合、エンコーディングは通常 <code>utf8</code> です:</p><pre><code class="language-JavaScript">const fs = require('fs');
const jokesFile = fs.readFileSync('./jokes.json', 'utf8');</code></pre><p>今度は <code>jokesFile</code> をコンソールにログ出力すると、ファイルの内容が表示されます。</p><p>しかし、これまでのところ、単にファイルを読み取っているだけで、それはまだ文字列です。<code>jokesFile</code> を使用可能な JavaScript オブジェクトや配列に解析するために、別のメソッドを使用する必要があります。</p><p>そのために、<code>JSON.parse()</code> を使用します:</p><pre><code class="language-JavaScript">const fs = require('fs');
const jokesFile = fs.readFileSync('./jokes.json', 'utf8');
const jokes = JSON.parse(jokesFile);

console.log(jokes[0].value); // "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."</code></pre><p>その名前が示すように、<code>JSON.parse()</code> は JSON 文字列を受け取り、JavaScript のオブジェクトリテラルまたは配列に解析します。</p><p><code>require</code> メソッドと同様に、<code>fs.readFileSync()</code> は同期メソッドであり、JSON でも他の種類のファイルでも、大きなファイルを読み込む場合、プログラムを遅くする可能性があります。</p><p>また、それはファイルを 1 回読み取り、メモリに読み込みます。ファイルが変更された場合、いずれかの時点でファイルを再度読み込む必要があります。この処理を簡単にするために、ファイルを読み込むための簡単な関数を作成すると良いでしょう。</p><p>次のようになります:</p><pre><code class="language-JavaScript">const fs = require('fs');
const readFile = path =&gt; fs.readFileSync(path, 'utf8');

const jokesFile1 = readFile('./jokes.json');
const jokes1 = JSON.parse(jokesFile1);

console.log(jokes1[0].value); // "Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris."

// the jokes.json file changes at some point

const jokesFile2 = readFile('./jokes.json');
const jokes2 = JSON.parse(jokesFile2);

console.log(jokes2[0].value); // "Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."</code></pre><h3 id="fs-readfile-json-parse-json-"><code>fs.readFile()</code> と <code>JSON.parse()</code> を使用して JSON を解析する方法</h3><p><code>fs.readFile()</code> メソッドは <code>fs.readFileSync()</code> に非常に似ていますが、非同期で動作します。これは、読み取るべき大きなファイルがあり、その処理が他のコードをブロックするのを避けたい場合に便利です。</p><p>基本的な例を以下に示します:</p><pre><code class="language-JavaScript">const fs = require('fs');

fs.readFile('./jokes.json', 'utf8');</code></pre><p>これまでのところ、<code>fs.readFileSync()</code> と似ていますが、<code>jokesFile</code> のような変数には割り当てていません。非同期なので、<code>fs.readFile()</code> の後のコードはファイルの読み取りが完了する前に実行されます。</p><p>代わりに、コールバック関数を使用して、その内部で JSON を解析します:</p><pre><code class="language-JavaScript">const fs = require('fs');

fs.readFile('./jokes.json', 'utf8', (err, data) =&gt; {
  if (err) console.error(err);
  const jokes = JSON.parse(data);

  console.log(jokes[0].value);
});

console.log("This will run first!");</code></pre><p>これにより、次のようにコンソールに出力されます:</p><pre><code>This will run first!
Chuck Norris's keyboard doesn't have a Ctrl key because nothing controls Chuck Norris.</code></pre><p><code>fs.readFileSync()</code> と同様に、<code>fs.readFile()</code> もファイルをメモリに読み込みます。つまり、ファイルが変更された場合は、ファイルを再度読み込む必要があります。</p><p>また、<code>fs.readFile()</code> は非同期ですが、最終的には読み込んでいるファイル全体をメモリに読み込みます。巨大なファイルの場合は、<a href="https://www.freecodecamp.org/news/node-js-streams-everything-you-need-to-know-c9141306be93/">Node.js のストリーム</a>を検討する方が良いかもしれません。</p><h3 id="node-js-json-stringify-json-">Node.js で <code>JSON.stringify()</code> を使用して JSON を文字列に変換する方法</h3><p>最後に、Node.js で JSON を解析する場合、API の応答として JSON を返す必要があるかもしれません。</p><p>幸いなことに、これはブラウザと同じように機能します。JavaScript のオブジェクトリテラルや配列を JSON 文字列に変換するには、単に <code>JSON.stringify()</code> を使用します:</p><pre><code class="language-JavaScript">const newJoke = {
  categories: ['dev'],
  value: "Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."
};

console.log(JSON.stringify(newJoke)); // {"categories":["dev"],"value":"Chuck Norris's keyboard is made up entirely of Cmd keys because Chuck Norris is always in command."}</code></pre><p>以上です！ブラウザと Node.js プロジェクトで JSON を操作する際に知っておくべきことについて、ほぼすべて説明しました。</p><p>さあ、思うままに JSON を解析したり文字列に変換したりしてください。</p><p>この記事に不足している点を見つけましたか？あなたのプロジェクトではどのように JSON を解析していますか？<a href="https://twitter.com/kriskoishigawa">Twitter</a> で教えてください。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Ubuntu で静的 IP を設定する方法 – Linux IP アドレスチュートリアル ]]>
                </title>
                <description>
                    <![CDATA[  ほとんどのネットワーク構成では、デフォルトでルーターの DHCP サーバーが IP アドレスを動的に割り当てます。システムの IP アドレスを常に同じにしたい場合には、静的 IP を使用するように強制することができます。 この記事でその方法を学びましょう。Ubuntu で静的 IP を設定する方法を二つ説明します。 静的 IP アドレスは、次のような状況で使用されます:  * ポートフォワーディングの設定  * FTP サーバー、ウェブサーバー、またはメディアサーバーなど、システムをサーバーとして設定する場合 前提条件: このチュートリアルに従うためには、次のものが必要です:  * Ubuntu のインストール、できれば GUI が使用できること  * システム構成ファイルを変更するための sudo 権限 コマンドラインで静的 IP を設定する方法 このセクションでは、静的 IP を設定するために必要なすべてのステップを詳しく見ていきます。 ステップ 1: 端末を起動する ショートカット Ctrl + Shift ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/setting-a-static-ip-in-ubuntu-linux-ip-address-tutorial/</link>
                <guid isPermaLink="false">6623a3a3b1c5a80479f68b82</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Thu, 02 May 2024 08:52:51 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/04/setting-static-ip-ubuntu.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/setting-a-static-ip-in-ubuntu-linux-ip-address-tutorial/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Setting a Static IP in Ubuntu – Linux IP Address Tutorial</a>
      </p><p><br>ほとんどのネットワーク構成では、デフォルトでルーターの DHCP サーバーが IP アドレスを動的に割り当てます。システムの IP アドレスを常に同じにしたい場合には、静的 IP を使用するように強制することができます。</p><p>この記事でその方法を学びましょう。Ubuntu で静的 IP を設定する方法を二つ説明します。</p><p>静的 IP アドレスは、次のような状況で使用されます:</p><!--kg-card-begin: markdown--><ul>
<li>ポートフォワーディングの設定</li>
<li>FTP サーバー、ウェブサーバー、またはメディアサーバーなど、システムをサーバーとして設定する場合</li>
</ul>
<!--kg-card-end: markdown--><p><br><strong>前提条件:</strong></p><p>このチュートリアルに従うためには、次のものが必要です:</p><!--kg-card-begin: markdown--><ul>
<li>Ubuntu のインストール、できれば GUI が使用できること</li>
<li>システム構成ファイルを変更するための <code>sudo</code> 権限</li>
</ul>
<!--kg-card-end: markdown--><h2 id="-ip-">コマンドラインで静的 IP を設定する方法</h2><p>このセクションでは、静的 IP を設定するために必要なすべてのステップを詳しく見ていきます。</p><!--kg-card-begin: markdown--><h3 id="1">ステップ 1: 端末を起動する</h3>
<!--kg-card-end: markdown--><p>ショートカット <code>Ctrl + Shift + t</code> を使用して端末を起動できます。</p><!--kg-card-begin: markdown--><h3 id="2">ステップ 2: 現在のネットワークに関する情報をメモする</h3>
<!--kg-card-end: markdown--><p>設定に適切な変更を加えるために、現在の IP アドレス、サブネットマスク、およびネットワークアダプター名が必要です。</p><p>利用可能なアダプターとそれぞれの IP 情報の詳細を見つけるために、以下のコマンドを使用してください。</p><pre><code class="language-Bash">ip a</code></pre><p>出力は以下のようになります:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-14.png" class="kg-image" alt="image-14" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/image-14.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/04/image-14.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-14.png 1250w" sizes="(min-width: 720px) 720px" width="1250" height="514" loading="lazy"></figure><p>私のネットワークでは、現在のアダプターは <code>eth0</code> です。ただし、あなたのシステムでは異なる場合があります。</p><!--kg-card-begin: markdown--><ul>
<li><strong>現在のネットワークアダプター名をメモする</strong></li>
</ul>
<!--kg-card-end: markdown--><p>現在のアダプターが <code>eth0</code> であるため、以下の詳細が関連しています。</p><pre><code class="language-Bash">6: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:df:c3:ad brd ff:ff:ff:ff:ff:ff
    inet 172.23.199.129/20 brd 172.23.207.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fedf:c3ad/64 scope link
       valid_lft forever preferred_lft forever</code></pre><p>現在の IP アドレス <code>172.23.199.129</code> は動的に割り当てられていることを思い出しましょう。ネットマスクには <code>20</code> ビットが予約されています。ブロードキャストアドレスは <code>172.23.207.255</code> です。</p><!--kg-card-begin: markdown--><ul>
<li><strong>サブネットをメモする</strong></li>
</ul>
<!--kg-card-end: markdown--><p>サブネットマスクの詳細は、以下のコマンドを使用して見つけることができます。</p><pre><code class="language-Bash">ifconfig -a</code></pre><p>あなたのアダプターに対する出力を探して、注意深く読んでください。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-15.png" class="kg-image" alt="image-15" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/image-15.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-15.png 948w" sizes="(min-width: 720px) 720px" width="948" height="236" loading="lazy"><figcaption>IP は <code>172.23.199.129</code>、サブネットマスクは <code>255.255.240.0</code> です。</figcaption></figure><p>クラスとサブネットマスクに基づくと、私のネットワークの使用可能なホスト IP 範囲は、<code>172.23.192.1</code> から <code>172.23.207.254</code> までです。</p><p>サブネット分割は広範なトピックです。サブネット化や使用可能な IP 範囲に関する詳細は、<a href="https://www.freecodecamp.org/japanese/news/subnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references/">この記事</a>を参照してください。</p><!--kg-card-begin: markdown--><h3 id="3">ステップ 3: 設定変更を行う</h3>
<!--kg-card-end: markdown--><p><a href="https://netplan.io">Netplan</a> は、最新の Ubuntu バージョンのデフォルトのネットワーク管理ツールです。Netplan の設定ファイルは YAML を使用して書かれ、拡張子は <code>.yaml</code> で終わります。</p><p>注意: 構成ファイル内のスペースに注意してください。これらは構文の一部です。適切なインデントがないと、ファイルが正しく読み取られません。</p><!--kg-card-begin: markdown--><ul>
<li><code>/etc/netplan</code> にある <code>netplan</code> ディレクトリに移動する</li>
</ul>
<!--kg-card-end: markdown--><p><code>ls</code> で <code>/etc/netplan</code> ディレクトリの中身を確認します。</p><p>ファイルが見当たらない場合は、作成することができます。名前は何でもかまいませんが、慣例としては <code>01-</code> から始まり <code>.yaml</code> で終わるようにします。数字は、複数の設定ファイルがある場合に優先度を設定します。</p><p>ファイル名 <code>01-network-manager-all.yaml</code> を作成しましょう。</p><p>ファイルにこれらの行を追加しましょう。ここから段階的にファイルを構築します。</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">network:
 version: 2</code></pre><figcaption>01-network-manager-all.yaml</figcaption></figure><p>Netplan 構成ファイルの最上位ノードは、<code>version: 2</code> を含む <code>network:</code> マッピングです (これはネットワーク定義バージョン 2 を使用していることを意味します)。</p><p>次に、全体のネットワークを制御する renderer を追加します。デフォルトでは renderer は <code>systemd-networkd</code> ですが、私たちは <code>NetworkManager</code> に設定します。</p><p>私たちのファイルは次のようになります:</p><pre><code class="language-Bash">network:
 version: 2
 renderer: NetworkManager</code></pre><p>次に、<code>ethernets</code> を追加し、先ほどステップ 2 で調べたネットワークアダプター名を参照します。他にも <code>modems:</code>、<code>wifis:</code>、または <code>bridges:</code> などのデバイスタイプがサポートされています。</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">network:
 version: 2
 renderer: NetworkManager
 ethernets:
   eth0:</code></pre><figcaption>01-network-manager-all.yaml</figcaption></figure><p>静的 IP を設定しようとしているので、このネットワークアダプターには IP アドレスを動的に割り当てたくありません。よって、<code>dhcp4</code> を <code>no</code> に設定しましょう。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">network:
 version: 2
 renderer: NetworkManager
 ethernets:
   eth0:
     dhcp4: no</code></pre><figcaption>01-network-manager-all.yaml</figcaption></figure><p>次に、ステップ 2 でメモした特定の静的 IP を、私たちのサブネットと使用可能な IP 範囲に基づいて指定します。それは <code>172.23.207.254</code> でした。</p><p>次に、ゲートウェイを指定します。これは IP アドレスを割り当てるルーターまたはネットワークデバイスです。私の場合は <code>192.168.1.1</code> です。</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">network:
 version: 2
 renderer: NetworkManager
 ethernets:
   eth0:
     dhcp4: no
     addresses: [172.23.207.254/20]
     gateway4: 192.168.1.1</code></pre><figcaption>01-network-manager-all.yaml</figcaption></figure><p>次に、<code>nameservers</code> を定義します。ここに DNS サーバーやセカンダリ DNS サーバーを定義します。ここでは、第 1 の値は Google のプライマリ DNS サーバーである <code>8.8.8.8</code>、第 2 の値は Google のセカンダリ DNS サーバーである <code>8.8.4.4</code> にします。これらの値は、あなたの要件に応じて異なる場合があります。</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">network:
 version: 2
 renderer: NetworkManager
 ethernets:
   eth0:
     dhcp4: no
     addresses: [172.23.207.254/20]
     gateway4: 192.168.1.1
     nameservers:
         addresses: [8.8.8.8,8.8.8.4]</code></pre><figcaption>01-network-manager-all.yaml</figcaption></figure><!--kg-card-begin: markdown--><h3 id="4">ステップ 4: 変更を適用してテストする</h3>
<!--kg-card-end: markdown--><p>変更を永続的に適用する前に、まず変更をテストすることができます。次のコマンドを使用します:</p><pre><code class="language-Bash">sudo netplan try</code></pre><p>エラーがなければ、この設定を適用するかどうか尋ねられます。</p><p>最後に、コマンド <code>ip a</code> を使用して変更をテストします。そうすると、静的 IP が適用されていることがわかります。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-17.png" class="kg-image" alt="image-17" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/image-17.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/04/image-17.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-17.png 1187w" sizes="(min-width: 720px) 720px" width="1187" height="540" loading="lazy"><figcaption>静的 IP が適用されました。</figcaption></figure><h3 id="gui-ip-">GUI を使用して静的 IP を設定する方法</h3><p>Ubuntu の GUI / デスクトップを介して静的 IP を設定するのは非常に簡単です。以下が手順です:</p><!--kg-card-begin: markdown--><ul>
<li><code>settings</code> を検索する</li>
<li>変更したいインターフェースに応じて、Network または Wi-Fi タブをクリックする</li>
<li>インターフェース名の横にある歯車アイコンをクリックしてインターフェースの設定を開く</li>
<li>IPV4 タブで「Manual (手動)」を選択し、静的 IP アドレス、ネットマスク、ゲートウェイを入力する</li>
<li><code>Apply</code> ボタンをクリックする</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-16.png" class="kg-image" alt="image-16" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/image-16.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/04/image-16.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-16.png 1098w" sizes="(min-width: 720px) 720px" width="1098" height="802" loading="lazy"><figcaption>Ubuntu デスクトップを使用して静的 IP を手動で設定します。</figcaption></figure><!--kg-card-begin: markdown--><ul>
<li>コマンド <code>ip a</code> を使用して確認する</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-18.png" class="kg-image" alt="image-18" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/image-18.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/04/image-18.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/image-18.png 1187w" sizes="(min-width: 720px) 720px" width="1187" height="540" loading="lazy"><figcaption>GUI を介して静的 IP が更新されました。</figcaption></figure><h2 id="-">結論</h2><p>この記事では、Ubuntu で静的 IP を設定する 2 つの方法をカバーしました。この記事が役立つことを願っています。</p><p>このチュートリアルから学んだ中でお気に入りのことは何ですか？<a href="https://twitter.com/hira_zaira">X / Twitter</a> で教えてください！</p><p>他の投稿は<a href="https://www.freecodecamp.org/news/author/zaira/">こちら</a>で読むことができます。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ PHP の Explode – 文字列を配列に分割する方法 ]]>
                </title>
                <description>
                    <![CDATA[ PHP の explode() 関数は文字列を配列に変換します。文字列の各文字には 0 から始まるインデックスが付けられます。組み込みの implode()  関数と同様に、explode() 関数はデータ (文字列) を変更しません。 explode() 関数の構文 explode() 関数は三つのパラメータを取ります。  * 区切り文字「seperator」  * 配列に変更する文字列「string」  * 上限「limit」 全体の構文は以下のようになります。 explode(seperator, string, limit) implode() 関数は区切り文字が指定されていなくても動作しますが、explode()  関数は区切り文字がないと動作しません。ですから、文字列を配列に分割する場合、区切り文字が必要です。limit パラメータには、期待される配列の要素数を指定することができます。これは任意のパラメータです。 implode() の例 この例で、文字列が「Hello World」とします。もし、この文字列を explode() 関数に入力した場合、Hello ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/php-explode-how-to-split-a-string-into-an-array/</link>
                <guid isPermaLink="false">661679b2df824d04c5d5d145</guid>
                
                    <category>
                        <![CDATA[ PHP ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Fri, 12 Apr 2024 14:50:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/04/explode-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/php-explode-how-to-split-a-string-into-an-array/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">PHP Explode – How to Split a String into an Array</a>
      </p><p>PHP の <code>explode()</code> 関数は文字列を配列に変換します。文字列の各文字には 0 から始まるインデックスが付けられます。組み込みの <code>implode()</code> 関数と同様に、<code>explode()</code> 関数はデータ (文字列) を変更しません。</p><h3 id="explode-"><code>explode()</code> 関数の構文</h3><p>explode() 関数は三つのパラメータを取ります。</p><ul><li>区切り文字「seperator」</li><li>配列に変更する文字列「string」</li><li>上限「limit」</li></ul><p>全体の構文は以下のようになります。</p><pre><code class="language-PHP">explode(seperator, string, limit)</code></pre><p><code>implode()</code> 関数は区切り文字が指定されていなくても動作しますが、<code>explode()</code> 関数は区切り文字がないと動作しません。ですから、文字列を配列に分割する場合、区切り文字が必要です。limit パラメータには、期待される配列の要素数を指定することができます。これは任意のパラメータです。</p><h2 id="implode-"><code>implode()</code> の例</h2><p>この例で、文字列が「Hello World」とします。もし、この文字列を <code>explode()</code> 関数に入力した場合、<code>Hello</code> には 0 のインデックスが付けられて、<code>World</code> には 1 のインデックスが付けられます。配列はゼロベースのインデックス付けであることを忘れないでください。</p><pre><code class="language-PHP">$str = "Hello world";
$newStr = explode(" ", $str);

// 配列を出力するので、print_r() を使うことができます。
print_r($newStr); </code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss1-3.png" class="kg-image" alt="ss1-3" width="415" height="335" loading="lazy"></figure><p>もし <code>explode()</code> 関数の上限を指定したら、インデックスは上限に指定された数を超えることはありません。例えば、もし 2 を指定したら、全ての文字列が表示されますが、インデックスは 2 を超えません。</p><pre><code class="language-PHP">$str = "CSS, HTML, PHP, Java, JavaScript";
$newStr = explode(" ", $str, 2);

// 配列を出力するので、print_r() を使うことができます。
print_r($newStr); </code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss2-3.png" class="kg-image" alt="ss2-3" width="535" height="396" loading="lazy"></figure><p>最初の要素はインデックス 0 を取り、残りのコンマで区切られた要素は 1 を取ります。インデックスは、指定された 2 の上限を超えることはありません。</p><p>下記の <code>explode()</code> 関数は、文字列内のスペースを見て、文字列を配列に分割します。もし異なる二つの単語を繋げて入力した場合、それらは一つとして扱われます。</p><pre><code class="language-PHP">$str = "CSS HTMLPHP Java JavaScript";
$newStr = explode(" ", $str);

// 配列を出力するので、print_r() を使うことができます。
print_r($newStr); </code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss5-2.png" class="kg-image" alt="ss5-2" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/ss5-2.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss5-2.png 646w" width="646" height="388" loading="lazy"></figure><p>HTML と PHP が一緒に出力されたのは、その間にスペースがなかったためです。</p><h2 id="-">結論</h2><p>この記事では、PHP の <code>explode()</code> 関数の使い方を学びました。</p><p>区切り文字がなくても動作する <code>implode()</code> とは異なり、<code>explode()</code> では区切り文字が非常に重要です。区切り文字を指定しないと、<code>explode()</code> は期待通りに動作しませんので、注意してください。</p><pre><code class="language-PHP">$str = "CSS, HTML, PHP, Java, JavaScript";
$newStr = explode($str, 2);

// 配列を出力するので、print_r() を使うことができます。
print_r($newStr); </code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss3-3.png" class="kg-image" alt="ss3-3" width="459" height="286" loading="lazy"></figure><p>もし区切り文字が空の文字列だった場合、エラーが発生します。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/ss4-3.png" class="kg-image" alt="ss4-3" width="896" height="183" loading="lazy"></figure><p>お読みいただき、ありがとうございました。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML リンク - 画像をリンクに変換し、段落内にリンクをネストする方法 ]]>
                </title>
                <description>
                    <![CDATA[ 段落内にリンクをネストしたり、画像をリンクに変換したいことがあるでしょう。ではそれを HTML でどのように書いたらいいでしょうか？ この記事では、段落内にリンクをネストする方法と、画像をリンクに変換する方法を、コード例を使用して紹介します。 段落タグの中にアンカータグをネストする方法 もし段落内にリンクを加えたかったら、段落タグの中にアンカータグをネストできます。 この最初の例では「I love freeCodeCamp」と言うテキストがあります。 <p>I love freeCodeCamp</p> もし「freeCodeCamp」と言う単語をリンクに変換したかったら、アンカータグで囲みます。 <p>I love <a href="https://www.freecodecamp.org/">freeCodeCamp</a></p> リンクを新しいタブで開くには target="_blank" の属性を加えます。 <p>I love <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCam ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-turn-text-and-images-into-links-using-html/</link>
                <guid isPermaLink="false">660b0ac7d832a30414eba972</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Wed, 03 Apr 2024 14:12:59 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/04/markus-spiske--dbOrdtrR1A-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-turn-text-and-images-into-links-using-html/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML Link – How to Turn an Image into a Link and Nest Links Inside Paragraphs</a>
      </p><p>段落内にリンクをネストしたり、画像をリンクに変換したいことがあるでしょう。ではそれを HTML でどのように書いたらいいでしょうか？</p><p>この記事では、段落内にリンクをネストする方法と、画像をリンクに変換する方法を、コード例を使用して紹介します。</p><h2 id="-">段落タグの中にアンカータグをネストする方法</h2><p>もし段落内にリンクを加えたかったら、段落タグの中にアンカータグをネストできます。</p><p>この最初の例では「I love freeCodeCamp」と言うテキストがあります。</p><pre><code class="language-HTML">&lt;p&gt;I love freeCodeCamp&lt;/p&gt;</code></pre><p>もし「freeCodeCamp」と言う単語をリンクに変換したかったら、アンカータグで囲みます。</p><pre><code class="language-HTML">&lt;p&gt;I love &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;&lt;/p&gt;</code></pre><p>リンクを新しいタブで開くには <code>target="_blank"</code> の属性を加えます。</p><pre><code class="language-HTML">&lt;p&gt;I love &lt;a target="_blank" href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;&lt;/p&gt;</code></pre><p>マウスを「freeCodeCamp」と言う単語の上に重ねると、リンクがあることが分かります。クリックすると、ウェブサイトに移動します。</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_BaYVREm" src="https://codepen.io/jessica-wilkins/embed/preview/BaYVREm?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=BaYVREm" title="nest link in p tags example 1" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p>段落タグの中にリンクをネストすると、ページの主要なコンテンツに関する追加情報をユーザーに案内したい場合に役立ちます。</p><p>次の例では、freeCodeCamp のコースについて書かれた段落があります。</p><pre><code class="language-HTML">&lt;p&gt;I started learning how to code using freeCodeCamp. I really enjoyed their Responsive Web Design course. I am looking forward to starting the JavaScript course soon.&lt;/p&gt;</code></pre><p>初めに、ウェブサイトをユーザーに案内するために「freeCodeCamp」と言う単語をリンクに変換します。</p><pre><code class="language-HTML">&lt;p&gt;I started learning how to code using  &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;. I really enjoyed  their Responsive Web Design course. I am looking forward to starting the  JavaScript course soon.&lt;/p&gt;</code></pre><p>それから「Responsive Web Design Course」に別のリンクを追加して、ユーザーをプロジェクトベースのカリキュラムに案内します。</p><pre><code class="language-HTML">&lt;p&gt;I started learning how to code using  &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;. I really enjoyed  their  &lt;a href="https://www.freecodecamp.org/learn/2022/responsive-web-design/"&gt;Responsive Web Design course&lt;/a&gt;. I am looking forward to starting the JavaScript course soon.&lt;/p&gt;</code></pre><p>最後に、JavaScript コースのためのリンクを追加して、これによってユーザーを JavaScript カリキュラムに案内します。</p><pre><code class="language-HTML">&lt;p&gt;I started learning how to code using &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;. I really enjoyed their &lt;a href="https://www.freecodecamp.org/learn/2022/responsive-web-design/"&gt;Responsive Web Design course&lt;/a&gt;. I am looking forward to starting the &lt;a href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/"&gt;JavaScript course&lt;/a&gt; soon.&lt;/p&gt;</code></pre><p>これはブラウザでの最終結果です:</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_ExQRmqY" src="https://codepen.io/jessica-wilkins/embed/preview/ExQRmqY?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=ExQRmqY" title="nest link in p tags example 2" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h2 id="--1">画像をリンクに変換する方法</h2><p>HTML では <code>&lt;img&gt;</code> 要素を使用してページに画像を追加することができます。この例では五匹の猫の画像を追加します。</p><pre><code class="language-HTML">&lt;img  src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg"  alt="Five cats looking around a field."/&gt;</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/04/Screen-Shot-2022-06-02-at-10.39.02-PM.png" class="kg-image" alt="Screen-Shot-2022-06-02-at-10.39.02-PM" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/04/Screen-Shot-2022-06-02-at-10.39.02-PM.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/04/Screen-Shot-2022-06-02-at-10.39.02-PM.png 918w" sizes="(min-width: 720px) 720px" width="918" height="490" loading="lazy"></figure><p>もしこの画像をクリックできるリンクに変換したかったら、アンカータグの中に入れます。</p><pre><code class="language-HTML">&lt;a href="https://en.wikipedia.org/wiki/Cat"&gt;&lt;img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg" alt="Five cats looking around a field."/&gt;&lt;/a&gt;</code></pre><p>そのリンクを新しいタブで開くには <code>target="_blank"</code> と言う属性を使うことができます。</p><pre><code class="language-HTML">&lt;a target="_blank" href="https://en.wikipedia.org/wiki/Cat"&gt;&lt;img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg" alt="Five cats looking around a field." /&gt;&lt;/a&gt;</code></pre><p>マウスを画像の上に重ねると、カーソルの形が変わり、それが猫に関する記事へのリンクであることが分かります。</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_XWZYRgy" src="https://codepen.io/jessica-wilkins/embed/preview/XWZYRgy?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=XWZYRgy" title="Turning image into link example" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h2 id="--2">結論</h2><p>この記事では、段落内にアンカータグをネストして、画像をリンクに変換する方法を学びました。</p><p>段落内にリンクを追加するには、段落タグの中にアンカータグをネストします。</p><pre><code class="language-HTML">&lt;p&gt;I love &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;&lt;/p&gt;</code></pre><p>画像をリンクに変換するには、アンカータグの中に <code>img</code> 要素をネストします。</p><pre><code class="language-HTML">&lt;a href="https://en.wikipedia.org/wiki/Cat"&gt;&lt;img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg" alt="Five cats looking around a field."/&gt;&lt;/a&gt;</code></pre><p>この記事を楽しんでいただけたら嬉しいです。そして、あなたのプログラミングの旅に幸運を祈っています。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
