JavaScript plus sign in front of function expression

It forces the parser to treat the part following the + as an expression. This is usually used for functions that are invoked immediately, e.g.: +function() { console.log(“Foo!”); }(); Without the + there, if the parser is in a state where it’s expecting a statement (which can be an expression or several non-expression statements), the … Read more

What are bitwise shift (bit-shift) operators and how do they work?

The bit shifting operators do exactly what their name implies. They shift bits. Here’s a brief (or not-so-brief) introduction to the different shift operators. The Operators >> is the arithmetic (or signed) right shift operator. >>> is the logical (or unsigned) right shift operator. << is the left shift operator, and meets the needs of … Read more

Is there a “null coalescing” operator in JavaScript?

Update JavaScript now supports the nullish coalescing operator (??). It returns its right-hand-side operand when its left-hand-side operand is null or undefined, and otherwise returns its left-hand-side operand. Old Answer Please check compatibility before using it. The JavaScript equivalent of the C# null coalescing operator (??) is using a logical OR (||): var whatIWant = … Read more

What does the ??!??! operator do in C?

??! is a trigraph that translates to |. So it says: !ErrorHasOccured() || HandleError(); which, due to short circuiting, is equivalent to: if (ErrorHasOccured()) HandleError(); Guru of the Week (deals with C++ but relevant here), where I picked this up. Possible origin of trigraphs or as @DwB points out in the comments it’s more likely … Read more

What are the basic rules and idioms for operator overloading?

Common operators to overload Most of the work in overloading operators is boiler-plate code. That is little wonder, since operators are merely syntactic sugar, their actual work could be done by (and often is forwarded to) plain functions. But it is important that you get this boiler-plate code right. If you fail, either your operator’s … Read more

Why don’t Java’s +=, -=, *=, /= compound assignment operators require casting?

As always with these questions, the JLS holds the answer. In this case §15.26.2 Compound Assignment Operators. An extract: A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T)((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once. An example cited from §15.26.2 […] the following code is … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)