将未定义更改为空字符串
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
函数中使用if
statements,以不允许未定义在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 更改为 ''(空字符串)