Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var a = function () {}
a.prototype.b = 100;
alert((new a()).b);var a=function(){}a.prototype.b=100;alert((new a()).b);var a=function(){};a.prototype.b=100;alert((new a()).b);
if (window)
window.a = 100;
else
a = 100;
b = 100на выходе все верноif(window){window.a=100}else{a=100}b=100;var arr = [
'vasia',
'petya',
];
var arr = [
'vasia',
'petya',
null
];
var a = 1
,b = 2
,c = 3
,d = 4
;
$('#button')
.css('color', 'red')
.click(onbuttonClick)
.animate({width: '150px'})
;
var a = {
b: function () {
if () {
}
}
}
Их наверно одна конструкция function (){if(){}} сводит с ума :) Все современные компрессоры заставляют программистов писать хороший JavaScript код: ставить везде; и везде использовать {}. Так что не нужно винить компрессоры они делают хорошую работу. Я понимаю вашу привычку, но и вы уважайте этот дополнительный язык, его программистов, которые возможно будут читать ваш код и его тон хороших скриптов.if(a) a=100 else b=200, что очень напрягает меня и многих JavaScript программистов. Многие вешают на JavaScript тег «Дополнительный язык» — могу писать как хочу. У вас хороший подход к языкам, комментарий полностью разъяснил мне вашу позицию.def test( a ):
if type( a ) != str or a[ 0 ] == '0' :
return False
return a[::-1]def test( a ):
if a is None \
or type( a ) != str \
or a[ 0 ] == '0' :
return False
return a[::-1]i
++
j
b=(a=[0,1,2][0,1,2])?
!!~~++a+1..toString
(void(a))
:(c=eval)
('alert("42")');a будет равно [0,1,2][2], следовательно 2, следовательно правый код тернарного оператора (alert("42")) не выполнится. разбираем левую часть. в toString аргументы никакие не передаются, потому void(a) это просто шум. ~~ равносильно parseInt. 1. равносильно 1.0 или (1).!!(parseInt(++a + 1).toString());
(!!parseInt(++a)) + ((1).toString());
!!(parseInt(++a) + ((1).toString()));
!!parseInt(++a + (1).toString());
(!!parseInt(++a)) + ((1).toString());
parseInt("12px") → 12
~~"12px" → NaN
var o = {toString: function(){return "5";}, valueOf: function(){return 3;}};
parseInt(o) → 5
~~o → 3var one = {}var two = 1var one = {}var two = 1Я тут проводил раскопки и обнаружил странный артефакт:
a = b + c
;(d + e).print()Не надо так писать, в JS есть специально предназначенный для этого оператор:
a = b + c
void (d + e).print()
Всё, что надо знать о точке с запятой