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

<channel>
	<title>初心者向け アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/初心者向け/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 15 Nov 2024 08:55:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>初心者向け アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/初心者向け/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【初心者】簡単！vue.jsで電卓の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/4571/</link>
					<comments>https://nyanblog2222.com/programming/javascript/4571/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 12:40:12 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[vue.js]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[計算機]]></category>
		<category><![CDATA[電卓]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4571</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />前回はJavaScriptで電卓を作成しました。今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。 前回の記事はこちらから！ 目次 はじめに電卓の機能HTMLvue.jsの設定 → CDNでの設定電卓の各 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>前回はJavaScriptで電卓を作成しました。<br>今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。</p>



<p>前回の記事はこちらから！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/programming/javascript/4496/" title="【初心者】簡単！JavaScriptで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JSで四則演算や小数点の計算ができる簡易的な電卓を作成。持たせる機能から作り方の考え方までHTML,CSSソースやデモページ付きで解説しているので、プログラミングの勉強や参考に！デモページあり。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.06</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-popular">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a><ol><li><a href="#toc2" tabindex="0">電卓の機能</a></li></ol></li><li><a href="#toc3" tabindex="0">HTML</a><ol><li><a href="#toc4" tabindex="0">vue.jsの設定 → CDNでの設定</a></li><li><a href="#toc5" tabindex="0">電卓の各ボタンをv-forで自動作成</a></li><li><a href="#toc6" tabindex="0">クリックイベント書き換え</a></li><li><a href="#toc7" tabindex="0">vue使用のためv-model、idの設定</a></li></ol></li><li><a href="#toc8" tabindex="0">JavaScript</a></li><li><a href="#toc9" tabindex="0">デモ</a></li><li><a href="#toc10" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずはじめに<a href="https://nyanblog2222.com/programming/javascript/4496/" target="_blank">前回でも</a>説明しましたが、電卓の機能を説明します。<br>その後、vue.jsに書き換える手順を説明します。</p>



<p>また、CSSに関しては前回の記事より変更がありませんので今回は割愛させていただきます。</p>



<h3 class="wp-block-heading"><span id="toc2">電卓の機能</span></h3>



<p>作る電卓の機能は次のとおりです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list"><li>四則演算ができる</li><li>Cキーで初期化</li><li>＝で計算した後<br>数字の場合、初期化したあと数字入力<br>演算子の場合、結果はそのまま使用</li><li>最初のキーが”0”、&#8221;.&#8221;、&#8221;+-×/&#8221;の場合、<br>あらかじめ0が入力されている前提で式に入力</li></ul>
</div>



<p>完成イメージはこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="(max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>HTMLコードです。</p>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="icon" href="https://nyanblog2222.com/wp-content/themes/blogtemplate/images/favicon.ico">
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head>

&lt;body>
  &lt;div id="app">
    &lt;h1 id="header">電卓&lt;/h1>
    &lt;div id="calc">
      &lt;div>
        &lt;input readonly v-model="result" type="text">&lt;button v-on:click="c_click">C&lt;/button>
      &lt;/div>
      &lt;div v-for="row in dataArrays">
        &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
      &lt;/div>
    &lt;/div>
  &lt;/div>
&lt;/body></code></pre>



<h3 class="wp-block-heading"><span id="toc4">vue.jsの設定 → CDNでの設定</span></h3>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head></code></pre>



<p>今回vueを使用するため、6行目にheadタグにCDN設定を追加しました。</p>



<p>注意する点として、<span class="marker-under">他のJavaScriptファイルを読み込む前にCDN設定するように</span>してください。</p>



<p>また、<a rel="noopener" href="https://jp.vuejs.org/v2/guide/installation.html" target="_blank">vue.jsのインストールや最新環境のCDNの情報はこちらから確認してください♪</a></p>



<h3 class="wp-block-heading"><span id="toc5">電卓の各ボタンをv-forで自動作成</span></h3>



<pre class="wp-block-code html"><code>&lt;div v-for="row in dataArrays">
  &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
&lt;/div></code></pre>



<pre class="wp-block-code javascript"><code>// 電卓のボタン
dataArrays: &#91;
  &#91;"7", "8", "9", "÷"],
  &#91;"4", "5", "6", "×"],
  &#91;"1", "2", "3", "-"],
  &#91;"0", ".", "=", "+"],
],</code></pre>



<p>Cボタン以外は<span class="marker-under">vueで自動生成</span>させます。<br>ボタンの順番やデータはJavaScript側で記述します。</p>



<p><span class="marker-under">divタグはデータ1行単位でforを回し、buttonタグは1項目（1データ）単位で回して</span>います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>dataArrayと完成イメージ図を見比べると分かりやすいと思います！</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">クリックイベント書き換え</span></h3>



<p>クリックイベント「onclick」を「v-on:click」に置換します。</p>



<h3 class="wp-block-heading"><span id="toc7">vue使用のためv-model、idの設定</span></h3>



<p>inputタグのidを設定していましたが、v-modelでの設定に変更。<br>divのid=&#8221;app&#8221;を設定。</p>



<h2 class="wp-block-heading"><span id="toc8">JavaScript</span></h2>



<p>こちらがJavaScriptのコードです。</p>



<p>scriptファイルを分けているので、<span class="marker-under">「window.onload」でhtmlの読み込みが終わってから実行する</span>ようにしています。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
  new Vue({
    el: '#app',
    data: {
      result: "0",
      is_calc: false,
      dataArrays: &#91;
        &#91;"7", "8", "9", "÷"],
        &#91;"4", "5", "6", "×"],
        &#91;"1", "2", "3", "-"],
        &#91;"0", ".", "=", "+"],
      ],
      operators_list: &#91;"÷", "×", "-", "+"  ],
    },
    methods: {
      c_click: function () {
        this.result = "0";
        this.is_calc = false;
      },
      btn_Click: function (val) {
        if (this.operators_list.includes(val)) {
          this.ope_click(val);
        } else if (val === "=") {
          this.equal_click();
        } else {
          this.num_click(val);
        }
      },
      num_click: function (val) {
        if (this.is_calc) this.result = "0";
        this.is_calc = false;

        if (this.result == "0" &amp;&amp; val == "0") {
          this.result = "0";
        } else if (this.result == "0" &amp;&amp; val == ".") {
          this.result = "0.";
        } else if (this.result == "0") {
          this.result = val;
        } else {
          this.result += val;
        }
      },
      ope_click: function (val) {
        if (this.is_calc) this.is_calc = false;

        if (this.is_ope_last()) {
          this.result = this.result.slice(0, -1) + val;
        } else {
          this.result += val;
        }
      },
      equal_click: function () {
        if (this.is_ope_last()) this.result = this.result.slice(0, -1);

        var temp = new Function("return " + this.result.replaceAll("×", "*").replaceAll("÷", "/"))();
        if (temp == Infinity || Number.isNaN(temp)) {
          this.result = "Error";
        } else {
          this.result = temp;
          this.is_calc = true;
        }
      },
      is_ope_last: function () {
        return this.operators_list.includes(this.result.toString().slice(-1));
      },
    },
  });
};</code></pre>



<h2 class="wp-block-heading"><span id="toc9">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calc_vue1/">こちらがデモページ</a>になります。<br>電卓が表示され、ボタンを押すと実際に計算ができるのでぜひ試してみてください♪</p>



<h2 class="wp-block-heading"><span id="toc10">最後に</span></h2>



<p>いかがでしたでしょうか。vue.jsも主流になっていますので使いこなしていきたいですね！</p>



<p>良ければ別のサンプルページも見てみてくださいね♪</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/4571/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/4496/</link>
					<comments>https://nyanblog2222.com/programming/4496/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 06 Mar 2022 14:50:45 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[計算機]]></category>
		<category><![CDATA[電卓]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4496</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はJavaScriptで電卓を作成しました。初心者の方が勉強しやすいシンプルな機能で作ってみました。 まずは簡単なものを完成することを目的にして、そのあとで機能を追加していくことが勉強するにはおすすめですよ♪ 別記事 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/4496/">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回はJavaScriptで電卓を作成しました。<br>初心者の方が勉強しやすいシンプルな機能で作ってみました。</p>



<p>まずは<span class="marker-under">簡単なものを完成することを目的</span>にして、<br>そのあとで<span class="marker-under">機能を追加していくことが勉強する</span>にはおすすめですよ♪</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>初めから難しいものを作ろうとしても時間がかかって、その内やる気がなくなるのは勿体ないですよね…。（よくある）</p>
</div></div>



<p>別記事でVue.jsを使った記述も紹介しますので、合わせて読んでみてください！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4571/" title="【初心者】簡単！vue.jsで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JS[JavaScript]で四則演算ができる簡易的な計算機を作成しました。プログラミング初心者の方への勉強向け記事になりますのでデモページを見ながらコード、関数を見ながら作成してみてはいかがでしょうか。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.10</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">HTML</a><ol><li><a href="#toc3" tabindex="0">コード</a></li><li><a href="#toc4" tabindex="0">HTML解説</a></li></ol></li><li><a href="#toc5" tabindex="0">CSS</a></li><li><a href="#toc6" tabindex="0">JavaScript</a><ol><li><a href="#toc7" tabindex="0">コード</a></li><li><a href="#toc8" tabindex="0">解説</a><ol><li><a href="#toc9" tabindex="0">・グローバル変数の定義</a></li><li><a href="#toc10" tabindex="0">・HTML読み込み後</a></li><li><a href="#toc11" tabindex="0">・Cボタンクリック</a></li><li><a href="#toc12" tabindex="0">・数字ボタンクリック</a></li><li><a href="#toc13" tabindex="0">・演算子ボタンクリック</a></li><li><a href="#toc14" tabindex="0">・＝ボタンクリック</a></li><li><a href="#toc15" tabindex="0">・is_ope_last() 関数</a></li></ol></li></ol></li><li><a href="#toc16" tabindex="0">デモ</a></li><li><a href="#toc17" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずは<span class="marker-under">今回作成する電卓の機能を決定</span>します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>コーディングする前に機能を決定しておくことは、手戻りを防ぐためにも大事ですね♪</p>
</div></div>



<p>今回は次の機能を持たせました。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list">
<li>四則演算ができる</li>



<li>Cキーで初期化</li>



<li>＝で計算した後<br>数字の場合、初期化したあと数字入力<br>演算子の場合、結果はそのまま使用</li>



<li>最初のキーが”0”、&#8221;.&#8221;、&#8221;+-×/&#8221;の場合、<br>あらかじめ0が入力されている前提で式に入力</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>今回はこのまま進みますが、機会があればアップデートしていきたいですね♪</p>
</div></div>



<p>完成イメージ図はこちらです。<a href="https://nyanblog2222.com/demo/calc1/">デモページ</a>もありますので見てみてください。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">HTML</span></h2>



<p>まずはHTMLを作成していきます。<br>作成しているのは、次の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list">
<li>ヘッダー<br>「電卓」の文字</li>



<li>計算の表示枠</li>



<li>数字や演算子 ボタン</li>
</ul>
</div>



<h3 class="wp-block-heading"><span id="toc3">コード</span></h3>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
  &lt;h1 id="header"&gt;電卓&lt;/h1&gt;
  &lt;div id="calc"&gt;
    &lt;div&gt;
      &lt;input readonly id="result" type="text" value="0"&gt;
      &lt;button onclick="c_click()"&gt;C&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;7&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;8&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;9&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;÷&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;4&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;5&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;6&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;×&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;1&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;2&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;3&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;-&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;0&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;.&lt;/button&gt;
      &lt;button onclick="equal_click()"&gt;=&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;+&lt;/button&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p><span class="marker-under">input後のbuttonや、button後のbutton</span>について<br>分かりやすいように改行を入れていますが、<span class="marker-under">実際のコードでは改行していない</span>ので注意してください。</p>
</div></div>



<p>HTMLファイルを見てみると画像のように表示されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2.png" alt="" class="wp-image-4522" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h3 class="wp-block-heading"><span id="toc4">HTML解説</span></h3>



<ul class="wp-block-list">
<li>5行目　input要素<br>・readonly属性にして直接入力不可<br>・計算式や結果を表示するためid=&#8221;result&#8221;を設定<br>・valueを0にして初期表示</li>



<li>6行目　Cボタン<br>onclick属性で&#8221;c_click()&#8221;を設定</li>



<li>数字ボタン<br>onclick属性で&#8221;num_click(this.innerHTML)&#8221;を設定<br>this.innerHTMLはHTMLの中身を表しています。<br>例）9行目であれば&#8221;7&#8243;が入ります。</li>



<li>演算子ボタン<br>onclick属性で&#8221;ope_click(this.innerHTML)&#8221;を設定</li>



<li>29行目　イコールボタン<br>onclick属性で&#8221;equal_click()&#8221;を設定</li>
</ul>



<h2 class="wp-block-heading" id="block-9c55e8b0-4699-44c9-8292-f6eb513518f3"><span id="toc5">CSS</span></h2>



<p id="block-5cb743a1-2754-4c53-9351-04a5a1df0cb0">次にCSSでスタイルを決定します。<br>”reset.css”も使っているので、この辺りは好きなようにカスタマイズをしてください。</p>



<pre class="wp-block-code css"><code>@charset "utf-8";
/*全体*/
.wrapper{
  max-width: 350px;
  margin: 0 auto;
  color: #666;
}
#header,#calc{
  box-sizing: border-box;
  text-align: center;
}
/*ヘッダー*/
#header {
  font-size: 24px;
  padding: 1rem;
}
/*テキスト*/
input{
  box-sizing: border-box;
  width: 75%;
  height: 3.5rem;
  font-size: 1.6rem;
  text-align: right;
  padding: 0 0.75rem;
}
/*ボタン関係*/
button{
  font-size: 18px;
  width: 25%;
  height: 3.5rem;
  color: #333;
  vertical-align: middle;
  border-color: #fff;
}
button:hover{
  background-color: #ddd;
}
</code></pre>



<p>設定が終わると、このように表示されるようになります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc6">JavaScript</span></h2>



<h3 class="wp-block-heading"><span id="toc7">コード</span></h3>



<p>次項で詳しく解説していますが、コメントでも多少記述しています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>最初はコピペして自分で理解しながらカスタマイズする方法も勉強するのに向いていますよ！</p>
</div></div>



<pre class="wp-block-code javascript"><code>// データ
var result = "";
// =で計算したかどうか
var is_calc = false;

// 初期表示
window.onload = function () {
  result = document.getElementById('result');
};

// Cキー押下
function c_click(){
  result.value = "0";
  is_calc = false;
}

// 数字キー押下
function num_click(val){
  if(is_calc)  result.value = "0";
  is_calc = false;  

  if(result.value =="0" &amp;&amp; val == "0"){
    result.value = "0";
  }else if(result.value == "0" &amp;&amp; val == "."){
    result.value = "0.";
  }else if(result.value == "0"){
    result.value = val;
  }else{
    result.value += val;
  }
}

// 演算子キー押下
function ope_click(val){
  if(is_calc)  is_calc = false;
  
  if(is_ope_last()){
    result.value = result.value.slice(0, -1) + val;
  } else {
    result.value += val;
  }
}

// =キークリック
function equal_click(){
  if(is_ope_last())  result.value = result.value.slice(0, -1);

  var temp = new Function("return " + result.value.replaceAll("×", "*").replaceAll("÷", "/"))();
  if(temp == Infinity || Number.isNaN(temp)){
    result.value = "Error";
  }else{
    result.value = temp;
    is_calc = true;
  }
}

// 入力されている値が演算子かどうか
function is_ope_last(){
  return &#91;"+","-","×","÷"].includes(result.value.toString().slice(-1));
}
</code></pre>



<h3 class="wp-block-heading"><span id="toc8">解説</span></h3>



<p>先述したコードに対して細かく解説していきます！</p>



<h4 class="wp-block-heading"><span id="toc9">・グローバル変数の定義</span></h4>



<p>2つの変数を定義、初期化しています。<br>result変数はhtmlの<span class="marker-under">id=&#8221;ressult&#8221;</span>と紐づけします。</p>



<pre class="wp-block-code javascript"><code>// 表示させるデータ
var data = "";
// =で計算したかどうか
var is_calc = false;</code></pre>



<h4 class="wp-block-heading"><span id="toc10">・HTML読み込み後</span></h4>



<p>HTML読み込み後、<span class="marker-under">id&#8221;result&#8221;と変数のresultを紐づけ</span>しています。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
  result = document.getElementById('result');
};</code></pre>



<h4 class="wp-block-heading"><span id="toc11">・Cボタンクリック</span></h4>



<p>Cボタンクリック時のイベントを記述しています。<br>ここでは変数の初期化を行っています。</p>



<pre class="wp-block-code javascript"><code>function c_click(){
  result.value = "0";
  is_calc = false;
}</code></pre>



<h4 class="wp-block-heading"><span id="toc12">・数字ボタンクリック</span></h4>



<p>数字ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function num_click(val){
  if(is_calc)  result.value = "0";
  is_calc = false;  

  if(result.value =="0" &amp;&amp; val == "0"){
    result.value = "0";
  }else if(result.value == "0" &amp;&amp; val == "."){
    result.value = "0.";
  }else if(result.value == "0"){
    result.value = val;
  }else{
    result.value += val;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2、3行目<br>1度&#8221;＝&#8221;で計算済みの場合、数字ボタンを押したら<span class="marker-under">resultを初期化</span>します。<br><span class="bold">is_calcはfalse</span>にします。</li>



<li>5～13行目<br>入力した数字によって<span class="marker-under">resultの処理</span>を行います。<br>・1つ目の条件は初期化後、&#8221;0&#8243;が入力された場合、resultに&#8221;0&#8243;を設定<br>・2つ目の条件は初期化後、&#8221;.&#8221;が入力された場合、resultに&#8221;0.&#8221;を設定<br>・3つ目の条件は初期化後、上記以外の数字が入力された場合、resultに入力値を設定<br>・それ以外は直接resultに入力値を追加</li>
</ul>



<h4 class="wp-block-heading"><span id="toc13">・演算子ボタンクリック</span></h4>



<p>演算子ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function ope_click(val){
  if(is_calc)  is_calc = false;
  
  if(is_ope_last()){
    result.value = result.value.slice(0, -1) + val;
  } else {
    result.value += val;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2行目<br><span class="marker-under">is_calcがtrueの場合があるのでfalse</span>にします</li>



<li>4～8行目<br>条件によって計算式の処理を変えています。<br>1つ目の条件では、<span class="marker-under">直前のボタンが演算子の場合、演算子を切り替え</span>ます。<br>それ以外では、<span class="marker-under">計算式に入力した演算子を付け加え</span>ます。</li>
</ul>



<pre class="wp-block-code javascript"><code>// 1つ目の条件：例
// 直前の計算式
9×6+
// 押したボタン
-
// 演算子切り替え後
9×6-</code></pre>



<h4 class="wp-block-heading"><span id="toc14">・＝ボタンクリック</span></h4>



<p>＝ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function equal_click(){
  if(is_ope_last())  result.value = result.value.slice(0, -1);

  var temp = new Function("return " + result.value.replaceAll("×", "*").replaceAll("÷", "/"))();

  if(temp == Infinity || Number.isNaN(temp)){
    result.value = "Error";
  }else{
    result.value = temp;
    is_calc = true;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2行目<br>計算式の最後が演算子の場合、<span class="marker-under">演算子を取り除き</span>ます。</li>



<li>4行目<br><span class="marker-under">変数tempに計算式の計算結果を設定</span>します。</li>



<li>7～9行目<br>計算結果がInfinity（無限大）かNaN（数字出ない）場合、<span class="marker-under">resultにErrorを設定</span>します。</li>



<li>8～11行目<br><span class="marker-under">tempの値をresultに設定し、計算済み（is_calc）フラグをtrue</span>にします。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc15">・is_ope_last() 関数</span></h4>



<p><span class="bold-red">計算式の最後が演算子か判定する</span>関数です。<br>「result.value.toString().slice(-1)」は計算式の最後の文字を取得し、<br>「[&#8220;+&#8221;,&#8221;-&#8220;,&#8221;×&#8221;,&#8221;÷&#8221;].includes(&#8230;」で<span class="marker-under">4つの演算子と一致するかどうかbool型で返して</span>います。</p>



<pre class="wp-block-code javascript"><code>function is_ope_last(){
  return &#91;"+","-","×","÷"].includes(result.value.toString().slice(-1));
}
</code></pre>



<h2 class="wp-block-heading"><span id="toc16">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calc1/">こちらがデモページ</a>になります。<br>電卓が表示され、ボタンを押すと実際に計算ができるのでぜひ試してみてください♪</p>



<h2 class="wp-block-heading"><span id="toc17">最後に</span></h2>



<p>いかがでしたでしょうか。<br>次回はvue.jsに書き換えしてみます！</p>



<p>良ければ別のサンプルページも見てみてくださいね♪</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4571/" title="【初心者】簡単！vue.jsで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JS[JavaScript]で四則演算ができる簡易的な計算機を作成しました。プログラミング初心者の方への勉強向け記事になりますのでデモページを見ながらコード、関数を見ながら作成してみてはいかがでしょうか。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.10</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4717/" title="【サンプル】JavaScriptのコードまとめリンク集" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【サンプル】JavaScriptのコードまとめリンク集</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では当ブログで上げているJavaScript記事のまとめリンク集になります。目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.09.01</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/4496/">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/4496/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/2835/</link>
					<comments>https://nyanblog2222.com/programming/javascript/2835/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 09 Jan 2021 02:57:23 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[カレンダー]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[演習]]></category>
		<category><![CDATA[祝日]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2835</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは！前回はJavaScriptでカレンダーを作成しました。今回は、前回作成したカレンダーに祝日対応を組み込んでいきたいと思います！ 前回の記事は下のリンクからどうぞ♪ 目次 はじめにフロー（箇条書き）CSVファイ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2835/">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは！<br>前回はJavaScriptでカレンダーを作成しました。<br>今回は、前回作成したカレンダーに祝日対応を組み込んでいきたいと思います！</p>



<p>前回の記事は下のリンクからどうぞ♪</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">フロー（箇条書き）</a><ol><li><a href="#toc3" tabindex="0">CSVファイル読み込み</a></li><li><a href="#toc4" tabindex="0">当月の日付判定</a></li></ol></li><li><a href="#toc5" tabindex="0">HTML</a></li><li><a href="#toc6" tabindex="0">CSS</a></li><li><a href="#toc7" tabindex="0">JavaScript</a><ol><li><a href="#toc8" tabindex="0">コード</a></li><li><a href="#toc9" tabindex="0">解説</a><ol><li><a href="#toc10" tabindex="0">・祝日データ（CSVファイル）取得</a></li><li><a href="#toc11" tabindex="0">・当月の日付を設定　コード：70～77行目</a></li><li><a href="#toc12" tabindex="0">・日付チェック　checkDate関数</a></li><li><a href="#toc13" tabindex="0">・当日判定　isToday関数</a></li><li><a href="#toc14" tabindex="0">・祝日判定　isHoliday関数</a></li></ol></li></ol></li><li><a href="#toc15" tabindex="0">デモ</a></li><li><a href="#toc16" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>祝日の対応ですが、今回はCSVファイルを読み込んで日付判定を行います。<br>CSVファイルは<a href="https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html">内閣府のWebサイト</a>から取得できます。<br>※ 文字コードをShift-JISからUTF-8に変更しました。</p>



<p>直接ダウンロードされる場合は<a href="https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv">ここをクリック</a>してください。</p>



<p>データは日付、祝日名の2項目で作成されています。</p>



<h2 class="wp-block-heading"><span id="toc2">フロー（箇条書き）</span></h2>



<p>箇条書きで処理フローを記述していきます。<br>CSVファイルの読み込みと当月の日付判定のそれぞれで変更を加えます。</p>



<h3 class="wp-block-heading"><span id="toc3">CSVファイル読み込み</span></h3>



<ol class="wp-block-list">
<li>CSVファイルを読み込み</li>



<li>読み込み完了後、カレンダー表示</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">当月の日付判定</span></h3>



<ol class="wp-block-list">
<li>その日付の情報を取得（本日か、祝日か等）</li>



<li>条件に応じてカレンダー（HTML）を設定</li>
</ol>



<h2 class="wp-block-heading"><span id="toc5">HTML</span></h2>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
    &lt;!-- xxxx年xx月を表示 --&gt;
    &lt;h1 id="header"&gt;&lt;/h1&gt;

    &lt;!-- ボタンクリックで月移動 --&gt;
    &lt;div id="next-prev-button"&gt;
        &lt;button id="prev" onclick="prev()"&gt;‹&lt;/button&gt;
        &lt;button id="next" onclick="next()"&gt;›&lt;/button&gt;
    &lt;/div&gt;

    &lt;!-- カレンダー --&gt;
    &lt;div id="calendar"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>



<p>こちらの記事のHTMLと同じなので、解説は省略します♪</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading"><span id="toc6">CSS</span></h2>



<p><a href="https://nyanblog2222.com/programming/javascript/2749/" target="_blank">前回の記事</a>とほとんど変わりなしですが、<br><span class="marker-under-blue">祝日のクラス（=holiday）に日曜日と同様のcolorスタイルの設定</span>を追加しました。</p>



<pre class="wp-block-code"><code>td:first-child,
td.holiday{
    color: red;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc7">JavaScript</span></h2>



<h3 class="wp-block-heading"><span id="toc8">コード</span></h3>



<p>全体のコードです。<br>次項で解説しますが、前回の投稿で解説した内容は割愛いたします。</p>



<pre class="wp-block-code"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];
const today = new Date();
// 月末だとずれる可能性があるため、1日固定で取得
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);

// 祝日取得
var request;
window.onload = function () {
    request = new XMLHttpRequest();
    request.open('get', 'syukujitsu.csv', true);
    request.send(null);
    request.onload = function () {
        // 初期表示
        showProcess(today, calendar);
    };
};

// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}

// カレンダー表示
function showProcess(date) {
    var year = date.getFullYear();
    var month = date.getMonth(); // 0始まり
    document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";

    var calendar = createProcess(year, month);
    document.querySelector('#calendar').innerHTML = calendar;
}

// カレンダー作成
function createProcess(year, month) {
    // 曜日
    var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
    for (var i = 0; i &lt; week.length; i++) {
        calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
    }
    calendar += "&lt;/tr&gt;";

    var count = 0;
    var startDayOfWeek = new Date(year, month, 1).getDay();
    var endDate = new Date(year, month + 1, 0).getDate();
    var lastMonthEndDate = new Date(year, month, 0).getDate();
    var row = Math.ceil((startDayOfWeek + endDate) / week.length);

    // 1行ずつ設定
    for (var i = 0; i &lt; row; i++) {
        calendar += "&lt;tr&gt;";
        // 1colum単位で設定
        for (var j = 0; j &lt; week.length; j++) {
            if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
                // 1行目で1日まで先月の日付を設定
                calendar += "&lt;td class='disabled'&gt;" + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
            } else if (count &gt;= endDate) {
                // 最終行で最終日以降、翌月の日付を設定
                count++;
                calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
            } else {
                // 当月の日付を曜日に照らし合わせて設定
                count++;
                var dateInfo = checkDate(year, month, count);
                if(dateInfo.isToday){
                    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
                } else if(dateInfo.isHoliday) {
                    calendar += "&lt;td class='holiday' title='" + dateInfo.holidayName + "'&gt;" + count + "&lt;/td&gt;";
                } else {
                    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
                }
            }
        }
        calendar += "&lt;/tr&gt;";
    }
    return calendar;
}

// 日付チェック
function checkDate(year, month, day) {
    if(isToday(year, month, day)){
        return {
            isToday: true,
            isHoliday: false,
            holidayName: ""
        };
    }

    var checkHoliday = isHoliday(year, month, day);
    return {
        isToday: false,
        isHoliday: checkHoliday&#91;0],
        holidayName: checkHoliday&#91;1],
    };
}

// 当日かどうか
function isToday(year, month, day) {
    return (year == today.getFullYear()
        &amp;&amp; month == (today.getMonth())
        &amp;&amp; day == today.getDate());
    }

// 祝日かどうか
function isHoliday(year, month, day) {
    var checkDate = year + '/' + (month + 1) + '/' + day;
    var dateList = request.responseText.split('\n');
    // 1行目はヘッダーのため、初期値1で開始
    for (var i = 1; i &lt; dateList.length; i++) {
        if (dateList&#91;i].split(',')&#91;0] === checkDate) {
            return &#91;true, dateList&#91;i].split(',')&#91;1]];
        }
    }
    return &#91;false, ""];
}</code></pre>



<h3 class="wp-block-heading"><span id="toc9">解説</span></h3>



<h4 class="wp-block-heading"><span id="toc10">・祝日データ（CSVファイル）取得</span></h4>



<pre class="wp-block-code"><code><em>// 祝日取得</em>
<strong>var</strong> request;
window.onload = <strong>function</strong> () {
&nbsp; &nbsp; request = <strong>new</strong> XMLHttpRequest();
&nbsp; &nbsp; request.open('get', 'syukujitsu.csv', true);
&nbsp; &nbsp; request.send(null);
&nbsp; &nbsp; request.onload = <strong>function</strong> () {
&nbsp; &nbsp; &nbsp; <em>// 初期表示</em>
&nbsp; &nbsp; &nbsp; showProcess(today, calendar);
&nbsp; &nbsp; };
};</code></pre>



<p><span class="marker-under-blue">XMLHttpRequestオブジェクトを使用して、変数 request にCSVデータを格納</span>しています。<br>1. request.open()関数でデータ取込のリクエストを行います。<br>2. request.send()関数でリスエストをサーバに送信します。<br>3. 7～10行目はロードが成功して完了後に呼ばれます。</p>



<p>つまり、CSVファイルの読み込みが完了した後にカレンダー表示の関数（showProcess）を呼び出しています。</p>



<h4 class="wp-block-heading"><span id="toc11">・当月の日付を設定　コード：70～77行目</span></h4>



<pre class="wp-block-code"><code><strong>var</strong> dateInfo = checkDate(year, month, count);
<strong>if</strong>(dateInfo.isToday){
    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
} <strong>else</strong> <strong>if</strong>(dateInfo.isHoliday) {
    calendar += "&lt;td class='holiday' title='" + dateInfo.holidayName + "'&gt;" + count + "&lt;/td&gt;";
} <strong>else</strong> {
    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
}</code></pre>



<p>1行目：変数 dateInfoに日付チェックの戻り値を設定します。</p>



<p>2～8行目：dateInfoを使って条件に応じて日付を設定していきます。</p>



<p>・dateInfo.isTodayがtrueの場合、クラスtodayを付与して設定。<br>・<span class="marker-under-blue">dateInfo.isHolidayがtrueの場合、クラスholidayを付与、titleに祝日名を設定</span>。<br>・上記以外の場合、日付をそのまま設定。</p>



<p><span class="marker-under-blue">titleに祝日名を設定しているのは、祝日名をツールチップとして表示させるためです。</span><br>ツールチップ：カーソルやマウスポインタを合わせると小さな領域が注釈が表示されるもの。</p>



<h4 class="wp-block-heading"><span id="toc12">・日付チェック　checkDate関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：日付の情報<br>・当日かどうか（Bool）<br>・祝日かどうか（Bool）<br>・祝日名（文字列）</p>



<pre class="wp-block-code"><code><em>// 日付チェック</em>
<strong>function</strong> <strong>checkDate</strong>(year, month, day) {
    <strong>if</strong>(isToday(year, month, day)){
        <strong>return</strong> {
            isToday: true,
            isHoliday: false,
            holidayName: ""
        };
    }

    <strong>var</strong> checkHoliday = isHoliday(year, month, day);
    <strong>return</strong> {
        isToday: false,
        isHoliday: checkHoliday&#91;0],
        holidayName: checkHoliday&#91;1],
    };
}</code></pre>



<p>日付チェックの関数です。<br>条件に応じて戻り値のオブジェクトを作成しています。</p>



<h4 class="wp-block-heading"><span id="toc13">・当日判定　isToday関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：当日かどうか（Bool）</p>



<pre class="wp-block-code"><code><em>// 当日かどうか</em>
<strong>function</strong> <strong>isToday</strong>(year, month, day) {
    <strong>return</strong> (year == today.getFullYear()
    &amp;&amp; month == (today.getMonth())
    &amp;&amp; day == today.getDate());
}</code></pre>



<p>today（Date型）を使って、当日かどうかを判定します。</p>



<h4 class="wp-block-heading"><span id="toc14">・祝日判定　isHoliday関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：配列 [祝日かどうか（Bool）, 祝日名]</p>



<pre class="wp-block-code"><code><em>// 祝日かどうか</em>
<strong>function</strong> <strong>isHoliday</strong>(year, month, day) {
    <strong>var</strong> checkDate = year + '/' + (month + 1) + '/' + day;
    <strong>var</strong> dateList = request.responseText.split('\n');
    <em>// 1行目はヘッダーのため、初期値1で開始</em>
    <strong>for</strong> (<strong>var</strong> i = 1; i &lt; dateList.length; i++) {
        <strong>if</strong> (dateList&#91;i].split(',')&#91;0] === checkDate) {
            <strong>return</strong> &#91;true, dateList&#91;i].split(',')&#91;1]];
        }
    }
    <strong>return</strong> &#91;false, ""];
}</code></pre>



<p>3行目：CSVデータの日付はYYYY/MM/DD形式のため、<br>引数で渡された年月日をYYYY/MM/DD形式で変数checkDateに設定。</p>



<p>4行目：変数dataListには、CSVデータを行毎に配列に格納。</p>



<p>6～10行目：CSVの行数分for文を回します。<br>ファイルの1行目はヘッダー行のため、初期値=1で設定。</p>



<p>7～9行目：<br>祝日：dateList[i].split(‘,’)[0]<br>祝日名：dateList[i].split(‘,’)[1]</p>



<p><span class="marker-under-blue">祝日とcheckDateが一致する場合、戻り値を配列 [true, 祝日名]で設定して処理を完了。<br>どのデータとも一致しない場合は戻り値を配列 [false, 空文字]でセットして処理を完了。</span></p>



<h2 class="wp-block-heading"><span id="toc15">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calender2/">こちらがデモページ</a>になります。<br>祝日の日付が赤くなっており、該当の日付にカーソルを合わせると祝日の名前が表示されます。</p>



<p>ただ、<span class="marker-under-red">このCSVファイルはその年分までの日付しか入っていないため、<br>2024年以降の祝日には対応されていません。ご注意ください…。</span></p>



<h2 class="wp-block-heading"><span id="toc16">最後に</span></h2>



<p>いかがでしたでしょうか。<br>カレンダーを確認するときに祝日は分かっている方が見やすいですね♪</p>



<p>実装も簡単にできたのでお勧めです。</p>



<p>良ければ他の投稿もご覧ください！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2835/">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/2835/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】JavaScriptでカレンダー作成【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/2749/</link>
					<comments>https://nyanblog2222.com/programming/javascript/2749/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 07 Jan 2021 04:29:22 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[カレンダー]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[演習]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2749</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは！今回はJavaScriptでカレンダーを作成してみました。カレンダー作成にはライブラリも存在しますが、勉学のために作成する方が多いかと思いますので今回は使用していません。自作すると、カスタマイズが容易であるこ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2749/">【初心者向け】JavaScriptでカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは！<br>今回はJavaScriptでカレンダーを作成してみました。<br>カレンダー作成にはライブラリも存在しますが、勉学のために作成する方が多いかと思いますので今回は使用していません。自作すると、カスタマイズが容易であることもメリットですね！</p>



<p>本記事の続きで<span class="marker-under-red">カレンダーに祝日も反映</span>させました！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/javascript/2835/" title="【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScriptで祝日対応のカレンダーを作成しました。内容：内閣府のWebサイトから取得したCSVファイルを読み込んで日付判定を行い、祝日を赤字表示させツールチップに祝日名を表示する。var request = new XMLHttpRequest();...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.09</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">フロー（箇条書き）</a></li><li><a href="#toc3" tabindex="0">HTML</a></li><li><a href="#toc4" tabindex="0">CSS</a></li><li><a href="#toc5" tabindex="0">JavaScript</a><ol><li><a href="#toc6" tabindex="0">コード</a></li><li><a href="#toc7" tabindex="0">解説</a><ol><li><a href="#toc8" tabindex="0">・グローバル変数の定義</a></li><li><a href="#toc9" tabindex="0">・初期表示</a></li><li><a href="#toc10" tabindex="0">・prev()、next()関数</a></li><li><a href="#toc11" tabindex="0">・カレンダー表示　showProcess関数</a></li><li><a href="#toc12" tabindex="0">・カレンダー作成　createProcess関数</a></li></ol></li></ol></li><li><a href="#toc13" tabindex="0">デモ</a></li><li><a href="#toc14" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずは<span class="marker-under-red">カレンダーに持たせる機能を決定</span>します。<br>今回は以下の機能を持たせることにしました。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ul class="wp-block-list">
<li>ヘッダーに年月を表示</li>



<li>ボタンで月の移動ができる</li>



<li>余白に先月、翌月の日付を灰色で表示</li>



<li>本日の日付に色をつける</li>
</ul>
</div>



<p>実際に作成したものですが、イメージ図はこちらです。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="600" height="376" src="https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01.png" alt="カレンダー作成イメージ図" class="wp-image-2760" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01.png 600w, https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01-300x188.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<p>また、次以降の投稿で祝日、スケジュール入力の機能を追加したいと考えています。</p>



<h2 class="wp-block-heading"><span id="toc2">フロー（箇条書き）</span></h2>



<p>次に箇条書きで処理フローを記述します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ol class="wp-block-list">
<li>日付オブジェクトを取得</li>



<li>年月を表示</li>



<li>カレンダーを作成
<ol class="wp-block-list">
<li>曜日の行を作成</li>



<li>1日が何曜日からはじまるか取得</li>



<li>当月が何行になるか算出</li>



<li>月曜日から2. で取得した行数分日付を設定</li>
</ol>
</li>



<li>カレンダーを表示</li>
</ol>
</div>



<p>こちらで実際にコーディングを進めていきます。</p>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>まずはHTMLを作成していきます。<br>作成しているのは、以下の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ol class="wp-block-list">
<li>年月表示のヘッダー</li>



<li>月移動のボタン</li>



<li>カレンダー</li>
</ol>
</div>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
    &lt;!-- xxxx年xx月を表示 --&gt;
    &lt;h1 id="header"&gt;&lt;/h1&gt;

    &lt;!-- ボタンクリックで月移動 --&gt;
    &lt;div id="next-prev-button"&gt;
        &lt;button id="prev" onclick="prev()"&gt;‹&lt;/button&gt;
        &lt;button id="next" onclick="next()"&gt;›&lt;/button&gt;
    &lt;/div&gt;

    &lt;!-- カレンダー --&gt;
    &lt;div id="calendar"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc4">CSS</span></h2>



<p>次にCSSでスタイルを決定します。<br>この辺りは好きなようにカスタマイズをしていただいて良いと思います！</p>



<p>ただ、JavaScriptで以下にクラスを設定しているので、ご注意ください。</p>



<p><span class="marker-under-red"><span class="marker-under-red">先月、翌月の日付：disabled</span><br>当日：today</span></p>



<pre class="wp-block-code css"><code>@charset "utf-8";

/*全体*/
.wrapper{
    max-width: 600px;
    margin: 0 auto;
    color: #666;
}
#header {
    text-align: center;
    font-size: 24px;
    width: 100%;
    margin: 1rem 0 0;
}

/*カレンダー*/
#calendar {
    text-align: center;
    width: 100%;
}
table {
    outline: 2px solid #ddd;
    border-collapse: collapse;
    width: 100%;
}
th {
    color: #000;
}
th, td {
    outline: 1px solid #ddd;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
}
/*日曜日*/
td:first-child {
    color: red;
}
/*土曜日*/
td:last-child {
    color: blue;
}
/*前後月の日付*/
td.disabled {
    color: #ccc;
}
/*本日*/
td.today {
    background-color: #D65E72;
    color: #fff;
}

/*ボタン*/
#next-prev-button {
    position: relative;
}
#next-prev-button button{
    cursor: pointer;
    background: #B78D4A;
    color: #fff;
    border: 1px solid #B78D4A;
    border-radius: 4px;
    font-size: 1rem;
    padding: 0.5rem 2rem;
    margin: 1rem 0;
}
#next-prev-button button:hover{
    background-color: #D4BB92;
    border-color: #D4BB92;
}
#prev {
    float: left;
}
#next {
    float: right;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc5">JavaScript</span></h2>



<p>JavaScriptで実際にカレンダーを作成、表示していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">コード</span></h3>



<p>次項で詳しく解説していますが、コメントでも多少記述しています。<br>コピペも可能です！</p>



<pre class="wp-block-code javascript"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];
const today = new Date();
// 月末だとずれる可能性があるため、1日固定で取得
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);

// 初期表示
window.onload = function () {
    showProcess(today, calendar);
};
// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}

// カレンダー表示
function showProcess(date) {
    var year = date.getFullYear();
    var month = date.getMonth();
    document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";

    var calendar = createProcess(year, month);
    document.querySelector('#calendar').innerHTML = calendar;
}

// カレンダー作成
function createProcess(year, month) {
    // 曜日
    var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
    for (var i = 0; i &lt; week.length; i++) {
        calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
    }
    calendar += "&lt;/tr&gt;";

    var count = 0;
    var startDayOfWeek = new Date(year, month, 1).getDay();
    var endDate = new Date(year, month + 1, 0).getDate();
    var lastMonthEndDate = new Date(year, month, 0).getDate();
    var row = Math.ceil((startDayOfWeek + endDate) / week.length);

    // 1行ずつ設定
    for (var i = 0; i &lt; row; i++) {
        calendar += "&lt;tr&gt;";
        // 1colum単位で設定
        for (var j = 0; j &lt; week.length; j++) {
            if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
                // 1行目で1日まで先月の日付を設定
                calendar += "&lt;td class='disabled'&gt;" + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
            } else if (count &gt;= endDate) {
                // 最終行で最終日以降、翌月の日付を設定
                count++;
                calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
            } else {
                // 当月の日付を曜日に照らし合わせて設定
                count++;
                if(year == today.getFullYear()
                  &amp;&amp; month == (today.getMonth())
                  &amp;&amp; count == today.getDate()){
                    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
                } else {
                    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
                }
            }
        }
        calendar += "&lt;/tr&gt;";
    }
    return calendar;
}</code></pre>



<h3 class="wp-block-heading"><span id="toc7">解説</span></h3>



<p>先述したコードに対して細かく解説していきます！<br>結構長くなってしまったので、不要な方は飛ばしてください。</p>



<h4 class="wp-block-heading"><span id="toc8">・グローバル変数の定義</span></h4>



<pre class="wp-block-code javascript"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];</code></pre>



<p>曜日を格納した配列を定義しています。<br><span class="marker-under-blue">変更予定がないので、定数（const）で作成</span>しています。</p>



<pre class="wp-block-code javascript"><code>const today = new Date();
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);</code></pre>



<p>・本日の日付オブジェクトを定数で宣言<br>・表示する日付オブジェクトを宣言</p>



<p>表示する日付オブジェクトは初期化では”today”の年月＋1日固定で作成します。</p>



<p><span class="marker-under">Q：なぜ”today”をそのまま使用しないか</span><br>A：前の月、次の月表示で”getMonth()”に+-1を行っていますが、末日だと先々月、もしくは翌々日になることがあります。</p>



<h4 class="wp-block-heading"><span id="toc9">・初期表示</span></h4>



<pre class="wp-block-code javascript"><code>window.onload = function () {
    showProcess(today, calendar);
};</code></pre>



<p>当日の日付オブジェクトを使用して、showProcess関数を呼び出して初期表示を行います。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {・・・};</code></pre>



<p>↑は<span class="marker-under-blue">HTMLが読み込まれた直後に呼び出される関数です。</span></p>



<h4 class="wp-block-heading"><span id="toc10">・prev()、next()関数</span></h4>



<pre class="wp-block-code javascript"><code>// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}</code></pre>



<p>「＜」クリックでprev()、「＞」クリックでnext()の関数がそれぞれ呼び出されます。</p>



<p>prev()関数の場合はshowDateオブジェクトに1月分減算後、<br>next()関数の場合はshowDateオブジェクトに1月分加算後にshowProcess関数を呼び出してカレンダーを表示します。</p>



<h4 class="wp-block-heading"><span id="toc11">・カレンダー表示　showProcess関数</span></h4>



<p>引数：date（表示するDateオブジェクト）</p>



<pre class="wp-block-code javascript"><code>var year = date.getFullYear();
var month = date.getMonth();
document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";</code></pre>



<p>ヘッダー（id=&#8221;#header&#8221;）に年月を表示させます。<br>getMonth()は0始まりのため、1月の場合、0が取得されます。<br>そのため、3行目では (month + 1) で月を設定します。</p>



<pre class="wp-block-code"><code>var calendar = createProcess(year, month);
document.querySelector('#calendar').innerHTML = calendar;</code></pre>



<p>createProcess関数でカレンダーを作成し、id=&#8221;#calendar&#8221;にカレンダーを設定します。</p>



<h4 class="wp-block-heading"><span id="toc12">・カレンダー作成　createProcess関数</span></h4>



<p>引数：year（年）、month（月）<br>戻り値：作成したカレンダー</p>



<pre class="wp-block-code"><code>// 曜日
var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
for (var i = 0; i &lt; week.length; i++) {
    calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
}
calendar += "&lt;/tr&gt;";</code></pre>



<p>定数”week”を使用してカレンダー上部に表示させる、曜日を設定します。</p>



<pre class="wp-block-code"><code>var count = 0;
var startDayOfWeek = new Date(year, month, 1).getDay();
var endDate = new Date(year, month + 1, 0).getDate();
var lastMonthEndDate = new Date(year, month, 0).getDate();
var row = Math.ceil((startDayOfWeek + endDate) / week.length);</code></pre>



<p>日付を設定するのに必要な変数を定義します。<br>それぞれの変数は以下の内容を定義しています。</p>



<p>count：日付のカウント<br>startDayOfWeek：表示する月の1日の曜日<br>endDate：表示する月の末日<br>lastMonthEndDate：表示する先月の末日<br>row：カレンダー（日付部分）の行数</p>



<pre class="wp-block-code"><code>// 1行ずつ設定
for (var i = 0; i &lt; row; i++) {
    calendar += "&lt;tr&gt;";
    // 1colum単位で設定
    for (var j = 0; j &lt; week.length; j++) {
        if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
            // 1行目で1日まで先月の日付を設定
            calendar += "&lt;td class='disabled'&gt;"
                     + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
        } else if (count &gt;= endDate) {
            // 最終行で最終日以降、翌月の日付を設定
            count++;
            calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
        } else {
            // 当月の日付を曜日に照らし合わせて設定
            count++;
            if(year == today.getFullYear()
              &amp;&amp; month == (today.getMonth())
              &amp;&amp; count == today.getDate()){
                calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
            } else {
                calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
            }
        }
    }
    calendar += "&lt;/tr&gt;";
}</code></pre>



<p>始めのfor文は行単位、2つ目のfor文はカラム（日付）単位で回します。</p>



<p>3行目、26行目ではtrタグで括っています。</p>



<p>6行目の条件は「1行目、かつ、1日の曜日未満」の場合に8、9行目の処理を行います。<br><span class="marker-under-blue">その場合にクラス「disabled」を付与して日付を設定します。</span><br>計算式は例で実際に当てはめてみましょう。</p>



<p>例：2021/01<br>lastMonthEndDate = 31<br>startDayOfWeek = 5 （金曜日）<br>日曜日：31 &#8211; 5 + 0 + 1 = 27<br>月曜日：31 &#8211; 5 + 1 + 1 = 28</p>



<p>10行目の条件は当月の最終日以降、翌月の日付を設定します。<br><span class="marker-under-blue">上記同様、<span class="marker-under-blue">クラス「disabled」を付与して日付を設定します。</span></span><span class="marker-under-blue"></span></p>



<p>それ以外の14行目～24行目の処理は当月の日付1日から末日まで入ります。<br>また、17行目～19行目の条件は本日の日付かどうかチェックしており、<span class="marker-under-blue">本日の場合はクラス「today」を付与しています。</span></p>



<h2 class="wp-block-heading"><span id="toc13">デモ</span></h2>



<p><a class="link" href="https://nyanblog2222.com/demo/calender1/">こちらがデモページ</a>になります。<br>初期表示は当月で表示され、本日が赤く表示されていると思います。</p>



<p>また、＜＞のボタンをクリックすることで月の移動ができますので、お試しください♪</p>



<h2 class="wp-block-heading"><span id="toc14">最後に</span></h2>



<p>いかがでしたでしょうか。<br>ライブラリを使わなくても意外と簡単に実装ができました！</p>



<p>この後、<span class="marker-under-red">カレンダーに祝日対応してみました</span>ので、<br>良ければこちらの投稿もご覧ください！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/javascript/2835/" title="【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScriptで祝日対応のカレンダーを作成しました。内容：内閣府のWebサイトから取得したCSVファイルを読み込んで日付判定を行い、祝日を赤字表示させツールチップに祝日名を表示する。var request = new XMLHttpRequest();...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.09</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4717/" title="【サンプル】JavaScriptのコードまとめリンク集" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【サンプル】JavaScriptのコードまとめリンク集</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では当ブログで上げているJavaScript記事のまとめリンク集になります。目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.09.01</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2749/">【初心者向け】JavaScriptでカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/2749/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
