Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么此代码不能按预期工作?_Javascript_Boolean_Ternary Operator - Fatal编程技术网

Javascript 为什么此代码不能按预期工作?

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")

//当您使用此选项时,我希望得到值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")?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。因此,您为什么会得到上述逻辑

这不是真的,这是真的。这不是真的,这是真的。