如何在变量为null后保持变量的值

时间:2016-11-10 08:06:58

标签: javascript

我知道这听起来很傻但我只是问,在我们删除172.20.10.14变量后,有没有办法保持b变量的值?

a

或保留var a = 'some string or number'; var b = a; delete a; but b is still = 'some string or number'; 值的任何其他方式?

3 个答案:

答案 0 :(得分:0)

delete 删除值或变量,但删除对象的属性(MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)。

例如:

var myObj = { a: 1, b: 2 };
delete myObj.a;
// myObj === { b: 2 }

当然,您可以在另一个变量中保留对该值的引用:var copy = myObj.a(在删除属性之前)。然后变量将保存值(对于基本数字,字符串,布尔值等基元)或引用(对象等)。无论哪种方式,您的副本将在原始属性被删除后保留该值:

var obj = { a: "hello" };
var copy = obj.a;
delete obj.a;
console.log(copy); // "hello"

答案 1 :(得分:0)

删除仅删除对象的属性而不是变量

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
delete person.age;

因此,您提到的代码中的变量“b”将保留“a”的值。

答案 2 :(得分:0)

如果你想删除你的情况,你必须定义一个:

window.a = 'some string or number';

然后通过以下方式删除它:

delete window.a;

或只是

delete a;

javascript中的

delete只删除属性,不删除属性指向的值。该值可能已经消失,因为没有更多的参考点。

在您的情况下,a的值是一个字符串,因此,在将a分配给b后,b有自己的值"复制"来自a。成功删除a后,a的值也会丢失,但b的值仍然完好无损。