20.02.2012, 20:29
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Mахmахmахimus
|
странно а почему тогда у него тип обьект?
|
На сколько я понял изначально такое поведение было зарезервировано на будущее, а в ES4 обсуждалось как баг.
Однако такое поведение менять не стали, чтобы абстрактно различать что "тут должен возвращаться объект, а тут примитив". Для объекта null, для других значений undefined
Сообщение от FINoM
|
А почему синтаксис такой, что мне обязательно нужно после него поставить что-либо?
|
Я же написал, потому что это унарный оператор! А скобки можно и после return ставить или так +(1)
Последний раз редактировалось monolithed, 20.02.2012 в 20:31.
|
|
20.02.2012, 20:41
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от monolithed
|
Я же написал, потому что это унарный оператор!
|
А для чего он? Нет, серьезно, я не понимаю. Это для получения undefined?
|
|
20.02.2012, 20:45
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от FINoM
|
Это для получения undefined?
|
именно
|
|
20.02.2012, 20:58
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от FINoM
|
Чет не въехал.
|
alert(new Object().__proto__.__proto__); // null
alert(new Function().__proto__.__proto__.__proto__); // null
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 20.02.2012 в 21:01.
|
|
20.02.2012, 21:30
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Сообщение от FINoM
|
А для чего он? Нет, серьезно, я не понимаю. Это для получения undefined?
|
Ну не совсем бесполезно, в некоторых браузерах переменной undefined можно присвоить любое значение.
В наличие null и undefined, можно найти и положительные стороны, например, в некоторых случаях можно будет проверить, была ли инициализирована переменная:
var node;
console.log(typeof node == "undefined"); // → true
function doSomething() {
node = document.getElementById("…");
}
doSomething();
console.log(typeof node == "undefined"); // → false
в IE еще и на unknown можно наткнуться
Последний раз редактировалось Octane, 20.02.2012 в 21:35.
|
|
20.02.2012, 21:44
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от Octane
|
В наличие null и undefined, можно найти и положительные стороны
|
Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?
|
|
20.02.2012, 21:53
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от FINoM
|
Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?
|
Сообщение от monolithed
|
Я же написал, потому что это унарный оператор!
|
В языке многомерных выражений унарные операторы выполняют действия над одним операндом
|
|
20.02.2012, 21:57
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
FINoM,
Ну во первых, потому, что операторы в JS не бывает сами по себе. void - это оператор, ему нужно с чем то работать.
Ну и во вторых, наверно можно делать так, только не знаю зачем
var a = function(){return 1},
b = void a();
То есть принудительно заставить функцию вернуть undefined, снаружи.
П.С. Соврал конечно, бывают break и сontinue, но это из другой области, да и не совсем они сами по себе.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Последний раз редактировалось Nekromancer, 20.02.2012 в 22:03.
|
|
20.02.2012, 22:41
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от monolithed
|
В языке многомерных выражений унарные операторы выполняют действия над одним операндом
|
Унарные операторы выполняют полезные действия, а тут хрен его знает, зачем он.
|
|
21.02.2012, 00:35
|
Профессор
|
|
Регистрация: 10.02.2012
Сообщений: 254
|
|
void нужен для того чтобы сделать какие то действия при том вернуть undefuned
например
function say(){
return void alert('привет!');
}
это некая заглушка блокирующая отвтет от алерта.
чтобы можно было это
function say(){
return alert('привет!');
}
не ибаста превращая в это
function say(){
alert('привет!');
return undefined;
}
voidанг.
недействительный, пустой, лишенныйприл.
пустотасущ.
освобождать, аннулироватьгл.
voidedанг.
освобождать, аннулироватьгл.
voidingанг.
освобождать, аннулироватьгл.
voidsанг.
пустотасущ.
освобождать, аннулироватьгл.
это заставит алерт стрельнуть в холостую и предотвратит его ретурн.
Последний раз редактировалось Mахmахmахimus, 21.02.2012 в 00:38.
|
|
|
|