我试图通过阅读原始规范来围绕ES6中新的标准化块级功能.我的肤浅理解是:
然而,由于这些语义的一部分被指定为"可选的"并且仅对于Web浏览器是必需的(附件B),因此这进一步复杂化.所以我想填写下表:
| Visible outside of block? | Hoisted? Up to which point? | "TDZ"? |
------------------------------------------------------------------------------------------------------------------------
| Non-strict mode, no "web extensions" | | | |
| Strict mode, no "web extensions" | | | |
| Non strict mode, with "web extensions | | | |
| Strict mode, with "web extensions" | | | |
另外我不清楚在这种情况下"严格模式"是什么意思.这种区别似乎在附件B3.3中引入,作为函数声明的运行时执行的一些附加步骤的一部分:
1. If strict is false, then
...
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,strict指[[Strict]]的是函数对象的内部插槽.这是否意味着:
// Non-strict …Run Code Online (Sandbox Code Playgroud)