2016-01-28 20 views
5
<script type="text/javascript"> 
    alert(a); 
</script> 

điều khiển log cho thấy: "ReferenceError chưa gặp: một không được định nghĩa";Sự khác nhau giữa "? Alert (a) '' và '' alert (a); var a = 1; '' trong javascript

<script type="text/javascript"> 
    alert(a); 
    var a = 1; 
</script> 

ở giữa các trình duyệt, Log cho thấy: "không xác định"

Làm thế nào để mã chạy này trong js và những gì gây ra sự khác biệt

+7

[Biến cẩu] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var#var_hoisting) – Tushar

+0

trong trường hợp thứ hai 'var a = 1;' nếu bạn khai báo biến sau khi cảnh báo Lỗi 'undefined' sẽ xảy ra –

+0

có lỗi đánh máy phải cảnh báo (a) không thay đổi (a) – brk

Trả lời

7

này trong mã này

<script type="text/javascript"> 
    alert(a); 
    var a = 1; 
</script> 

var a ; được kéo lên đến đỉnh và nó trở thành

<script type="text/javascript"> 
    var a; 
    alert(a); 
    a = 1; 
</script> 

vậy theo thời gian a được cảnh báo, đó là undefined

Trong mã này

<script type="text/javascript"> 
    alert(a); 
</script> 

một không quy định tại tất cả, do đó, nó đã đưa ra một lỗi "Uncaught ReferenceError: a is not defined"

Các vấn đề liên quan