将未定义更改为空字符串

Posted

技术标签:

【中文标题】将未定义更改为空字符串【英文标题】:Change Undefined to Empty String 【发布时间】:2018-03-31 01:59:51 【问题描述】:

我正在使用 exif.js 从上传到 CMS 的图像中提取元数据。当图像没有元数据时,某些值会返回“未定义”。我想要做的是使用这样的东西将这个“未定义”值更改为一个空字符串:(Credit:Stanley below)

   // not set var i means
// i === undefined

var j = (typeof (i) !== 'undefined' ? i : 'not found');

console.log(j); // 'not found'

然而,看了几个小时后,我仍然无法弄清楚 exif.js 是如何返回未定义的值,以便我可以将其更改为空字符串。

exif.js 链接:https://github.com/exif-js/exif-js/blob/master/exif.js

【问题讨论】:

【参考方案1】:

var i = "undefined";

您已将字符串设置为var i,因此无法测试它是否未定义。

您可以使用typeof (i) !== 'undefined' 来检查 var 类型并检查是否“未定义”,然后使用短路运算符返回值

例如

// not set var i means
// i === undefined

var j = (typeof (i) !== 'undefined' ? i : 'not found');

console.log(j); // 'not found'

jsfiddle

【讨论】:

我想我现在明白如何正确使用它了。谢谢!然而,我仍在努力寻找在 exif.js 中使用它的正确变量。我会继续努力,如果我弄明白了会告诉你的。【参考方案2】:

这是对我有用的解决方案:

您可以简单地在您的变量周围的.getData 函数中使用ifstatements,以不允许未定义在EXIF.JS 库中运行。请注意,如果您遵循 EXIF.JS Github 上的示例,则此代码通常编写在您页面上的脚本中。

  EXIF.getData(img, function() 
                var model = EXIF.getTag(this, "Model");
                
                if (model) 
                  var modelDataSpan = document.getElementById('model-'+id);
                  modelDataSpan.innerhtml = `$model`;
                

【讨论】:

以上是关于将未定义更改为空字符串的主要内容,如果未能解决你的问题,请参考以下文章

将 TEXT 列默认值从 null 更改为 ''(空字符串)

我想将我的 dexie 值更改为空字符串

当没有匹配的记录时,如何将与另一个表连接的 group_concat 列更改为空字符串而不是 null?

用空值替换空字符串

使用 JAXB 解组 xml 字符串但得到空字符串

c语言 定义一个函数,判断某字符串中是不是包含一个子串