[英]Can't assign value to undefined variable
我从请求中获取参数。 有时设置了“数字”,有时没有设置。 如果不是,我想将其设置为1,但不起作用
var nombre = parameter.number;
console.log("Nombre : " + nombre);
console.log("Nombre : " + JSON.stringify(nombre));
if(nombre==undefined || nombre ==null || JSON.stringify(nombre)=="")
nombre=1;
console.log(nombre);
这是我在控制台中得到的:
只需使用if(!nombre)
作为条件。 它适用于您要比较的那些:
//for undefined var nombre = undefined; if(!nombre) nombre=1; console.log(nombre); //for null nombre = null; if(!nombre) nombre=1; console.log(nombre); //for '' nombre = ''; if(!nombre) nombre=1; console.log(nombre);
如果为真[1],则JS中的逻辑或运算符( ||
)将返回其左侧的值,否则返回右侧的值。
所以
var nombre = parameter.number || 1;
任何时候parameter.number
都不会被视为true时,将为nombre
赋予值1。
如果您需要专门检查undefined
则需要明确检查undefined
(但实际上,很少要区别对待null
)。
var nombre = parameter.number !== undefined ? parameter.number : 1;
[1] “ Truthy”:JS需要布尔值时将其视为true的值。 例如。 非空字符串"0"
被视为true。
JSON.stringify(nombre) == ""
这种比较是行不通的。 正如您在控制台中看到的那样, nombre
实际上被字符串化为'“”'(包含两个“”的字符串),因此您的比较将失败,因为该字符串不为空(“”)。因此,您实际上想这样做:
nombre === ""
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.