Ternary
The ternary operator makes for a shorthand if ... else
condition : if true do this ? else to this
For example the following if ... else
:
var myWeight = 120; var msg = ""; if(myWeight > 80){ msg = "big"; }else{ msg = "small"; }
… can be done with the ternary operator with:
var myWeight = 120; var msg = (myWeight > 80) ? "big" : "small";
Waltzing (m)tilde ~
The little used tilde character ~
is a bitwise operator that works right down on the bits – that is the zeros and ones.
The tilde reverses the order of the bits. The logic is ~N is -(N+1).
var myNum = 10; myNewNum = ~myNum; // myNewNum = -11
Running a variable through another tidle ie ~~
will switch the bits back to their original order.
But if you run a boolean false
or true
through a double tilde ~~
it has the effect of changing the value into an integer 0 or 1.
var myWeight = 120; document.getElementById('display').innerHTML = ~~(myWeight > 80);
Math with Modulus %
Modulus %
will return the remainder of a division, and subsequently zero if the number is divisible by an integer.
12 % 5 = 2 10 % 5 = 0 104 % 100 = 4
Any number below the number to be divided will always return a value equal to itself. As the number will go into the number to be divided zero times and then what is left is the remainder. So:
1 % 10 = 1 2 % 10 = 2 7 % 10 = 7 8 % 10 = 8 9 % 10 = 9
… but
10 % 10 = 0
This is a useful way to keep track of whether an incrementing value has hit the top target value.
for(var i=0; i<15; i++){ if((i % 10) === 0){ document.getElementById('display').innerHTML = i; } }