Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用“use strict”删除javascript let变量?_Javascript_Variables - Fatal编程技术网

如何使用“use strict”删除javascript let变量?

如何使用“use strict”删除javascript let变量?,javascript,variables,Javascript,Variables,我可以不用像这样使用let或var来删除变量 y = 25; delete y; 但我不能在使用let时这样做。该变量未被删除,我可以对其进行console.log操作。删除运算符用于从对象中删除属性,而不是删除变量 正在工作,因为“y”是窗口/全局对象的属性,而不是变量我知道答案 { i = 0; while(i < 10){ i++; } delete i; } 为什么要删除变量?就像我想在使用while loop后删除它一样,你说我在使用le

我可以不用像这样使用let或var来删除变量

y = 25;
delete y;

但我不能在使用let时这样做。该变量未被删除,我可以对其进行console.log操作。

删除运算符用于从对象中删除属性,而不是删除变量

正在工作,因为“y”是窗口/全局对象的属性,而不是变量

我知道答案

{
   i = 0;
   while(i < 10){
       i++;
   }
   delete i;
}

为什么要删除变量?就像我想在使用while loop后删除它一样,你说我在使用let时不能这样做是什么意思?让变量在块范围内。为什么需要删除它?为什么要删除是在使用while循环之后?您还没有说明为什么要删除变量。但是我不能使用“use strict”来执行此操作。您不允许在strict模式下执行此操作。您可以阅读这篇关于it对象的文章,这些对象的属性被删除后,基于V8的浏览器无法或无法以与未删除属性的对象相同的方式对其进行优化。因此,几乎没有您更喜欢var obj={x:1}的情况;删除obj.x;在var obj={x:1}上;obj.x=null;。
{
   i = 0;
   while(i < 10){
       i++;
   }
   delete i;
}