https://github.com/jiasm ,热爱生活。 获得徽章 11
我大概总结出为什么好程序员和烂程序员不一样了,有些程序员就是「眼里没活儿」,一个代码复制两遍复制三遍复制十遍,他愣是不知道有什么需要优化的。
「每天一点点🕐」【优先级与求值顺序无关】
🌰例子:true || true && fn() 这个表达式的值是多少,函数fn 会被执行吗?
❓看到上述表达式,第一反应是 “逻辑或||” 是短路操作符,因此答案是true,且 函数fn 不会被执行;如果混合了奇怪的概念,比方说 “逻辑与&&” 优先级高于 “逻辑或||”,应该先执行 true && fn(),所以会执行 函数fn,那么事情就变得奇怪了。
📚“逻辑与&&”、“逻辑或||” 都是短路操作符,“逻辑与&&” 优先级高于 “逻辑或||”,这两个概念都是正确的。
但是优先级高不代表优先运算。优先级是结合的优先级,即谁和谁一组;组了队不代表优先运算,运算顺序还是按照从左到右来的,因此上述表达式等同于 true || ( true && fn() )
关于短路操作符:
“逻辑与&&”、“逻辑或||”都是短路操作符。当“逻辑或||”左边的值是 true 的时候,就会直接返回结果 true,后续代码不会被执行;当“逻辑与&&”左边的值是 false 的时候,就会直接返回结果 false,后续代码不会被执行。
lolcat:可以为你的 Linux 终端带来彩虹,使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。GitHub 地址:github.com
掘金终于比阮老师的网站要靠前一点点了,也终于进入中国前 500 了,谢谢各位掘友