javascript - 我无法检查评估的变量是否处于未定义状态

标签 javascript eval

我有以下代码,我想在其中评估串联,然后检查它是否已定义,

var image1="images/pic1.png";
var image2="images/pic2.png";
var image3="images/pic3.png";
var image4="images/pic4.png";
/*
var image5="";
var image6="";
var image7="";
var image8="";
var image9="";
var image10="";
var image11="";
var image12="";
*/

var imageLink;
var count=12;

for (i=0;i<count;i++){

    var imageLink=eval("image"+(i+1));

    if (typeof imageLink === "undefined"){
        alert("imageLink is undefined");
        imageLink="";
    }

所以最后一 block 不起作用。

最佳答案

var images = [];

images.push( 'images/pic1.png' );
images.push( 'images/pic2.png' );
images.push( 'images/pic3.png' );
images.push( 'images/pic4.png' );

var imageLink = '';

for ( i=0; i<images.length; i++ ){

    imageLink = images[ i ];

    if ( !imageLink ){
       alert( 'imageLink is undefined' );
       imageLink = '';
    }
}

按照评论中的建议,将数据放在数组中,然后循环遍历 for 上的每个元素,这样您的代码会变得更干净,并且不必执行 eval。

关于javascript - 我无法检查评估的变量是否处于未定义状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978430/

相关文章:

javascript - 如何使用工具提示形式的纯 javascript 在 Canvas 上显示鼠标坐标?

javascript - 此场景中的 xhr 错误事件对象详细信息是什么?

c# - 将 Eval ("bitValue") 转换为 Bool

javascript - 尝试理解 JavaScript eval 的输出,它进行字符串解析

javascript - 浏览器如何读取全局网站标记 JavaScript (gtag.js)

javascript - jquery 可拖放更改捕捉

javascript - 小部件 - Iframe 与 JavaScript

javascript - 代码执行的时间限制

php - PHP eval(array_as_string)返回null

javascript - 在 Eval 中设置变量 (JavaScript)