我有以下代码,我想在其中评估串联,然后检查它是否已定义,
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/