稳重的铁链 · 汲取9.11经验教训,深化国际抗疫合作_中华 ...· 5 天前 · |
正直的大蒜 · 广州白云站、汕汕高铁同日开通 ...· 1 周前 · |
机灵的手电筒 · 中国能建葛洲坝国际公司签约乌干达500兆瓦光 ...· 1 月前 · |
完美的莴苣 · 英国人高冷?因为你不了解他们的礼仪和习俗.. ...· 2 月前 · |
慈祥的黄瓜 · 北大清华暑期限游-中国教育和科研计算机网CE ...· 2 月前 · |
如果变量 age 中的值小于 18,则向变量 voteable 赋值 "年龄太小",否则赋值 "年龄已达到"。
function test(p){ var a=5,b=12; return p>1?p<b?p>b:p=6:p=3; // 这一行中出现了多个问号和冒号,看起来很乱怎么办呢 document.write(test(9));其实很简单,寻找到多元运算符的头 ? 和尾 : 就好办多了 就成了这样:
p>1?p<b?p>b:p=6:p=3 p>1? 整体 :p=3
1、当 p>1 时返回 p<b?p>b:p=6
3、实例中当 p=9 的时候,返回 p<b?p>b:p=6 接着执行 1.1,当 p=9<12 时,返回 p>b,即 9>12,条件不成立所以最终结果为 false。
Answer
ans***912@outlook.com
大瓜饼
154***5273@qq.comn
逻辑运算符用于测定变量或值之间的逻辑。除了常用的返回布尔值,也可以利用运算符的逻辑来获得我们想要的数字或枚举变量:
0||3 : 3 1||3 : 1 0&&3 : 0 1&&3 : 3
不难理解在这里 0 即为 false , >=1 的变量为 true, 并没有去“运算”数字,而只是根据与或的逻辑依靠布尔值来返回对应的变量。
大瓜饼
154***5273@qq.comn
笑醉踏歌
750***319@qq.com
首先说一下,其他数据类型转换为布尔类型的规则: null、undefined、0、NaN、空字符串 转换为 false ,其他转化为 true 。
JavaScript 中有三种逻辑运算符:
首先把数据转化为布尔值,然后取反,结果为 true 或 false。
<script type="text/javascript"> var a = [1,2,3]; var b = "hello"; var obj = new Object(); var d; console.log(!""); //true console.log(!d); //true console.log(!a); //false console.log(!b); //false console.log(!obj); //false </script>
JavaScript 中逻辑与和其他语言不太一样,如果第一个操作数是 true(或者能够转为 true),计算结果就是第二个操作数,如果第一个操作数是 false,结果就是 false(短路计算),对于一些特殊数值不遵循以上规则。(个人理解为:如果运算的第一个操作数为true,则返回第二个操作数,反之则返回第一个操作数)
<script type="text/javascript"> var a = [1,2,3]; var b = "hello"; var obj = new Object(); var d; console.log(true && 10); //第一个操作数是true,结果是第二个操作,也就是10 console.log(false && b); //第一个操作数是false,结果flase console.log(100 && false); //第一个操作数是100,结果flase console.log(undefined && false); //第一个操作数是undefined,结果undefined console.log(NaN && false); //第一个操作数是NaN,结果NaN console.log(null && false); //第一个操作数是null,结果null console.log('' && false); //第一个操作数是空串,结果空串 console.log(0 && 100); //结果是0 console.log(5 && 100); //100 console.log(a && b); //hello console.log(obj && 200); //200 </script>
如果第一个操作数不是 false,结果就是第一个操作数,否则结果是第二个操作数。如果第一个操作数能够转为 true,结果就是第一个操作数(个人理解为:如果运算的第一个操作数为 true,则返回第一个操作数,反之则返回第二个操作数)
<script type="text/javascript"> var a = [1,2,3]; var b = "hello"; var obj = new Object(); var d; console.log(true || 10); //第一个操作数是true,结果是第一个操作,也就是true console.log(false || b); //第一个操作数是false,结果是第二个操作数b console.log(100 || false); //第一个操作数是100,结果100 console.log(undefined || 9); //第一个操作数是undefined转false,结果9 console.log(NaN || false); //第一个操作数是NaN转false,结果第二个操作数 console.log(null || a); //第一个操作数是null转false,结果a console.log('' || false); //第一个操作数是空串转false,结果第二操作数 console.log(0 || 100); //结果是100 console.log(5 || 100); //5 console.log(a || b); //a console.log(obj || 200); //obj </script>
衍魔梵
yin***san@foxmail.com
木华
871***948@qq.com
jishux2
jis***2@outlook.com
JavaScript中有两种相等运算符:
==
和
===
。它们的比较规则如下:
==
是
抽象相等
运算符,它会在比较之前,尝试将两个操作数转换成相同的类型,然后再比较它们的值是否相等。例如,
1 == "1"
会返回true,因为字符串"1"会被转换成数字1,然后再比较。
===
是
严格相等
运算符,它不会进行类型转换,而是直接比较两个操作数的类型和值是否完全相同。例如,
1 === "1"
会返回false,因为数字1和字符串"1"的类型不同,就算它们的值相同也不会返回true。
一般来说,建议使用
===
来进行比较,因为它可以避免一些意想不到的结果,例如:
null == undefined
会返回true,但是
null === undefined
会返回false。
0 == false
会返回true,但是
0 === false
会返回false。
NaN == NaN
会返回false,但是
NaN === NaN
也会返回false。
抽象相等 运算符在尝试将两个操作数转换成相同的类型时,会遵循以下的规则:
例如:
"1" == true
会返回true,因为true会转换成1,然后字符串"1"也会转换成1,所以两个1相等;同理,
"0" == false
也会返回true
[1,2,3] == "1,2,3"
会返回true,因为数组会调用toString()方法返回字符串"1,2,3"。
[1,2,3] == [1,2,3]
会返回false,因为它们是两个不同的数组对象。