亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Skop JavaScript

Skop JavaScript

Dalam JavaScript, objek dan fungsi juga pembolehubah.

Dalam JavaScript, skop ialah koleksi pembolehubah, objek dan fungsi yang boleh diakses.

Skop fungsi JavaScript: Skop diubah suai dalam fungsi.


Dalam JavaScript, pembolehubah yang diisytiharkan dengan var sebenarnya mempunyai skop.

Jika pembolehubah diisytiharkan di dalam badan fungsi, skop pembolehubah ialah keseluruhan badan fungsi dan pembolehubah tidak boleh dirujuk di luar badan fungsi:

'gunakan ketat '; function foo () {
var x = 1;
x = x + 1;
}

x = x + 2; // ReferenceError! ??> di luar badan fungsi

Jika dua fungsi berbeza mengisytiharkan pembolehubah yang sama, pembolehubah hanya akan berfungsi dalam badan fungsi masing-masing. Dalam erti kata lain, pembolehubah dengan nama yang sama di dalam fungsi yang berbeza adalah bebas antara satu sama lain dan tidak menjejaskan satu sama lain:

'use strict';function foo() { var x = 1 ;
x = x + 1;
}bar fungsi() {
var x = 'A';
x = x + 'B';
}

Skop Setempat JavaScript

Pembolehubah diisytiharkan dalam fungsi dan pembolehubah adalah skop setempat.

Pembolehubah setempat: hanya boleh diakses di dalam fungsi.

// Pembolehubah carName tidak boleh dipanggil di sini
function myFunction() {
var carName = "Volvo";
// Pembolehubah carName boleh dipanggil dalam fungsi
}

Nota:

Oleh kerana pembolehubah tempatan hanya bertindak dalam fungsi, fungsi yang berbeza boleh menggunakan pembolehubah dengan nama yang sama.

Pembolehubah setempat dicipta apabila fungsi mula dilaksanakan, dan ia akan dimusnahkan secara automatik selepas fungsi tersebut dilaksanakan.

Skop global

Pembolehubah yang tidak ditakrifkan dalam mana-mana fungsi mempunyai skop global. Sebenarnya, JavaScript mempunyai tetingkap objek global secara lalai, dan pembolehubah dalam skop global sebenarnya terikat pada sifat tetingkap:

'gunakan ketat';

var course = 'Learn JavaScript';

alert(course); // 'Learn JavaScript'

alert(window. course); // 'Belajar JavaScript'

Oleh itu, mengakses terus kursus pembolehubah global adalah sama seperti mengakses window.course.

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文網(wǎng)(php.cn)</title> 
</head>
<body>
<p>全局變量在任何腳本和函數(shù)內(nèi)均可訪問。</p>
<p id="demo"></p>
<script>
var carName = "Volvo";
myFunction();
function myFunction() 
{
    document.getElementById("demo").innerHTML =
"這里是 " + carName;
}
</script>
</body>
</html>

Kitaran hayat pembolehubah JavaScript

Kitaran hayat pembolehubah JavaScript dimulakan apabila ia diisytiharkan.

Pembolehubah setempat dimusnahkan selepas fungsi dilaksanakan.

Pembolehubah global dimusnahkan selepas halaman ditutup.

Parameter fungsi

Parameter fungsi hanya berfungsi dalam fungsi dan merupakan pembolehubah setempat.


Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> var a =1; function test(){ alert(a); //a為undefined! 這個a并不是全局變量,這是因為在function scope里已經(jīng)聲明了(函數(shù)體倒數(shù)第4行)一個重名的局部變量, //所以全局變量a被覆蓋了,這說明了Javascript在執(zhí)行前會對整個腳本文件的定義部分做完整分析,所以在函數(shù)test()執(zhí)行前, //函數(shù)體中的變量a就被指向內(nèi)部的局部變量.而不是指向外部的全局變量. 但這時a只有聲明,還沒賦值,所以輸出undefined。 a=4 alert(a); //a為4,沒懸念了吧? 這里的a還是局部變量哦! var a; //局部變量a在這行聲明 alert(a); //a還是為4,這是因為之前已把4賦給a了 } test(); alert(a); //a為1,這里并不在function scope內(nèi),a的值為全局變量的值 </script> </head> <body> </body> </html>