Javascript 如何使用object“;棱角;即使';使用严格的';使用了什么语句?

Javascript 如何使用object“;棱角;即使';使用严格的';使用了什么语句?,javascript,angularjs,gulp,jshint,Javascript,Angularjs,Gulp,Jshint,我使用的是gulp jshint,这使我在每个文件中都添加了“use strict”指令,因此我不能使用全局对象emApp,在我的app.js文件中定义如下: var emApp = angular.module('emApp'); "globals": { "myVariabe": true } 然而,我看到jshint并没有提到角度对象。我想知道为什么会这样,以及如何对我自己的emApp对象执行相同的操作。对于使用“严格”您必须将指定给this.emApp(在顶层)或window.

我使用的是gulp jshint,这使我在每个文件中都添加了“use strict”指令,因此我不能使用全局对象emApp,在我的app.js文件中定义如下:

var emApp = angular.module('emApp');
"globals": {
   "myVariabe": true
}

然而,我看到jshint并没有提到角度对象。我想知道为什么会这样,以及如何对我自己的emApp对象执行相同的操作。

对于
使用“严格”
您必须将
指定给this.emApp
(在顶层)或
window.emApp
(也在函数中工作),不需要
var

尽管每一种模块化方法(以及角度方法)的目的都是最小化全局变量的使用,但这样做也是如此

/*jshint browser: true */
/*global angular */
'use strict';

var emApp = angular.module('emApp');

在您使用模块的每个地方都是一件好事。

有两个选项可以告诉JSHint有关全局变量的信息: 1) 如果要说明特定文件中的全局变量,请在文件开头使用以下指令:

/* globals myVariable: false */
2) 如果要为项目中的所有文件声明全局,可以在.jshintrc文件中添加此指令,如下所示:

var emApp = angular.module('emApp');
"globals": {
   "myVariabe": true
}
有关使用JSHint的全局变量的更多信息,请阅读此处:


问题中提到的p.S.角度对象是在.jshintrc文件中定义的

不清楚您在这里要问什么
use strict
不阻止声明变量,也不阻止angular Javascript定义
angular
变量。听起来您可能对
strict
模式的功能感到困惑。你可以在这里读到一个摘要:@jfriend00你应该把它作为一个answer@DanPantry-当你不能真正理解问题时,很难给出答案。是的,我认为OP对严格模式感到困惑,但我真的不知道他们在问什么。@DanPantry我已经试图澄清我的问题。我希望你现在明白我的要求。更好的是,你可以通过网页包使用commonjs模式,并将angular模块导出为commonjs模块。这样,您就不必在任何地方重复名称,也无法解释为什么全局角度对象被jshint忽略。@zhekaus使用
/*global angular*/
,我已经更新了jshint的答案。我找到了另一个答案。要使jshint忽略任何全局变量,必须将该变量添加到.jshintrc文件中,就像对angular对象所做的那样,添加到“globals”部分中:。。。“globals”:{“angular”:false,“emApp”:false}