Javascript 为什么此代码不能按预期工作?
//当您使用此选项时,我希望得到值3:Javascript 为什么此代码不能按预期工作?,javascript,boolean,ternary-operator,Javascript,Boolean,Ternary Operator,//当您使用此选项时,我希望得到值3: let x; console.log("shubham" == true ); // gives false "shubham" ? x=2 : x=3; console.log(x); // gives 2, so "shubham" must be true? "shubham" == 1 在比较之前,true变为1,因此实际比较为 "shubham" == true 所以,它给出了错误的答案 这本书: Boolean("shubham")
let x;
console.log("shubham" == true ); // gives false
"shubham" ? x=2 : x=3;
console.log(x); // gives 2, so "shubham" must be true?
"shubham" == 1
在比较之前,true变为1,因此实际比较为
"shubham" == true
所以,它给出了错误的答案
这本书:
Boolean("shubham")?x=2:x=3
执行转换时,后面跟着相等运算符和不相等运算符
这些基本规则:
如果操作数是布尔值,请将其转换为
检查相等性之前的数值。值为false的值
值转换为0,而true值转换为1
如果一个操作数是字符串,另一个是数字,请在检查是否相等之前尝试将字符串转换为数字
使用此选项时:
let x;
console.log("shubham" == true ); // gives false
"shubham" ? x=2 : x=3;
console.log(x); // gives 2, so "shubham" must be true?
"shubham" == 1
工作原理如下:
"shubham" ? x=2 : x=3;
所以,它给你x=2
这本书:
Boolean("shubham")?x=2:x=3
这基本上允许对变量进行条件赋值,具体取决于
关于布尔_表达式的求值。如果这是真的,那么
将true_值指定给变量;如果是假的,那么
将false_值指定给变量
这本书:
Boolean("shubham")?x=2:x=3
面向Web开发人员的专业JavaScript.3.Edition.2012年1月
使用此选项时:
let x;
console.log("shubham" == true ); // gives false
"shubham" ? x=2 : x=3;
console.log(x); // gives 2, so "shubham" must be true?
"shubham" == 1
在比较之前,true变为1,因此实际比较为
"shubham" == true
所以,它给出了错误的答案
这本书:
Boolean("shubham")?x=2:x=3
执行转换时,后面跟着相等运算符和不相等运算符
这些基本规则:
如果操作数是布尔值,请将其转换为
检查相等性之前的数值。值为false的值
值转换为0,而true值转换为1
如果一个操作数是字符串,另一个是数字,请在检查是否相等之前尝试将字符串转换为数字
使用此选项时:
let x;
console.log("shubham" == true ); // gives false
"shubham" ? x=2 : x=3;
console.log(x); // gives 2, so "shubham" must be true?
"shubham" == 1
工作原理如下:
"shubham" ? x=2 : x=3;
所以,它给你x=2
这本书:
Boolean("shubham")?x=2:x=3
这基本上允许对变量进行条件赋值,具体取决于
关于布尔_表达式的求值。如果这是真的,那么
将true_值指定给变量;如果是假的,那么
将false_值指定给变量
这本书:
Boolean("shubham")?x=2:x=3
面向Web开发人员的专业JavaScript.3.Edition.2012年1月
是的,这是由于Javascript中“if”语句背后的底层代码造成的。它依赖于将if语句的条件转换为布尔值的方法“ToBoolean”。任何非空字符串都将转换为true。因此,您为什么会得到上述逻辑 是的,这是由于Javascript中“if”语句背后的底层代码造成的。它依赖于将if语句的条件转换为布尔值的方法“ToBoolean”。任何非空字符串都将转换为true。因此,您为什么会得到上述逻辑 这不是真的,这是真的。这不是真的,这是真的。