不同浏览器的行为差异较大,避免在块级作用域里申明函数。如果确实需要,写成函数表达式。块级作用域必须有大括号。 //报错 if(true) let x =1; 如上述例子,因为没有没有大括号,被JavaScript 引擎认为没有块级作用域,因为let只能处于作用域顶层,报错。