为什么删除关键字不使用var关键字删除变量

时间:2016-07-05 12:47:31

标签: javascript

我有两个陈述。

 var myVar = "krijesh";
 delete myVar;

 myAnothervar = "pv";
 delete myAnothervar;

这里的第一个语句为您提供输出false,第二个输出为您提供输出true。为什么?

2 个答案:

答案 0 :(得分:3)

来自MDN

  

delete运算符从对象中删除属性。

     

delete仅对对象的属性有效。它对变量或函数名称没有影响。

     

虽然有时误称为全局变量,但未指定对象的赋值(例如x = 5)实际上是全局对象的属性赋值。

换句话说,delete运算符只删除对象属性,而不是变量。

var x = y声明一个名为x的局部变量。 x = y在全局对象上声明属性x

答案 1 :(得分:2)

delete关键字从对象中删除属性。它没有"删除"变量的存在。以下是删除的正确用法。

var myObject = { count: 100, name: 'KriZ' }

// { count: 100, name: 'KriZ' }

delete myObject.name;

// { count: 100 }