関数の引数についての注意点は、変数がどの範囲で使えるかという問題と同じ。変数が使える範囲のことを「変数のスコープ」という。
変数は、宣言された場所、初めて使われた場所によって、どの範囲で使えるかが決まる。
・関数内
・それ以外
<script type="text/javascript">
<!--
var Today="2008/9/15"; -----------------------関数外での宣言
function PrintBirthday() {
var myBirthday="1965/7/6";----------------関数内での宣言
document.write(Today);
}
document.write(myBirthday);
//-->
</script>
関数の内部で宣言された変数は、その関数でしか使うことができない。そのため外部から関数内部
で宣言された変数を呼び出しても、定義されない。もしくは予期せぬ値を参照する。
それ以外の場所(<script>~</script>)で宣言された変数は、どこからでも参照することができる。
<script type="text/javascript">
<!--
var Today="2008/9/15";
function PrintBirthday() {
var myBirthday="1965/7/6";
document.write(Today);-----関数外で定義された変数Todayは参照可能
}
document.write(myBirthday);-----関数内で定義された変数myBirthdayは参照できない
//-->
</script>
であるので、さまざまな関数内で共通で使いたい変数(たとえば日付などを格納)などは、
関数外で宣言しておく。
また逆に、関数内でしか使わない変数は、関数の中で宣言しておき、他に干渉しないようにする。
・関数内
・それ以外
<script type="text/javascript">
<!--
var Today="2008/9/15"; -----------------------関数外での宣言
function PrintBirthday() {
var myBirthday="1965/7/6";----------------関数内での宣言
document.write(Today);
}
document.write(myBirthday);
//-->
</script>
関数の内部で宣言された変数は、その関数でしか使うことができない。そのため外部から関数内部
で宣言された変数を呼び出しても、定義されない。もしくは予期せぬ値を参照する。
それ以外の場所(<script>~</script>)で宣言された変数は、どこからでも参照することができる。
<script type="text/javascript">
<!--
var Today="2008/9/15";
function PrintBirthday() {
var myBirthday="1965/7/6";
document.write(Today);-----関数外で定義された変数Todayは参照可能
}
document.write(myBirthday);-----関数内で定義された変数myBirthdayは参照できない
//-->
</script>
であるので、さまざまな関数内で共通で使いたい変数(たとえば日付などを格納)などは、
関数外で宣言しておく。
また逆に、関数内でしか使わない変数は、関数の中で宣言しておき、他に干渉しないようにする。
コメントする