2017-09-18 125 views
0
<!DOCTYPE html> 
<html> 
<body> 
    <script> 
     function useStrict(){ 
      "use strict"; 
     } 
      "use strict"; 
      foo=10; 
      alert(foo); 
    </script> 
</body> 
</html> 

導致沒有錯誤。結論:嚴格模式未被激活。但是,如果我刪除了功能定義:結合「嚴格使用」會發生什麼;內部功能與「嚴格使用」;在全球範圍內?

<!DOCTYPE html> 
<html> 
<body> 
    <script> 
      "use strict"; 
      foo=10; 
      alert(foo); 
    </script> 
</body> 
</html> 

我收到一個錯誤。結論:嚴格模式被激活。但是,如果我刪除"use strict"線在全球範圍內,並保持功能:

<!DOCTYPE html> 
<html> 
<body> 
    <script> 
     function useStrict(){ 
      "use strict"; 
     } 
     foo=10; 
     alert(foo); 

    </script> 
</body> 
</html> 

我沒有得到任何錯誤。結論:嚴格模式未被激活。這裏發生了什麼?

看來,當"use strict";既在全局上下文中,又在函數中時,它們將抵消,因爲當我刪除函數時,嚴格模式確實被激活。但是,沒有"use strict";行在全局範圍內,但在函數裏面,嚴格模式沒有被激活,這對我來說是意想不到的。如果函數調用內部的"use strict";本身沒有激活嚴格模式,他們怎麼能在之前取消?

+3

''嚴格使用''''表達式必須是'

相關問題