在下面的例子中,JavaScript似乎完全忽略了我的return语句,只是继续执行代码.
var x = 1;
(function() {
x = 2;
return;
var x = 3;
})();
console.log(x); // Outputs 1 in both Chrome and FF
Run Code Online (Sandbox Code Playgroud)
当然代码应该输出2?如果我var从中删除关键字var x = 3,它会2按预期输出.这里有一些奇怪的编译器优化吗?
在 React Router 4 中,我可以定义
<Route path="/calendar/:view/:year?/:month?/:day?" component={Calendar} />
Run Code Online (Sandbox Code Playgroud)
将道具从 URL 传递到我的日历组件。
在 Calendar 组件中,我想以编程方式设置 URL 参数。文档显示了如何使用 来执行此操作history.push(),但这需要您像history.push(``${view}/${year}/${month}/${day}``). 但我想在不耦合到路由结构的情况下更新 URL,理想情况下类似于history.push({ view: 'month', year: '2018' }).
这可能吗?我觉得 React Router 帮助将 URL 拆分为参数似乎很奇怪,但没有提供设置这些参数的好机制?