Comments (1)
The example in the book is correct... here's why:
-
The fictional
isGreaterThan(..)
illustration would be for an expression in code like1 > 2
-- which is obviouslyfalse
-- so if it existed it would be called asisGreaterThan(1,2, ..)
, notisGreaterThan(2,1)
as you supposed. -
Since it's fictional, it's instead processed by JS as if the expression in code had been
2 < 1
, thus using theisLessThan(..)
function with the arguments reversed (isLessThan(2,1, ..)
)-- which again is clearlyfalse
. -
The
LeftFirst
doesn't affect the semantics in terms of which argument is treated as less-than or greater-than, here... it controls only which of the two operand values would be computed first; this is in case either computation produced observable side-effects, and it needed to preserve expected "left to right" semantics of JS.
It's important to note that this is all meta (illustrative, not prescriptive) since these abstract operations don't actually exist as real functions to call; moreover, passing a boolean argument to a function as shown wouldn't actually have controlled the order of computation for the other previous arguments being passed.
from you-dont-know-js.
Related Issues (20)
- Js HOT 1
- Yeah but you have the NITDA
- Backward and forward compatibility in Javascript specification HOT 2
- Stale Closure HOT 1
- Get Started - Appendix B: Bug in Proposed Solution HOT 3
- Add simplified Chinese translation to the 2ed HOT 4
- Misspellings detected by `typos` HOT 1
- What's this
- I think the condition in the if statement should be "(new.target === Point2d)" now it is "(new.target === Point2)" HOT 1
- Unable to see images on generated epub HOT 3
- The lexical binding of an arrow-function cannot be overridden (even with `new`!) HOT 4
- Value Type - Primitive HOT 7
- Reordering of "Why Closure?" and "An Alternative Perspective" in the toc HOT 1
- Hint at what coercion is being done HOT 2
- Promise.prototype.finally was introduced in ES2018, not E2019 HOT 1
- Does `module` need quotes? HOT 1
- Copy right policy about teaching your book HOT 2
- Superficial explanation of Modules In Chapter 2 of Book 1 (2nd edition) HOT 4
- `add10To` vs `addTo10` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from you-dont-know-js.