将未定义更改为空字符串

Change Undefined to Empty String

我正在使用 exif.js 从我上传到 CMS 的图像中提取元数据。当图像没有元数据时,一些值 return "undefined"。我想做的是使用如下方法将此 "undefined" 值更改为空字符串:(来源:下方的 Stanley)

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

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

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

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

Link 到 exif.js:https://github.com/exif-js/exif-js/blob/master/exif.js

var i = "undefined";

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

您可以使用 typeof (i) !== 'undefined' 检查 var 类型并检查是否 'undefined',然后使用短路运算符 return 值

例如

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

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

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

jsfiddle

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

您可以简单地在 .getData 函数中使用 if 语句围绕您的变量,以不允许 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}`;
                }