- 主题:[转载]滚进来学习 js
最后那个 0 == false 的例子确实是js相关的,不是蠢问题。
在js标准里==操作符的算法基本就是查表,规则可以有逻辑性,也可以没有逻辑性。每一种情况都是当特例处理的。从你的描述看,估计你误以为0==false是把false隐式转换成了number再比较。实际上不是这样的。js标准看到左边是number右边是boolean,就去规则库里找到量相应的规则:“number和boolean在==比较时,把false当0再比”,并执行的。
换个说法:0==false之所以结果是true,并不是像c那样根据优先级cast然后根据语义算出来,纯粹是因为js发明人选择了true。
btw他还选择了0===false结果是false。。
【 在 eGust (十年) 的大作中提到: 】
: 因为不是做完一道题出答案,而是全做完了再出,而且选完之后不能退回去,所以个人建议做题之前先体验一下都有哪些蠢问题。
: 0.1 + 0.2 == 0.3
: 1/0 跟 Infinity 做比较
: 0/0
: NaN == NaN
: !!true
: 逗号表达式 (m, n) 的结果
: 1 + true
: 0 == false
: 一共25道题,这类蠢问题没有一半也有1/3了,而且好几道题实际上是重复的。3天前刚做过,细节可能会有出入。
: 这些问题基本上拿到任何一门支持浮点数的语言,支持 bool 转换成 int 类型的语言里都是完全一样的,看到 !!true 的时候简直辣眼睛。反正我做完之后是觉得后悔的,在一个小白出的题上面浪费了许多时间。
--
FROM 101.84.136.*
你这个逻辑就和“因为现在有了idea,java就不是开发效率低的语言”一样啊。
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 老鱼总是喜欢拿js早年的那些弱智历史来说事儿,这说明他对前端现状不了解。自从cd写了 good parts一书并发明了lint以来,到现在,eslint已经是标配了,现代es加eslint,是一门设计水平很好的几乎接近于python的好语言。再加上ts,可能在某些方面已经可以超过python了。
: 一个底子非常差、长期以来的设计决策机制又是扯皮不休的委员会制(tc39的feature讨论远远不如其他有核心主导者的语言的feature讨论效率)的语言,能发展到现在这个状态,已经是很不容易了。
: 至于黑async await,根据之前的讨论,他是基本对async await压根没咋用过也不了解用法,所以,咳咳
: ...................
--
FROM 101.84.136.*
哈哈哈哈。。。
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: 喂,有一说一java的开发效率不能说低吧
--
FROM 101.84.136.*