'Fasa prakompilasi' dan 'fasa pelaksanaan' semasa JavaScript menjalankan kemahiran process_javascript

WBOY
Lepaskan: 2016-05-16 15:25:26
asal
2069 orang telah melayarinya

Berbanding dengan bahasa lain, javascript ialah bahasa yang ditaip lemah Dalam bahasa lain seperti java, pelaksanaan program memerlukan peringkat penyusunan, dan terdapat "peringkat pra-penyusunan" yang serupa dalam javascript (pra-penyusunan javascript. -peringkat penyusunan). Penyusunan adalah berdasarkan blok kod, iaitu, setiap kali blok kod ditemui, ia akan dikompilasi>dilaksanakan. Memahami mekanisme pelaksanaan enjin javascript akan membantu dalam proses menulis kod js Ringkasan idea

Pertama sekali, mari belajar tentang dua kaedah pengisytiharan dalam JavaScript, var dan fungsi Yang pertama mengisytiharkan pembolehubah, dan yang terakhir mengisytiharkan kaedah

Dalam pra-penyusunan, javascript membuat dua penyelesaian pemprosesan untuk dua pengisytiharan ini

<script>
  var a = "1";    //声明变量a
 function b(){    //声明方法b
    alert();
  }
  var c = function(){ //声明变量c
    alert();
  }
</script> 
Salin selepas log masuk

Dalam blok kod di atas, a dan c ialah penugasan pembolehubah, dan b ialah perisytiharan fungsi Apabila kod di atas dilaksanakan, ia akan mula-mula memasuki peringkat pra-penyusunan Penetapan a dan c kepada pembolehubah akan membuka a ruang memori dalam memori dan Tuding pada nama pembolehubah, dan nilai yang diberikan tidak ditentukan

Untuk pengisytiharan fungsi, ruang memori juga akan diperuntukkan, tetapi objek yang ditetapkan akan memberikan fungsi yang diisytiharkan kepada nama fungsi

Fasa pra-penyusunan: (PS: Tanpa mengira susunan pembolehubah dan fungsi diisytiharkan dalam kod, pembolehubah akan diisytiharkan dahulu dan kemudian berfungsi dalam fasa pra-penyusunan)

<script>
    var a = undefined;
    var c = undefined;         var b = function(){
      alert();
    } </script> 
Salin selepas log masuk

Fasa pelaksanaan:

<script>
    a = "1";
    c = function(){
      alert();
    }
</script> 
Salin selepas log masuk

Langkah pelaksanaan keseluruhan:

<script>
    var a = undefined;
    var c = undefined;
    
    var b = function(){
      alert();
    }
    a = "1";
    c = function(){
      alert();
    }
</script> 
Salin selepas log masuk

Tajuk:

<script>
    var a = "1";
    function b(){
      alert(a);
      var a = "2";
    }
    b();
</script> 
Salin selepas log masuk

ps: pra-kompilasi javascript

1. Pratakrif pembolehubah dahulu, kemudian pratakrif fungsi

2. Pra-penyusunan pembolehubah hanya mengisytiharkannya, tidak memulakannya dan memulakannya semasa pelaksanaan

3. Fungsi yang ditakrifkan oleh pernyataan fungsi bukan sahaja mengisytiharkan nama fungsi, tetapi juga memproses badan fungsi

4. Fungsi tanpa nama tidak akan dikompilasi sebelumnya

function f(){      // 声明函数f  
return 1; } alert(f());       // 返回1 
var f = function(){    // 定义匿名函数f  
return 2; } alert(f());       // 返回2 
Salin selepas log masuk

Pembolehubah f dipratakrifkan dahulu, dan kemudian fungsi f() dengan nama yang sama menimpa pembolehubah f, jadi 1 adalah output untuk kali pertama;

var f = function(){    // 定义匿名函数f  
return 1; } 
alert(f());       // 返回1 
function f(){      // 声明函数f  
return 2; } 
alert(f());      // 返回1 
Salin selepas log masuk
Pembolehubah f dipratakrif dahulu, dan kemudian fungsi f() dengan nama yang sama menimpa pembolehubah f.

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