我正在学习JavaScript。我理解由' let'创建的变量。被挂起(作为由' var'创建的变量),但是由于时间死区,控制命中初始化语句之前不能使用这些变量。如果我们不能使用变量,那么需要提升这些变量是什么?
答案 0 :(得分:2)
没有必要提升它,这只是需要注意的事情。
如果你有,作为一个荒谬的例子:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cout << "Please input the desired string : \n";
cin >> s;
size_t sz = s.length();
size_t x = sz / 2;
if ((sz % 2) != 0)
{
s.erase(x, 1);
}
else
{
s.erase(x-1, 2); // or (x-1, 1)? What do you want to erase exactly?
}
sz = s.length();
for (int j = 0; j < sz; ++j)
{
cout << s[j];
}
return 0;
}
你只需要能够意识到,“哦,即使函数外面有一个x,因为函数内部有一个var x = 10;
function if_x_is_10() {
if (x === 10) {
console.log('It was 10!');
}
let x = 10;
console.log('Now it is 10!');
}
if_x_is_10(); // Uncaught ReferenceError: x is not defined
,我无法访问x直到我超过该行,我无法访问函数内部的let x
。“