Penggunaan var yang salah dalam javascript menyebabkan petua undefined_javascript

WBOY
Lepaskan: 2016-05-16 15:07:13
asal
1248 orang telah melayarinya

Dalam JavaScript, pembolehubah dibahagikan kepada pembolehubah tempatan dan pembolehubah global mengikut skop berbezanya Pembolehubah yang ditakrifkan secara langsung ialah pembolehubah global, dan pembolehubah global boleh diakses oleh semua skrip yang ditakrifkan dalam fungsi ialah pembolehubah tempatan sahaja Sah dalam fungsi.
Jika pembolehubah global dan pembolehubah tempatan menggunakan nama pembolehubah yang sama, pembolehubah tempatan akan menimpa pembolehubah global.
Kod contoh:

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="utf-8"> 
    <title>js中全局变量与局部变量</title> 
  </head> 
  <body> 
    <script type="text/javascript"> 
      var a = "全局变量"; 
      function test1() 
      { 
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test2() 
      { 
        alert(a); 
         
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test3() 
      { 
        alert(a); 
         
        a = "局部变量"; 
         
        alert(a); 
      } 
    </script> 
     
    <input type="button" value="test1" onclick="test1()"/> 
    <input type="button" value="test2" onclick="test2()"/> 
    <input type="button" value="test3" onclick="test3()"/> 
 
  </body> 
</html> 
Salin selepas log masuk

Hasil operasi adalah seperti berikut:
Klik test1 untuk memaparkan pembolehubah setempat.
Klik test2, undefined pop up, dan kemudian local variable pop up

Klik test3 untuk memaparkan pembolehubah global, dan kemudian muncul pembolehubah setempat

Ini adalah perbezaan antara menggunakan var dan tidak menggunakannya:
Jika anda menggunakan var, maka program akan memaksa pembolehubah baharu untuk ditakrifkan.
Jika var tidak digunakan, Sistem akan terlebih dahulu mencari sama ada pembolehubah itu wujud dalam konteks semasa dan hanya akan mentakrifkan semula pembolehubah baharu jika ia tidak wujud.

Dalam ujian3, pembolehubah yang digunakan adalah semua pembolehubah global Kali pertama pembolehubah global dikeluarkan secara langsung, kali kedua digunakan selepas memberikan nilai secara langsung kepada pembolehubah global.
Dalam kedua-dua test1 dan test2, menggunakan var untuk mentakrifkan pembolehubah baharu dengan nama yang sama dalam fungsi akan menyebabkan pembolehubah dalam fungsi menimpa pembolehubah global. Jadi dalam test2: output pertama a ialah pembolehubah tempatan a yang telah ditimpa, tetapi tiada nilai awal diberikan, jadi hasil undefined akan muncul. Menggunakan pembolehubah dengan cara ini sebenarnya salah dan harus dielakkan.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan