如果变量存在...对象与变量,null与未定义
If variable exists.....object vs variable, null vs. undefined
这个脚本的第一部分似乎工作正常,它遍历每个文档,如果文档名称与特定的正则表达式模式匹配,它会为它提供一个特定的变量,以便稍后在脚本中使用。
然而,在脚本的最后,当我试图判断一个变量是否作为if语句的条件存在时,结果并不像预期的那样为true或false。我在这里做错了什么?
// iterate through all docs assigning variables to templates and art
for (i = 0; i < documents.length; i++) {
var curDoc = app.activeDocument = app.documents[i];
var curDocNoExt = curDoc.name.split(".");
var workingName = curDocNoExt[0];
if (workingName.match(/^'d{5,6}$/) != null) {
var frontArt = app.documents[i];
var targetName = frontArt.name
} else {
if (workingName.match(/^'d{5,6}(b))$/) != null) {
var backArt = app.documents[i];
var backToggle = 1;
} else {
if (workingName.match(/^fkeep$/) != null) {
var frontTemp = app.documents[i];
} else {
if (workingName.match(/^fxkeep$/) != null) {
var frontSquare = app.documents[i];
} else {
if (workingName.match(/^bkeep$/) != null) {
var backTemp = app.documents[i];
} else {
if (workingName.match(/^bxkeep$/) != null) {
var backSquare = app.documents[i];
}
}
}
}
}
}
}
//use variables to do stuff!
if (backArt != null) {
app.activeDocument = backTemp;
var namedBackTemp = backTemp.duplicate(targetName + "B");
}
在javascript中,undefined
是false,因此您可以在if
语句中使用如下变量:
var var1 = '', // can be anything
var2; // this is an undefined var
if (var1){ // var1 has been initialized so this evaluates to true
doSomething(); // this will execute
}
if (var2){ // var2 is undefined, so it evaluates as false
doSomethingElse(); // this will not execute
}
然而,更好的做法是使用typeof
,它返回对象类型的字符串:
var var1 = '';
var var2 = {};
typeof var1 == 'string';
typeof var2 == 'object';
typeof var3 == 'undefined';
if (typeof var1 !== 'undefined'){
doSomething(); // this gets executed because var1 is a string
}
希望这能让你更好地理解
相关文章:
- 来自文本输入null的html javascript变量
- 全局Javascript变量变为null
- 如何在JavaScript中检查变量是否为null和/或未定义
- Javascript将变量作为null传递
- 如果为null,则设置javascript变量的值
- 如果JS会话变量为null,如何避免500内部服务器错误
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- 使用clearInterval方法实现的是将区间变量引用设置为null,而不是
- 若字符串为null,则通过启发式方法无法访问代码,将null赋值给变量
- 从ajax到控制器返回的变量为null
- 在javascript中测试变量是否为null,而不会导致未定义的错误
- 检查 JS 变量是否不为 null 和 true
- Javascript 私有变量除非先设置为 null,否则不起作用
- 在 javascript 中访问 js 变量时无法读取 null 的属性“值”
- 这是检查变量是否被定义的最佳方法,而不是 null 并等于 “” 或其他任何内容
- 当变量的数据类型在 javascript 中为 'Null'
- 在 javascript 中声明变量时,默认值为 null
- 设置JavaScript变量= null,或者不定义
- 是否可以使用变量!= null而不是变量!== undefined &&== null
- Javascript变量null错误