我首先要说的是,我几乎不了解我开始使用npx create-react-app
的项目和我开始使用touch app.js
touch app.html
的项目之间的区别。
我有以下代码:
var departments = {
id0: "Networking",
id1: "Video",
id2: "Desktop PCs",
}
departments.list = function () {
var output = "";
for (name in departments) {
if (typeof departments[name] == 'string') {
output=output+departments[name].valueOf()+", ";
}
}
return(output);
}
当我使用上述touch
方法创建一个“哑” javascript应用程序时,调用departments.list()
会返回Networking, Video, Desktop PCs,
,这与我期望的一样。但是,将此确切的代码粘贴到npx create-react-app
创建的App.js文件的未封闭部分中,会在包含单词Unexpected use of 'name' no-restricted-globals
的每一行上产生编译器错误name
。
我的印象是,任何JavaScript表达式在React中都是有效的,因为React严格是Javascript的超集?为什么会这样?我错了吗?
我也认识到我正在使用许多我不了解的系统,但是我什至对它们的理解还不够深入,无法开始研究它们。 Npx,npm,webpack,nodejs及其与Javascript和React的关系对我来说都是神秘的。
答案 0 :(得分:3)
在customElements.define('test-el', class TestEl extends HTMLDivElement {}, { extends: 'div' })
let supportsCBI = document.createElement('div', {is: 'test-el'}).constructor.name === 'TestEl'
console.log(supportsCBI)
变量之前,您需要let
关键字。
name
在JavaScript中为未声明的变量赋值时,它将操纵全局范围。如果您使用的是严格模式,则尝试分配给未声明的变量将引发错误。