javascript - 将 JSX 分配给变量时是否忽略括号

标签 javascript reactjs babeljs jsx variable-assignment

我正在学习 JavaScript 基础知识。这两行代码似乎是等效的,我想知道解析器是否只是忽略第二种情况中的括号:

var a = 5 + 5;
var b = (5 + 5);

编辑: 在查看了评论后,我意识到问题的背景可能会有所帮助,这些评论很有帮助。我试图将一些 JSX 分配给变量,并注意到括号似乎是可选的:

var a = 
  <div>
    <SomeComponent />
  </div>;
var b = (
  <div>
    <SomeComponent />
  </div>
);  

return 语句的情况下,我知道由于自动分号注入(inject)而需要括号。但如果是简单的赋值,括号仍然重要吗?

编辑2: 感谢您的评论和回答帮助我缩小范围并阐明我的问题。我想我真正想问的是,在这种情况下,JSX 解析器(例如 Babel)会忽略括号吗?由于两者都会被转译为:

var a = React.createElement(
  "div",
  null, 
  React.createElement(
    SomeComponent, 
    null
  )
)

最佳答案

它们不会被忽视,但简单的数学告诉你:

5 + 5 == (5 + 5)

如果您有一组不同的值,它会发生变化 - 例如:

var a = (5 * 5) + 5 * 5;
var b = 5 * (5 + 5) * 5;
var c = 5 * 5 + (5 * 5);
var d = (5 * 5 + 5) * 5;
var e = 5 * (5 + 5 * 5);
var f = (5 * 5 + 5 * 5);

console.log(a); // 50
console.log(b); // 250
console.log(c); // 50
console.log(d); // 150
console.log(e); // 150
console.log(f); // 50

这取决于操作顺序(又名 BODMAS/BIDMAS/BEDMAS 等)

关于javascript - 将 JSX 分配给变量时是否忽略括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63066055/

相关文章:

javascript - 我如何测试一个 Jest console.log

javascript - 意外的 token 导入 - react

javascript - 无法让 babel loader 应用于依赖项

javascript - 避免用两根手指滚动来触发后退/前进

javascript - TypeError : Text. isText 不是函数

reactjs - Emotion.js 与 create-react-app : ReferenceError: jsx is not defined

javascript - Flowtype:适用于类型化和非类型化用户的包?

reactjs - Babel意外的token编译react组件

javascript - IE 中的不透明度属性

javascript - 如何根据下拉列表值更改 Angular 2修改输入值