我是JavaScript的新手,我遇到了一个有趣的问题,当我尝试命名一个常量提取时我无法使用它,我想知道为什么?是不是每个声明都是编译器独有的?
例如
export const fetch = async ( url , method ) => {
const options = {
method: method,
headers: {
'Content-Type': 'application/json'
}
};
try {
const response = await fetch( url, options );
return response.json();
}
catch ( e ) {
throw e;
}
};
答案 0 :(得分:3)
常量可以具有任意名称,只要它由有效字符组成且不是reserved word。
由于fetch
是局部变量并且阴影全局fetch
,await fetch( url, options )
将导致相同本地函数的递归调用 - 并且可能会抛出错误,因为它从不调用{{1 (window.fetch
),而且没有global.fetch
。
response.json()
变量名称会产生误导,因为它可能与全局fetch
混淆,并且当然不应该在这里使用,因为应该使用全局fetch
,太