我有两个陈述。
var myVar = "krijesh";
delete myVar;
myAnothervar = "pv";
delete myAnothervar;
这里的第一个语句为您提供输出false,第二个输出为您提供输出true。为什么?
答案 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 }