isset 在 JavaScript 中的等价函数

Shraddha Paghdar 2023年10月12日
  1. isset 在 JavaScript 中的等价函数
  2. 在 JavaScript 中使用 in 运算符检查是否设置了值
  3. 在 JavaScript 中使用 Object.hasOwnProperty() 检查值是否已设置
isset 在 JavaScript 中的等价函数

PHP 提供了一个函数 isset 来确定是否设置了变量;这意味着如果一个变量被声明并分配了一个非空值。当一个变量被赋值为 null 时,isset() 将返回 false。在 JavaScript 中,我们需要确定是否设置了变量。

在这篇文章中,我们将学习如何检查变量是否已设置。

isset 在 JavaScript 中的等价函数

JavaScript 提供了 typeof 运算符。它返回一个字符串,指示未评估的操作数类型。当操作数类型未知时,此运算符很有用,并且根据类型,你可以执行下一个任务。

如果操作数类型是数字,则将数字相加,然后将字符串连接起来。

语法:

typeof operand typeof (operand)

它需要一个表示必须返回其类型的基元或对象的表达式。根据传递给它的表达式,有八个结果。它可以是 undefinedstringsymbolfunctionobjectbooleannumberobject

有关更多信息,请阅读 typeof 的文档。

const inputObject = {
  id: 42,
  name: 'John Doe'
};

let phone

console.log(typeof inputObject.id !== 'undefined');
if ((typeof phone === 'undefined')) {
  phone = '7878787878';
}
console.log(phone);

在示例中,我们定义了对象 idname 的两个属性。当你检查 typeof inputObject.id 时,它将检查 id 属性是否存在于 inputObject 中。要检查相反的条件,请添加!在条件之前,它将否定检查。

对于单个变量,你可以检查它是否已设置。如果 phone 不存在,你可以将其添加到指定的值。

输出将如下所示。

true
"7878787878"

在 JavaScript 中使用 in 运算符检查是否设置了值

in 运算符是一种内置方法,用于验证指定属性是否属于对象或其原​​型链。它重复对象并根据结果返回布尔值。

语法:

prop in object

该函数将 prop 作为字符串格式的输入,它是一个必需的参数。此方法检查指定的属性或数组索引是否存在于 Object 或原型链中。由于数组是从对象派生的,因此也可以为数组调用此方法。

有关更多信息,请阅读 in 运算符 方法的文档。

const inputObject = {
  id: 42,
  name: 'John Doe'
};

console.log('name' in inputObject);
if (!('country' in inputObject)) {
  inputObject.country = 'India';
}
console.log(inputObject);

在示例中,我们定义了对象 idname 的两个属性。如果你在 inputObject 中传递 name,它会检查 inputObject 中是否存在 name 属性。添加 !在条件前面验证相反的条件,拒绝验证。

如果对象中不存在新的 country 属性,你可以添加它。输出将如下所示。

true
{
  id: 42,
  name: "John Doe",
  country: "India"
}

在 JavaScript 中使用 Object.hasOwnProperty() 检查值是否已设置

hasOwnProperty 也是一个内置方法,用于检查指定的属性是否存在于 Object 中。它重复对象并根据结果返回布尔值。

语法:

Object.prototype.hasOwnProperty(prop);

该函数将 prop 作为 string 格式的输入,并且是必需的参数。无论 Object 中的值如何,此方法都会检查指定的属性是否存在。

即使属性的值为 nullundefined,它也会返回 true。这个方法也可以为一个 Array 调用,因为该数组是从一个对象派生的。

有关更多信息,请阅读 hasOwnProperty() 方法的文档。

const inputObject = {
  name: 'John Doe'
};

console.log(inputObject.hasOwnProperty('name'));
if (!inputObject.hasOwnProperty('email')) {
  inputObject.email = 'Johndoe@gmail.com';
}
console.log(inputObject);

在示例中,我们定义了对象 idname 的两个属性。如果你通过 inputObject.hasOwnProperty ('name'),它将检查 inputObject 中的 name 属性是否存在。添加 !在条件前面验证相反的条件,拒绝验证。

如果对象中不存在新属性,我们可以添加它。输出如下所示。

true
{
  email: "Johndoe@gmail.com",
  name: "John Doe"
}

hasOwnPropertyin 运算符之间的区别在于,如果属性在对象内继承或未声明,则 hasOwnProperty 返回 false。相反,in 运算符不验证指定属性中的对象 - 原型字符串。

基类 Object 具有 hasOwnProperty 作为其函数,因此它返回 false,而 in operator 返回 true

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn