<?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/%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E5%A4%89%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/グローバル変数/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Mon, 16 Aug 2021 07:01:27 +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>【JavaScript】変数、型の違い【var let const】</title>
		<link>https://nyanblog2222.com/programming/javascript/1378/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1378/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 11 Aug 2021 21:21:06 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[const]]></category>
		<category><![CDATA[let]]></category>
		<category><![CDATA[var]]></category>
		<category><![CDATA[グローバル変数]]></category>
		<category><![CDATA[ローカル変数]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1378</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/83.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/83.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />こんにちは。 変数の宣言でvar、let、constそれぞれどの状況で使用していますか？ 私は特にvarとletについて違いが良く分からなかったので、この機会に調べてまとめてみました。 良かったら参考にしてください！ 目 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1378/">【JavaScript】変数、型の違い【var let const】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/83.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/83.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/83-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。</p>



<p>変数の宣言でvar、let、constそれぞれどの状況で使用していますか？</p>



<p>私は特にvarとletについて違いが良く分からなかったので、この機会に調べてまとめてみました。</p>



<p>良かったら参考にしてください！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ローカルスコープとグローバルスコープ</a></li><li><a href="#toc2" tabindex="0">変数宣言キーワード</a><ol><li><a href="#toc3" tabindex="0">varについて</a></li><li><a href="#toc4" tabindex="0">letについて</a></li><li><a href="#toc5" tabindex="0">constについて</a></li></ol></li><li><a href="#toc6" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ローカルスコープとグローバルスコープ</span></h2>



<p>まずは、<strong><span style="color: #b78d4a;" class="has-inline-color">ローカルスコープ</span></strong>と<strong><span style="color: #b78d4a;" class="has-inline-color">グローバルスコープ</span></strong>についてです。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">スコープ</span></strong>とは、変数が参照したり変更できたりと<span class="marker-yellow">使用できる有効範囲</span>を指します。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">ローカルスコープ</span></strong>はある<span class="marker-yellow">特定の範囲内でのみ有効となるスコープ</span>です。<br>特定の範囲とは、これから出てくる関数やブロックなど括られた範囲を指します。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">グローバルスコープ</span></strong>は名の通り<span class="marker-yellow">どこからでも使用できる有効範囲を持つスコープ</span>です。</p>



<p>どこでも使用することが可能なので、とても便利であるように感じますが<br>意図しない箇所で上書きしてしまったり、利用してしまったりすることで<br>不具合の原因となってしまいます。</p>



<p>そのため、<span style="color: #000000;"><span class="has-inline-color"><span class="marker-yellow">できる限り変数のスコープは小さくする</span></span></span>ことが<br>読みやすいコードにつながると言われています。</p>



<p>本記事では特にvarとletに関して<span style="color: #000000;"><span class="has-inline-color"><span class="marker-yellow">スコープを意識して使い分けていくこと</span></span></span>をおすすめしています！</p>



<h2 class="wp-block-heading"><span id="toc2">変数宣言キーワード</span></h2>



<h3 class="wp-block-heading"><span id="toc3">varについて</span></h3>



<dl class="wp-block-sbd-definition-list sbd-inner-block-init sbd-list-border">
<dt class="wp-block-sbd-definition-list-dt is-style-sbd-dt-pink">特徴</dt>



<dd class="wp-block-sbd-definition-list-dd">・ES2015以前より使用できる変数宣言キーワード<br>・ スコープは<strong><span style="color: #b78d4a;" class="has-inline-color">関数内部</span></strong><br>・ 関数内のどこで宣言しても、<strong><span style="color: #b78d4a;" class="has-inline-color">先頭で定義した扱い</span></strong>となる<br>・ ifやfor文内で宣言した変数でも、同じ関数内であれば使用できる</dd>
</dl>



<pre class="wp-block-code javascript"><code>// 例
function Sample() {
    for(let i=1;i&lt;=3;i++){
        console.log(i)
    }
    
    // ブロック外なので、アクセスできずエラー
    console.log(i)
}</code></pre>



<h3 class="wp-block-heading"><span id="toc4">letについて</span></h3>



<p>varとの主な違いは<span class="marker-yellow">スコープの範囲</span>です。</p>



<p>varではif文やfor文のようにブロック内で宣言した変数でも、<br>同じ関数内であれば使用することができますが、<br><span class="marker-yellow">letではブロック内で宣言した変数はブロックの範囲を超えると使用することができません</span>。</p>



<dl class="wp-block-sbd-definition-list sbd-inner-block-init sbd-list-border">
<dt class="wp-block-sbd-definition-list-dt is-style-sbd-dt-pink">特徴</dt>



<dd class="wp-block-sbd-definition-list-dd">・<span style="color: initial;">ES2016以降より使用可能（IE9等、少し古いバージョンのブラウザだと動かない場合がある）</span><br>・<span style="color: initial;">スコープは</span><strong style="color: initial;"><span style="color: #b78d4a;" class="has-inline-color">関数内部</span></strong><span style="color: initial;">、もしくは</span><strong style="color: initial;"><span style="color: #b78d4a;" class="has-inline-color">ブロック内部</span></strong><br><span style="color: initial;"></span>・<span style="color: initial;">varと比べて、よりスコープを限定することができる</span></dd>
</dl>



<pre class="wp-block-code javascript"><code>// 例
function Sample() {
    var sample1 = 1;
    // var i;

    // 再代入可能
    sample1 = 3;

    for(var i=1;i&lt;=3;i++){
        console.log(i)
    }
    
    // 同じ関数内なので、アクセスできる
    console.log(i)
    
    console.log(gloval_hensu)
}

// 関数外なので参照できず、エラー
console.log(i)</code></pre>



<h3 class="wp-block-heading"><span id="toc5">constについて</span></h3>



<p>constはこの3つの中だと、 一番特徴が分かりやすいです。<br>それは<span class="marker-yellow">再代入（変更）できない</span>ため定数として扱われます。</p>



<dl class="wp-block-sbd-definition-list sbd-inner-block-init sbd-list-border">
<dt class="wp-block-sbd-definition-list-dt is-style-sbd-dt-pink">特徴</dt>



<dd class="wp-block-sbd-definition-list-dd">・<span style="color: initial;">ES2016以降より使用可能（IE9等、少し古いバージョンのブラウザだと動かない場合がある）</span><br>・<span style="color: initial;">スコープは</span><strong style="color: initial;"><span style="color: #b78d4a;" class="has-inline-color">関数内部</span></strong><span style="color: initial;">、もしくは</span><strong style="color: initial;"><span style="color: #b78d4a;" class="has-inline-color">ブロック内部</span></strong><span style="color: initial;">再代入ができない（定数扱いとなる）</span><br>・<span style="color: initial;">宣言のみはできず</span><strong style="color: initial;"><span style="color: #b78d4a;" class="has-inline-color">必ず値を代入する必要</span></strong><span style="color: initial;">がある。</span></dd>
</dl>



<p>定数とは、一度宣言されると値が固定され変更できない値を指します。</p>



<pre class="wp-block-code javascript"><code>// 例
// 宣言時に値を代入していないので、エラー
const sample1;

const sample2 = "test2";
const sample3 = "test3";

// 代入できないので、エラー
sample3 = "sample3";

if(sample2 === "test2"){
    const sample4 = "test4";
}

// sample4はブロック内で宣言されているため、
// ブロックの外で使用し、スコープからはみ出ているのでエラー
console.log(sample4);</code></pre>



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



<p>いかがでしたでしょうか。</p>



<p>ちょっとしたことなのですが、<br>忘れやすかったりするので良かったら時々見に来てください♪</p>



<p>ちなみに、JavaScriptは変数宣言キーワード（var, let, const）を使用しなくても宣言することができます。</p>



<p><span class="marker-under-red">キーワードを使用することで有効範囲が変わってくる</span>ので、<br>予期せぬ動きをさせないためにも、使用した方が良いですね！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1378/">【JavaScript】変数、型の違い【var let const】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1378/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
