Rumah  >  Artikel  >  hujung hadapan web  >  Analisis contoh pengisytiharan pembolehubah javascript_kemahiran javascript

Analisis contoh pengisytiharan pembolehubah javascript_kemahiran javascript

WBOY
WBOYasal
2016-05-16 16:02:221345semak imbas

Contoh dalam artikel ini menerangkan kaedah pengisytiharan pembolehubah javascript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Pembolehubah harus diisytiharkan sebelum menggunakannya dalam js. Pembolehubah diisytiharkan menggunakan kata kunci var.

Jika nilai awal tidak ditentukan untuk pembolehubah dalam pernyataan perisytiharan var, nilai pembolehubah tidak ditentukan.
Tidak perlu menentukan jenis pembolehubah apabila mengisytiharkan pembolehubah JS boleh daripada sebarang jenis data.

Adalah sah dan tidak berbahaya untuk mengisytiharkan pembolehubah berulang kali menggunakan pernyataan var. Jika pengisytiharan berulang mempunyai pemula, ia tidak berbeza dengan pernyataan tugasan mudah.

Jika anda cuba membaca pembolehubah yang tidak diisytiharkan, js akan melaporkan ralat. Dalam mod ketat ECMAScript5, memberikan nilai kepada pembolehubah yang tidak diisytiharkan juga akan melaporkan ralat, bagaimanapun, mengikut sejarah, dalam mod tidak ketat, jika anda menetapkan nilai kepada pembolehubah yang tidak diisytiharkan, js sebenarnya akan mencipta sifat dengan nama yang sama untuk; objek global, dan Nampaknya ia berfungsi seperti pembolehubah global yang diisytiharkan dengan betul. Ini bermakna anda boleh lari dengan tidak mengisytiharkan pembolehubah global, tetapi ini adalah tabiat buruk yang boleh menyebabkan banyak pepijat, dan lebih baik untuk sentiasa menggunakan var untuk mengisytiharkan pembolehubah.

Dalam badan fungsi, pembolehubah tempatan dengan nama yang sama akan menulis ganti pembolehubah global.
Walaupun anda boleh menulis kod dalam skop global tanpa menulis pernyataan var, anda mesti menggunakan pernyataan var semasa mengisytiharkan pembolehubah setempat Sila rujuk kod berikut:

scope = "global";
function foo(){
  scope="local"
  //fk!我们刚刚修改了全局变量!!!
}

Dalam bahasa pengaturcaraan​​seperti C, setiap bahagian kod dalam kurungan kerinting mempunyai skopnya sendiri, dan pembolehubah tidak boleh dilihat di luar bahagian kod yang diisytiharkan Kami memanggil skop blok ini skop peringkat blok dalam js, tetapi skop fungsi digunakan sebaliknya: pembolehubah ditakrifkan dalam badan fungsi di mana ia diisytiharkan dan mana-mana badan fungsi yang badan fungsi ini bersarang (sama ada sarang dalam atau sarang luar? )
Skop fungsi js bermakna semua pembolehubah yang diisytiharkan dalam fungsi sentiasa kelihatan dalam badan fungsi, yang bermaksud bahawa pembolehubah boleh digunakan sebelum ia diisytiharkan. Ciri js ini secara tidak rasmi dipanggil pengisytiharan angkat, iaitu, semua pembolehubah yang diisytiharkan dalam fungsi js (tetapi tidak diberikan) adalah "lanjutan" ke bahagian atas badan fungsi.

var scope = "global";
function f(){
  console.log(scope);
  //输出"undefined"而不是"global"
  var scope = "local";
  //变量在这里赋初始值,但变量在函数体内任何地方均是有定义的
  console.log(scope);
  //输出"local"

Kod di atas adalah bersamaan dengan:

function f(){
  var scope;
  console.log(scope);
  scope = "local";
  console.log(scope);
  }

Apabila mengisytiharkan pembolehubah global js, ia sebenarnya mentakrifkan sifat objek global.
Apabila anda mengisytiharkan pembolehubah dengan var, atribut yang dicipta tidak boleh dikonfigurasikan, iaitu, ia tidak boleh dipadamkan dengan pengendali padam tetapi jika anda tidak menggunakan mod ketat dan memberikan nilai kepada pembolehubah yang tidak diisytiharkan, js akan mencipta global secara automatik; Pembolehubah yang dibuat dengan cara ini ialah sifat boleh dikonfigurasikan biasa bagi objek global dan boleh dipadamkan:

var x = 1; 
y = 2;
this.z = 3; //同上
delete x; //返回false,无法删除变量
delete y; //返回true,变量被删除
delete this.z //同上

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn