トップ 言語 JavaScript 基礎編 文法 変数とスコープ
JavaScriptの変数とスコープについてまとめています。変数の宣言と代入からグローバル変数、ローカル変数など表やサンプルも用いて解説しています。
この記事の目次です。
1. 変数とは
2. JavaScriptの変数
3. JavaScriptの変数の種類
4. グローバル変数とローカル変数のスコープ
5. JavaScriptのグローバル変数とローカル変数のスコープを確認するサンプル
変数とは、プログラム実行時にデータを保存できる名前付きのメモリ領域のことです。
名前付きのメモリ領域といいましたが、説明の仕方によっては、データを保管する箱と表現することがあります。 説明の仕方はいろいろあると思いますが、変数はコンピュータのメモリの一部の領域を割り当てた名前付きの箱あるいは名前付きのメモリ空間です。
変数を使用することで、データを保管したり操作することができます。 プログラミングするうえで欠かせない存在の1つになります。
JavaScriptの変数には、大きくグローバル変数とローカル変数があります。 ここでは、JavaScriptの変数の宣言と代入など基本操作、グローバル変数とローカル変数について見ていきます。
まずは、JavaScriptの変数の宣言と代入、変数初期化について見ていきます。
JavaScriptで変数を利用するには、はじめに変数の宣言を行う必要があります。 変数を宣言するには「var」キーワードを使用して以下のように記述します。
var <変数名>;
変数に値を設定することを代入といいます。代入の例は以下になります。
<変数名> = <値>;
変数の宣言と同時に値を設定することもできます。 宣言と同時に値を設定して、変数に初期値を設定することを変数初期化といいます。 その場合は以下のように記述します。
var <変数名> = <値>;
冒頭でも触れましたが、JavaScriptの変数には、グローバル変数とローカル変数があります。
関数やブロックの外側で宣言された変数で宣言された変数をグローバル変数といいます。 スコープがプログラム全体になり、プログラムのどこからでも参照できます。
var <変数名>;
関数の内部で宣言された変数で宣言された変数をローカル変数といいます。 スコープが宣言された関数やブロック内になり、その範囲でしか参照できない変数になります。
function hoge() { var <変数名>; }
スコープという言葉が既に出てきていますが、プログラム内で変数やメソッドを利用できる範囲を「スコープ」といいます。
大きなプログラムを記述するにはこのスコープが重要になってきます。 モジュールの結合度という言葉がありますが、モジュール結合度を可能な限り弱く設計しないと、こっちを変えたら気づかないところも変わったなど扱いにくいプログラムになります。
ここでは、JavaScriptのグローバル変数とローカル変数のスコープについて見ていきます。 JavaScriptのグローバル変数とローカル変数の対応は次の通りです。
種類 | スコープ | 宣言方法 |
---|---|---|
グローバル変数 | ファイル内外 | ブロック外で宣言(例 a = 1; または var a = 1;) |
ローカル変数 | ブロック内 | ブロック内で宣言(例 a = 1; または var a = 1;) |
最後にJavaScriptのグローバル変数とローカル変数のスコープを確認するサンプルを動かしてみます。
JavaScriptの関数内外×var有無の8パターンの挙動を確認するサンプルです。 エラーになる部分はコメントアウトしています。確認する際はコメントを外してください。
<html> <script type="text/javascript"> function printVal(val){ document.write(val + "<br />"); } var globalA = "グローバルA:ブロック外でvarあり"; globalB = "グローバルB:ブロック外でvarなし"; function getGlobalA() { return globalA + "(関数返却値)"; } function getGlobalB() { return globalB + "(関数返却値)"; } function getLocalA() { var localA = "ローカルA:ブロック内でvarあり"; return localA + "(関数返却値)"; } function getLocalB() { var localB = "ローカルB:ブロック内でvarあり"; return localB + "(関数返却値)"; } </script> <body> <script type="text/javascript"> printVal(globalA); printVal(globalB); // printVal(localA); エラー(ReferenceError: localA is not defined) // printVal(localB); エラー(ReferenceError: localB is not defined) printVal(getGlobalA()); printVal(getGlobalB()); printVal(getLocalA()); printVal(getLocalB()); </script> </body> </html>
htmlファイルに保存して、ChromeやFirefoxなど、ブラウザで開けば表示できます。 表示した結果は次のようになります。
もっと知識を広げるための参考です。
JavaScriptの入門から応用まで。JavaScript言語についてまとめています。
更新履歴になります。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
3.145.69.65
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…