Respostas:
Incluir 'use strict';
como primeira instrução em uma função de quebra automática, portanto, afeta apenas essa função. Isso evita problemas ao concatenar scripts que não são estritos.
Veja o post mais recente de Douglas Crockford no blog O Modo Estrito Está Chegando à Cidade .
Exemplo desse post:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Atualização: Caso você não deseje interromper a função imediata (por exemplo, é um módulo de nó), poderá desativar o aviso.
Para JSLint (por Zhami ):
/*jslint node: true */
Para JSHint :
/*jshint strict:false */
ou (por Laith Shadeed )
/* jshint -W097 */
Para desativar qualquer aviso arbitrário do JSHint, verifique o mapa no código-fonte do JSHint (detalhes em documentos ).
Atualização 2: JSHint suporta a node:boolean
opção. Veja .jshintrc
no github .
/* jshint node: true */
-1
/*jshint strict:false */
, para tornar mais claro o que você está fazendo (a menos que há um benefício específico para o seu código numérico que eu não estou ciente de)
"use strict";
uma vez por arquivo.
Se você está escrevendo módulos para o NodeJS, eles já estão encapsulados. Diga ao JSLint que você possui um nó incluindo no topo do seu arquivo:
/*jslint node: true */
/*jshint strict:false */
"node": true
a .jshintrc
Eu sugiro usar o jshint .
Permite suprimir este aviso via /*jshint globalstrict: true*/
.
Se você estiver escrevendo uma biblioteca, eu sugeriria apenas o uso de strict global se seu código estiver encapsulado em módulos, como é o caso do nodejs.
Caso contrário, você forçaria todos que estão usando sua biblioteca a entrar no modo estrito.
strict: 'global'
agora e veja jshint.com/docs/options/#globalstrict
Comecei a criar um aplicativo Node.js./ browserify seguindo o JavaScript de plataforma cruzada postagem do blog em . E eu me deparei com esse problema, porque meu novíssimo Gruntfile não passou no jshint.
Felizmente, encontrei uma resposta no livro Leanpub sobre Grunt :
Se tentarmos agora, verificaremos nosso Gruntfile ... e obteremos alguns erros:
$ grunt jshint Running "jshint:all" (jshint) task Linting Gruntfile.js...ERROR [L1:C1] W097: Use the function form of "use strict". 'use strict'; Linting Gruntfile.js...ERROR [L3:C1] W117: 'module' is not defined. module.exports = function (grunt) { Warning: Task "jshint:all" failed. Use --force to continue.
Ambos os erros ocorrem porque o Gruntfile é um programa Node e, por padrão, o JSHint não reconhece ou permite o uso
module
e a versão da stringuse strict
. Podemos definir uma regra JSHint que aceitará nossos programas Node. Vamos editar nossa configuração da tarefa jshint e adicionar uma chave de opções:jshint: { options: { node: true }, }
Adicionando node: true
ao jshint options
, para colocar o jshint no "modo Nó", removi os dois erros para mim.
Adicione um arquivo .jslintrc (ou .jshintrc no caso de jshint) na raiz do seu projeto com o seguinte conteúdo:
{
"node": true
}
Não há nada errado com a forma da string.
Em vez de evitar a forma estrita "global" por se preocupar em concatenar javascript não estrito, provavelmente é melhor corrigir o maldito javascript não estrito para ser estrito.
Acho que todo mundo perdeu a parte "subitamente" dessa pergunta. Provavelmente, o seu .jshintrc tem um erro de sintaxe, portanto, não está incluindo a linha do 'navegador'. Execute-o através de um validador json para ver onde está o erro.
É simples: se você deseja ser rigoroso com todo o seu código, adicione "use strict";
no início do seu JavaScript.
Mas se você quiser apenas ser rigoroso com parte do seu código, use o formulário da função De qualquer forma, eu recomendo que você o use no início do seu JavaScript, pois isso o ajudará a ser um codificador melhor.
"use strict";
a parte superior do meu arquivo JS, portanto, isso pode não ser totalmente verdade.
"use strict";
, onde é colocada apenas na parte superior do seu código. Só permite "use strict;"
quando envolvido em uma função. (JS_Hint_ permite que você use o formulário global - veja a resposta acima para a configuração necessária).