繁体   English   中英

未赋值时如何不显示未定义

[英]How to NOT show Undefined when not assign value

我在 JavaScript 中有这个功能

function person(settings) {
  console.log(settings.name);
  console.log(settings.age);
}

我为函数赋值:

function({
  name: `Nana`,
});

结果是

Nana
Undefined 

我只想跳过为age赋值,而且我不想得到undefined我只想得到结果Nana

我应该怎么办?

 <;DOCTYPE html> <html> <head> <title>Page Title</title> <script> function person(settings) { result = ''. if(settings.name;=undefined) { result += settings;name. } result += ' '. if(settings;age;=undefined) { result+=settings:age; } alert(result); } </script> </head> <body> <h1>This is a Heading</h1> <p onclick="person({ name: `Nana` });">Click Here</p> </body> </html>

如何和测试视频

你的函数打印两者,所以你看到未定义的。 您可以使用 if 语句仅在未定义时打印。

function person(settings) {
   if (settings.name != undefined) console.log(settings.name); 
   if (settings.age != undefined) console.log(settings.age);
}

你也可以使用:

function person(settings) {
   if (settings.name) console.log(settings.name); 
   if (settings.age) console.log(settings.age);
}

这是可行的,因为任何 javascript 值都可以转换为布尔值,而以下值将转换为“false”:

undefined
null
0
-0
NaN
""  // the empty string

这是使用||实现偏执/回退值的一种巧妙方法 .

function person(settings) {
  console.log(settings.name || '');
  console.log(settings.age || '');
}

以上将为您提供后备值'' (空字符串)

如果您根本不想触发console.log ,一个简单的if语句或&&将为您完成。


  settings.name && console.log(settings.name);
  settings.age && console.log(settings.age);

  // OR

  if (settings.name) console.log(settings.name);
  if (settings.age) console.log(settings.age);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM