📜  删除对象属性与未定义的赋值 javascript (1)

📅  最后修改于: 2023-12-03 15:22:43.125000             🧑  作者: Mango

删除对象属性与未定义的赋值 javascript

在JavaScript中,我们可以使用 delete 关键字来删除对象的属性。以下是一个示例:

const myObject = {
  name: 'John',
  age: 30,
  city: 'New York'
};

delete myObject.age;

console.log(myObject);
// Output: { name: 'John', city: 'New York' }

在上述示例中,我们使用 delete 来删除 myObjectage 属性。结果,myObject 中不再包含该属性。

但是,使用 delete 删除数组中的元素并不会改变数组的长度,而是留下一个未定义的空间。以下是一个描述数组删除元素的示例:

const myArray = [1, 2, 3, 4, 5];

delete myArray[2]; // Deletes the element at index 2

console.log(myArray);
// Output: [1, 2, undefined, 4, 5]

注意到这里,index 2上实际上没有了元素,但是输出里边这个位置的值为 undefined,并没有其它的值存在。这也是 JavaScript 的数组所独有的。

除了使用 delete,我们还可以将属性设置为 undefined 或者没有指定值来删除。以下是一个示例:

const myObject = {
  name: 'John',
  age: 30,
  city: 'New York'
};

myObject.age = undefined;

console.log(myObject);
// Output: { name: 'John', age: undefined, city: 'New York' }

在这个示例中,我们将 myObjectage 属性设置为 undefined,并没有真正地删除它,而是将它的值设置为空。

最后,需要警惕的是,在不使用严格模式的情况下,当您对某个未定义的变量进行赋值时,JavaScript 不会抛出异常或者错误。相反,它会将该变量视为全局变量,并在全局范围内创建它。为了避免这种情况,您应该始终使用 letconst 关键字来声明变量。

function myFunction() {
  x = 5; // Bad practice, implicitly creates a global variable.
  let y = 10; // Good practice, declares a local variable.
  const z = 15; // Good practice, declares a constant variable.
}