1 2 3 4 5 6 7 8 9 10 | <span class="token string">'use strict'</span><span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function">addWithDoubleValue</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">var</span> doubleA <span class="token operator">=</span> a <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token keyword">var</span> doubleB <span class="token operator">=</span> a <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token keyword">return</span> doubleA <span class="token operator">+</span> doubleB<span class="token punctuation">;</span> <span class="token punctuation">}</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>doubleA<span class="token punctuation">)</span><span class="token punctuation">;</span> |
Khi tham khảo code js của người khác, chúng ta thường thấy cụm từ
"use strict;"
như đoạn code trên. Vậy "use strict;"
là gì và tại sao cần dùng nó?Được rồi, đầu tiên ta cần biết khi ta khai báo cụm trên thì js sẽ chạy ở chế độ strict mode
. Trong chế độ này, bạn sẽ không thể dùng các biến chưa định danh (undeclared).
Tất cả các trình duyệt hiện đại đều hỗ trợ, ngoại trừ Internet Explorer 9 và các bản thấp hơn
Khai báo:
Để sử dụng ta cần khia báo "use strict";
ở đầu file js hoặc trước 1 funtion.
Ví dụ
1 2 3 | <span class="token string">"use strict"</span><span class="token punctuation">;</span> x <span class="token operator">=</span> <span class="token number">3.14</span><span class="token punctuation">;</span> <span class="token comment">//Dẫn tới lỗi bởi vì biến chưa được khai báo</span> |
Ví dụ khác:
1 2 3 4 5 6 7 | <span class="token string">"use strict"</span><span class="token punctuation">;</span> <span class="token function">myFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function">myFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> y <span class="token operator">=</span> <span class="token number">3.14</span><span class="token punctuation">;</span> <span class="token comment">// This will also cause an error because y is not declared</span> <span class="token punctuation">}</span> |
Khi khai báo bên trong 1 function, nó được coi như local scope (chỉ ảnh hưởng các biến bên trong hàm). Ví dụ:
1 2 3 4 5 6 7 8 | x <span class="token operator">=</span> <span class="token number">3.14</span><span class="token punctuation">;</span> <span class="token comment">// This will not cause an error.</span> <span class="token function">myFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function">myFunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token string">"use strict"</span><span class="token punctuation">;</span> y <span class="token operator">=</span> <span class="token number">3.14</span><span class="token punctuation">;</span> <span class="token comment">// This will cause an error</span> <span class="token punctuation">}</span> |
Tại sao cần dùng strict mode?
Khi dùng mode này code js của bạn sẽ được đảm bảo hơn về mặt logic code
Trên đây, mình đã gửi tới các bạn khái quát về use strict, ngoài ra bạn có thể tham khảo thêm một số trường hợp sử dụng nó tại w3schools.