Зауважте що деякі хаки можуть працювати не коректно з деякими значеннями або у деяких браузерах.
обмін значень між двома зміними
Обмін значень між двома зміними за допомогою деструктуризаційного виразу.
var a='"A"', b='"B"'; [a,b]=[b,a]; alert('a= '+a+', b= '+b);
&& замість if
Оператор && можна використовувати замість if.
var x=true; x && alert('x==true'); //if(x) alert('x==true')
Використання оператора !! для конвертації значення у логічний тип
Якщо необхідно конвертувати значення у логічний тип даних Bolean можна скористатися оператором !!
var s = 'text'; var b = !!s; alert(b);
Конвертація в число за допомогою +
Якщо необхілно конвертувати значення у число можна використати оператор +
var s='16'; var n=+s; alert(n); alert(typeof n);
Оператор + має один недоліки перед методом parseInt() так як рядок "12 text" оператор + поверне NaN.
var s="12 text"; var p=+s; var n=parseInt(s); alert('оператор +: '+p+' метод parseInt: '+n);
|| як значення по замовчуванню
Використання оператопа || для значення по замовчуванню для аргумента функції.
function test(a){ a=a || 2; alert(a); } test(); test('test');
Слід зауважити в такому випадку не можливо передати значення 0:
function test(a){ a=a || 2; alert(a); } test(0);
void 0 замість undefined
Використання void 0 для отримання значення undefined. Так як undefined можна змінити у ES5 (ECMAScript 5) оголосивши зміну з назвою undefined, тоді доцільно використовувати void 0.
alert(void 0 == undefined); //true
//тільки для ES5 var undefined='test'; var a; if(a==undefined) alert('зміна a не містить значення'); else alert('зміна a містить значення: '+a);
Використання ~~ для отримання цілої частини від числа, як метод Math.trunc()
var x=2.5; var y = ~~x; alert(y); //2