Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Смишных картинок тред (https://javascript.ru/forum/offtopic/35821-smishnykh-kartinok-tred.html)

Gozar 05.12.2013 19:07

Цитата:

Сообщение от cyber
П.с А ЗАПРЕТИТЬ макакиусу ПОСТИТЬ

тут нужно поставить точку. :)

Maxmaxmaximus3 05.12.2013 19:15

Цитата:

Сообщение от Maxmaxmaximus3
ретурн не принимает блоки, по этому будет синтаксическая ошибка.
а так, блок возвращает результат последнего выполненного выражения


Цитата:

Сообщение от Arramis
что значит ретурн не принимает блоки ???


Цитата:

Сообщение от Maxmaxmaximus3
это как ретурн принимает блоки, только наоборот, глупенький =)



Цитата:

Сообщение от Maxmaxmaximus3
и если честно то я считаю это ошибкой, то что нельзя присваивать блоки. эта ошибка возникла тупо из за неоднозначности при парсинге. вот и все. в самой логике экмы такое не запрещено, блок это как запятая только круче:

return 1,2,3; вернет 3;
return {1+2; 3+4}; должно по идее вернуть 7 но парсер думает что мы декларируем обьект и кидает ошибку =)

Я считаю это глупостью, и я считаю что ни какой неоднозначности нет, парсер способен отличить декларацию обьекта от блока =) по крайней мере я бы сделал такой парсер.


Цитата:

Сообщение от Arramis
извини, но я твой инопланетный язык не понимаю вообще ни в какую, как может ретурн что то принимать ??? это интструкция для возврата результата(в js любое корректное выражение) выполнения функции. return означает возвращать а не принимать.

АХАХАХАХХААХАХХХХАХАХАХАХ АхАХХАХахАхахАххАХАХАХАХ ГЕНИАЛЬНЫЙ ПАРЕНЬ!

Maxmaxmaximus3 05.12.2013 19:41


l-liava-l 05.12.2013 20:12

Цитата:

return {1+2; 3+4}; должно по идее вернуть 7 но парсер думает что мы декларируем обьект и кидает ошибку =)
Вот нафига, нафига возвращать результат последнего выражения в блоке? тебе просто так хочется или видишь профит?;)

Maxmaxmaximus3 05.12.2013 20:26

l-liava-l, а при чем тут я)? чувак тему же создал в общем разделе я ему и отвечаю =)

Цитата:

Сообщение от l-liava-l
Вот нафига, нафига возвращать результат последнего выражения в блоке?

а нафига запятая возвращает результат того что справа от неё? =)


вообще профит от этого такой что если бы я захотел реализовать штуку чтобы функции возвращали результат последнего выражения и чтобы return был бы не обязательный, тогда бы я сделал так

function say(){ 1+2 }

я брал бы тело этой функции и оборачивал его в блок
function say(){ return{1+2} }

Maxmaxmaximus3 05.12.2013 21:40



ИБО ДОСТАЛО!!!! ДАВНО НАДО БЫЛО ИХ НАПИСАТЬ

Shaci 05.12.2013 22:22

Цитата:

Сообщение от Maxmaxmaximus3 (Сообщение 284832)


ИБО ДОСТАЛО!!!! ДАВНО НАДО БЫЛО ИХ НАПИСАТЬ

Начнем с первой проверки: а если в другом фрейме объект был создан?

Shaci 05.12.2013 22:39

и нахера писать void 0? если можно undefined написать, это дешевые понты максимуса, или за этим скрыта какая-то магия? (может я чего-то не понимаю)

nerv_ 05.12.2013 22:59

alert(typeof NaN === 'number');

https://github.com/nervgh/nervgh.git.../js/egc/egc.js
http://nervgh.github.io/pages/tests/

Maxmaxmaximus3 05.12.2013 23:19

Цитата:

Сообщение от Shaci
Начнем с первой проверки: а если в другом фрейме объект был создан?

мне лень пилить реализацию Array.isArray я только для пикчи накатал это, а так спасибо)
nerv_, блин я для пикчи накатал по быстрому а этот касяк не заметил, isNaN же, так бы и поймал баг)

пофиксил

function likeArray(item) {
    return item && typeof item === "object" && item.length >= 0 && item.length === Math.floor(item.length)
}
function isArray(item) { return item instanceof Array || (likeArray(item) && item.constructor.name === 'Array' ) }
function isEmpty(item) { return !item || !item.length }
function isFunction(item) { return typeof item === 'function'}
function isBoolean(item) { return typeof item === 'boolean'}
function isNumber(item) { return !isNaN(item) && typeof item === 'number'}
function isString(item) { return typeof item === 'string'}
function isObject(item) { return typeof item === 'object'}
function isUndefined(item) { return item === void 0}
function isNull(item) { return item === null}


Часовой пояс GMT +3, время: 06:26.