将Undefined更改为Empty String

时间:2017-10-19 04:46:06

标签: javascript exif-js

我正在使用exif.js从我上传到CMS的图像中提取元数据。当图像没有元数据时,某些值返回“未定义”。我想做的是使用以下内容将此“未定义”值更改为空字符串:(信用:下面的Stanley)

   // 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

2 个答案:

答案 0 :(得分:0)

var i = "undefined";

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

您可以使用typeof (i) !== 'undefined'检查var类型并检查是否为'undefined',然后使用Short Circuit Operators返回值

e.g。

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

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

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

jsfiddle

答案 1 :(得分:0)

以下是适合我的解决方案:

您只需在变量周围的if函数中使用.getData语句,就不允许undefined在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}`;
                }