为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码最终结果是true,false,true,哪位大佬帮我解释一下怎么出来的


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script>

var d= 3>(1>2);
document.write(d);
document.write("<br>");
var e= 3<(6>2);
document.write(e);
document.write("<br>");
var f="张飞"<"李白";
document.write(f);

</script>
<body>
</body>
</html>

正在回答

4 回答

汉字比较是通过unicode比较的,可以测试“张”和“李”的unicode编码分别为多少,var z="张".charCodeAt();var l = "李".charCodeAt(); 可以得出z=24352,l=26446,z(24352)<(26446),所以张<李,已经得出结果,所以“飞”和“白”不用再进行比较。则得出最终结果“张飞”<“李白”。

1 回复 有任何疑惑可以回复我~

来来来,已老夫30多年写代码的经验来告诉你这个小白。

首先你要搞清楚真与假这个概率,首先true是真,false是假。。同时真也代表1,假就代表0。(回顾一下课程就明白)

第一个 var d = 3>(1>2) 这其实就是一道小学生都会做的运算,有括号的我们就先算括号里面的嘛,括号里面你看一下1>2是真还是假? 肯定是假对不对,同时我刚才也说了假是不是就是等于0,所以再拿3>0,所以这样你输出来是不是就是真,也就是true

第二个跟第一个同理

第三个,这里面对比的就是编码值了,因为是中文。每个汉字其实在计算机里面都有个编码值:打个比方‘爱’这个字的编码值是2000,‘我’这个字的编码值是1500.。那'爱'>'我'比较那肯定就是true。。(具体每个汉字对应的编码值可以上百度搜索)

如果听懂了,希望采纳。谢谢


20 回复 有任何疑惑可以回复我~
#1

bestMan

你好,我百度了下张飞大于李白的编辑码,楼主代码片段中: 张飞 < 李白,不应该是false么, 怎么比的呀,难道是看两位数么? 张:5337 飞:2341 李:3278 白:1655
2019-05-12 回复 有任何疑惑可以回复我~
#2

走馬勿观花

传说中,年龄20,30年的大佬吗 ←_←
2020-03-15 回复 有任何疑惑可以回复我~

在js做比较的时候,有这样的三条规则:

1.如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1

2.如果比较的双方中有一方为number一方为string,会把string转换为数字

3.把string直接转换为bool的时候,空字符串‘'转换为 false,除此外的一切字符串转换为 true


1 回复 有任何疑惑可以回复我~

似乎true是1,false是0。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这段代码最终结果是true,false,true,哪位大佬帮我解释一下怎么出来的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信