Цитата:
Ну добавили классы и какие-то нелепые абстракции (недоразвитый Java :D). Современные языки стремятся к синтаксическому минимализму и наличию удобных модулей, а тут хз где хоть какая-то фишка? PS: ну это мне так показлось, если кто-то глубже копнул, интересно послушать контраргументы |
я в общем-то уже высказывался (предпоследний абзац), но ты наверное читал
|
x-yuri,
на http://wtfjs.com/ не понял сути. там типа вещи которые работают не как ожидается? Но я понимая как работает js ожидал все эти вещи. что в них ВТФ? типа не интуитивно? |
да уж, с js ожидать можно чего угодно...
1) ожидаемость для js-программиста != ожидаемость для программиста 2) с чего это ты вдруг ожидал -Infinity от Math.max()? Или typeof null == 'object' но я там в первую очередь говорил не про wtf'ки... |
Цитата:
Цитата:
|
http://wtfjs.com/2010/11/10/false-advertising Что за нах?
|
FINoM, там же сказано
Цитата:
|
B@rmaley.e><e, это ничего не объясняет.
|
FINoM,
Это нормально. Включим логику, приметив не может быть прототипом и по этому его нельзя вернуть из функции-конструтора. |
Nekromancer, а почему есть возможность что-либо вернуть в функции-конструкторе через return?
|
Я к тому, что это попахивает бредом.
|
Цитата:
|
Объясните плиз смысл void в JS. Обычно это функция, которая ничего не возвращает. Но для чего она в JS?
void(); //SyntaxError: Unexpected token ) void; //SyntaxError: Unexpected token } (???) var void = function(){} //SyntaxError: Unexpected token void void 0; //undefined void 999; //undefined void function(){}; //undefined |
typeof null // object null instanceof Object // falseБлеать! |
void 0 ничего не возвращает. В данном случает ничего, это undefined.
|
Цитата:
Object instanceof null // true но оно не так :) |
Цитата:
|
Цитата:
Цитата:
alert({}.toString.call(null)); Как видно null имеет тип Null , который в свою очередь относится к примитивам (4.3.2 primitive value) Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Однако такое поведение менять не стали, чтобы абстрактно различать что "тут должен возвращаться объект, а тут примитив". Для объекта null, для других значений undefined Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
alert(new Object().__proto__.__proto__); // null alert(new Function().__proto__.__proto__.__proto__); // null |
Цитата:
В наличие null и undefined, можно найти и положительные стороны, например, в некоторых случаях можно будет проверить, была ли инициализирована переменная: var node; console.log(typeof node == "undefined"); // → true function doSomething() { node = document.getElementById("…"); } doSomething(); console.log(typeof node == "undefined"); // → false в IE еще и на unknown можно наткнуться :D |
Цитата:
undefined = void 'bljad'; — типа для этого? |
Цитата:
Цитата:
|
FINoM,
Ну во первых, потому, что операторы в JS не бывает сами по себе. void - это оператор, ему нужно с чем то работать. Ну и во вторых, наверно можно делать так, только не знаю зачем var a = function(){return 1}, b = void a(); То есть принудительно заставить функцию вернуть undefined, снаружи. П.С. Соврал конечно, бывают break и сontinue, но это из другой области, да и не совсем они сами по себе. |
Цитата:
|
void нужен для того чтобы сделать какие то действия при том вернуть undefuned
например function say(){ return void alert('привет!'); } это некая заглушка блокирующая отвтет от алерта. чтобы можно было это function say(){ return alert('привет!'); } не ибаста превращая в это function say(){ alert('привет!'); return undefined; } voidанг. недействительный, пустой, лишенныйприл. пустотасущ. освобождать, аннулироватьгл. voidedанг. освобождать, аннулироватьгл. voidingанг. освобождать, аннулироватьгл. voidsанг. пустотасущ. освобождать, аннулироватьгл. это заставит алерт стрельнуть в холостую и предотвратит его ретурн. |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 19:57. |