Javascript 您可以为eslint在本地声明一个全局变量吗?
使用eslint,您可以使用Javascript 您可以为eslint在本地声明一个全局变量吗?,javascript,eslint,Javascript,Eslint,使用eslint,您可以使用/*global*/声明全局变量。比如说 /* global document */ const elem = document.querySelector(selector); 是否可以声明全局但仅在某个范围内 function foo(selector) { /* global document */ return document.querySelector(selector); } function bar(selector) { retur
/*global*/
声明全局变量。比如说
/* global document */
const elem = document.querySelector(selector);
是否可以声明全局但仅在某个范围内
function foo(selector) {
/* global document */
return document.querySelector(selector);
}
function bar(selector) {
return document.querySelector(selector); // error! document undefined
}
通过在foo
中将document
声明为全局,可以在bar
中访问上述示例
将全局访问范围限定的优点是,如果删除一个函数,则没有其他需要清理的内容。它声明了自己的访问权限。如果您将全局变量放在文件的顶部并删除一个函数,那么您还必须清理文件的顶部。基于本地信息越多越好的思想,它还可以更好地记录变量的来源
注意:虽然我知道该特性有所不同,但python的概念是允许单个函数访问全局函数。这样做并不能使所有函数都能访问该全局函数,因此一般来说,为每个函数声明全局函数的想法并不少见
有没有一种方法可以声明全局函数只存在于eslint的某个范围内?并没有说只在函数中的局部执行。我明白你所描述的意思;你永远都不知道,他们可能会接受一个拉取请求,加上
为您提供了两种解决方法:
eslint disable line
或eslint disable next line
和内联赋值,如下所示:
函数foo(选择器){
const doc=document;/*eslint禁用行号未定义*/
返回单查询选择器(选择器);
}
eslint disable line
或eslint disable next line
和内联赋值,如下所示:
函数foo(选择器){
const doc=document;/*eslint禁用行号未定义*/
返回单查询选择器(选择器);
}
您可能希望使用
浏览器
选项,而不是明确提及浏览器提供的全局选项。谢谢,但不,我绝对不想使用浏览器选项。使用浏览器选项,eslint无法找出未定义的变量,因为它必须假设它们存在于浏览器对象上。请参阅,您可能希望使用浏览器
选项,而不是明确提及浏览器提供的全局选项。谢谢,但不,我绝对不想使用浏览器选项。使用浏览器选项,eslint无法找出未定义的变量,因为它必须假设它们存在于浏览器对象上。看见