如果其他类型的检查类型返回undefined

时间:2017-09-25 23:24:19

标签: javascript jquery html angular kendo-ui

已更新

嘿,我测试了你的代码......如果我将mobileVersion作为sample.pdf打破它的另一个场景......我正在将skyCloudmageProfilePic作为pdfProfilePic ...这是没有删除typeOf jsfiddle.net/n9d08ko2

在哪里,好像我使用你的条件我得到skyCloudmageProfilePic作为newDocProfilePic如何得到pdfProfilePic ...提供你的更新代码在这个小提琴 jsfiddle.net/Lqjhyvmz

if (model.mobilePics) {
    skyCloudmageProfilePic = model.mobilePics;
 } else {
    skyCloudmageProfilePic = "newDocProfilePic";
 }
  • 我正在尝试从if条件中删除typeof。
  • 如果我删除typeof,我将为skyCloudmageProfilePic定义未定义。
  • 有没有办法解决它。
  • 在下面提供我的代码。
  • 我试图删除typeOf的共鸣是我需要修复lint错误。
  • 因为不接受typeof。
  • 你能告诉我如何修复它以证明我的代码

  • 当我到达这条线时,我正在调试这个小提琴让kendotxtMenu =“”;您可以将skyCloudmageProfilePic的值视为newDocProfilePic skyCloudmageProfilePic = newDocProfilePic

http://jsfiddle.net/fdnoz2ka/

  • 但是在这个小提琴中,如果我删除typeof,你可以看到skyCloudmageProfilePic的值为undefined skyCloudmageProfilePic = undefined

http://jsfiddle.net/c4k6mqkg/

//if (typeof model.mobilePics != "undefined" && model.mobilePics != "") {
          //skyCloudmageProfilePic = model.mobilePics; // skyCloudmageProfilePic = newDocProfilePic
       // }

       //if (typeof skyCloudmageProfilePic == "undefined") {
         // skyCloudmageProfilePic = "newDocProfilePic"; // skyCloudmageProfilePic = newDocProfilePic
       // }

        if ( model.mobilePics != "undefined" && model.mobilePics != "") {
          skyCloudmageProfilePic = model.mobilePics; // skyCloudmageProfilePic = undefined
        }

        if (skyCloudmageProfilePic == "undefined") {
          skyCloudmageProfilePic = "newDocProfilePic"; // skyCloudmageProfilePic = undefined
        }

        let kendotxtMenu = "";

2 个答案:

答案 0 :(得分:0)

 if (model.mobilePics) {
    skyCloudmageProfilePic = model.mobilePics;
 } else {
    skyCloudmageProfilePic = "newDocProfilePic";
 }

这应该可行,首先检查undefined和空字符串,但如果字符串未定义或为空,则字符串将始终求值为false。

看了一下之后,我意识到你的第二次检查也毫无意义。我已经调整它以适应更好。

您还应该使用' ==='在可能的情况下,这可以避免平等检查对你做一些时髦的事情。这是一个解释三重检查的小帖子。

Which equals operator (== vs ===) should be used in JavaScript comparisons?

答案 1 :(得分:-1)

使用变量的布尔值来检查已定义/未定义的状态:



var x = 1;
var y = undefined;

if (x) {   // if defined
  console.log("I'm defined");
}
if (!y) {  // if undefined
  console.log("I'm undefined");
}




或者,将变量与类型undefined进行比较,而不是将字符串"undefined"进行比较:



var x = 1;
var y = undefined;

if (x !== undefined) {   // if defined
  console.log("I'm defined");
}
if (y === undefined) {  // if undefined
  console.log("I'm undefined");
}