{"id":429,"date":"2017-04-23T14:01:00","date_gmt":"2017-04-23T17:01:00","guid":{"rendered":"https:\/\/cahfelix.tech\/blog\/?p=429"},"modified":"2025-10-30T14:08:02","modified_gmt":"2025-10-30T17:08:02","slug":"entendendo-o-strict-mode","status":"publish","type":"post","link":"https:\/\/cahfelix.tech\/blog\/entendendo-o-strict-mode\/","title":{"rendered":"Entendendo o Strict Mode"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">O que \u00e9 o Strict Mode?<\/h3>\n\n\n\n<p>O <strong><code>\"use strict\"<\/code><\/strong> foi introduzido no <strong>ECMAScript 5<\/strong> e serve para deixar o JavaScript mais rigoroso e previs\u00edvel.<\/p>\n\n\n\n<p>Por padr\u00e3o, o JavaScript \u00e9 uma linguagem muito flex\u00edvel, o que \u00e9 \u00f3timo para prototipagem, mas perigoso quando falamos de c\u00f3digo em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p>O <strong>Strict Mode<\/strong> ajuda a identificar erros que o interpretador normalmente ignoraria, melhorando a qualidade e a seguran\u00e7a do c\u00f3digo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Por que usar o Strict Mode?<\/h3>\n\n\n\n<p>Sem o modo estrito, o JavaScript permite pr\u00e1ticas que podem gerar bugs dif\u00edceis de encontrar, como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>criar vari\u00e1veis sem declar\u00e1-las<\/li>\n\n\n\n<li>sobrescrever palavras reservadas<\/li>\n\n\n\n<li>duplicar par\u00e2metros em fun\u00e7\u00f5es<\/li>\n<\/ul>\n\n\n\n<p>Com o <strong>Strict Mode<\/strong>, o JavaScript passa a fazer verifica\u00e7\u00f5es mais r\u00edgidas e a lan\u00e7ar erros quando algo est\u00e1 incorreto.<\/p>\n\n\n\n<p>\u00c9 como se ele dissesse: <em>\u201cEi, escreva direito esse c\u00f3digo!\u201d<\/em> \ud83d\ude04<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo 1 \u2013 Criando vari\u00e1veis sem <code>var<\/code>, <code>let<\/code> ou <code>const<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>minhaIdade = 30; \/\/ Isso funciona, mas cria uma vari\u00e1vel global sem querer!<\/code><\/pre>\n\n\n\n<p>No modo normal, o c\u00f3digo acima \u00e9 v\u00e1lido, o JavaScript cria automaticamente uma vari\u00e1vel global chamada <code>minhaIdade<\/code>.<\/p>\n\n\n\n<p>Agora veja o que acontece com o Strict Mode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'use strict';\nminhaIdade = 30;\n\/\/ ReferenceError: minhaIdade is not defined<\/code><\/pre>\n\n\n\n<p>O erro \u00e9 lan\u00e7ado porque a vari\u00e1vel n\u00e3o foi declarada corretamente. Isso evita comportamentos inesperados e ajuda a manter o c\u00f3digo mais seguro.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo 2 \u2013 Vari\u00e1veis dentro de fun\u00e7\u00f5es<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>function minhaFuncao() {\n  nome = \"Cah Felix\";\n}\nminhaFuncao();<\/code><\/pre>\n\n\n\n<p>Sem o modo estrito, o c\u00f3digo roda sem erros, mas <code>nome<\/code> \u00e9 criada como uma vari\u00e1vel global \u2014 o que \u00e9 uma m\u00e1 pr\u00e1tica.<\/p>\n\n\n\n<p>Agora veja com o Strict Mode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'use strict';\nfunction minhaFuncao() {\n  nome = \"Cah Felix\";\n}\nminhaFuncao();\n\/\/ ReferenceError: nome is not defined<\/code><\/pre>\n\n\n\n<p>Aqui o erro \u00e9 exibido, indicando que a vari\u00e1vel precisa ser declarada com <code>let<\/code>, <code>const<\/code> ou <code>var<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Como ativar o Strict Mode<\/h3>\n\n\n\n<p>Voc\u00ea pode ativar o modo estrito de duas formas:<\/p>\n\n\n\n<p><strong>1. No escopo global (para todo o arquivo):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'use strict';\n\/\/ c\u00f3digo aqui<\/code><\/pre>\n\n\n\n<p><strong>2. Dentro de uma fun\u00e7\u00e3o espec\u00edfica:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function exemplo() {\n  'use strict';\n  \/\/ c\u00f3digo aqui\n}<\/code><\/pre>\n\n\n\n<p>Quando declarado no topo do arquivo, ele vale para todo o script. Se estiver dentro de uma fun\u00e7\u00e3o, s\u00f3 se aplica ao seu escopo. \ud83d\ude09 <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclus\u00e3o<\/h3>\n\n\n\n<p>Usar o <strong>Strict Mode<\/strong> \u00e9 um pequeno h\u00e1bito que traz grandes benef\u00edcios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>melhora a legibilidade do c\u00f3digo<\/li>\n\n\n\n<li>ajuda a encontrar erros mais cedo<\/li>\n\n\n\n<li>previne comportamentos inesperados<\/li>\n\n\n\n<li>garante compatibilidade com vers\u00f5es futuras do JavaScript<\/li>\n<\/ul>\n\n\n\n<p>Em resumo: <strong>use sempre o modo estrito<\/strong>. Seu c\u00f3digo e seu futuro eu agradecer\u00e3o. \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 o Strict Mode? O &#8220;use strict&#8221; foi introduzido no ECMAScript 5 e serve para deixar o JavaScript mais rigoroso e previs\u00edvel. Por padr\u00e3o, o JavaScript \u00e9 uma&#8230;<\/p>\n","protected":false},"author":1,"featured_media":408,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[43,42],"class_list":["post-429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engenharia-de-software","tag-front-end","tag-javascript"],"aioseo_notices":[],"featured":false,"read_time":3,"_links":{"self":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/comments?post=429"}],"version-history":[{"count":1,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":430,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/429\/revisions\/430"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/media\/408"}],"wp:attachment":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/media?parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/categories?post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/tags?post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}