Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 20.02.2012, 20:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Mахmахmахimus
странно а почему тогда у него тип обьект?
На сколько я понял изначально такое поведение было зарезервировано на будущее, а в ES4 обсуждалось как баг.
Однако такое поведение менять не стали, чтобы абстрактно различать что "тут должен возвращаться объект, а тут примитив". Для объекта null, для других значений undefined

Сообщение от FINoM
А почему синтаксис такой, что мне обязательно нужно после него поставить что-либо?
Я же написал, потому что это унарный оператор! А скобки можно и после return ставить или так +(1)

Последний раз редактировалось monolithed, 20.02.2012 в 20:31.
Ответить с цитированием
  #62 (permalink)  
Старый 20.02.2012, 20:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от monolithed
Я же написал, потому что это унарный оператор!
А для чего он? Нет, серьезно, я не понимаю. Это для получения undefined?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #63 (permalink)  
Старый 20.02.2012, 20:45
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от FINoM
Это для получения undefined?
именно
Ответить с цитированием
  #64 (permalink)  
Старый 20.02.2012, 20:58
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 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.
Ответить с цитированием
  #65 (permalink)  
Старый 20.02.2012, 21:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 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.
Ответить с цитированием
  #66 (permalink)  
Старый 20.02.2012, 21:44
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Octane
В наличие null и undefined, можно найти и положительные стороны
Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #67 (permalink)  
Старый 20.02.2012, 21:53
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от FINoM
Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?
Сообщение от monolithed
Я же написал, потому что это унарный оператор!
В языке многомерных выражений унарные операторы выполняют действия над одним операндом
Ответить с цитированием
  #68 (permalink)  
Старый 20.02.2012, 21:57
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 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.
Ответить с цитированием
  #69 (permalink)  
Старый 20.02.2012, 22:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от monolithed
В языке многомерных выражений унарные операторы выполняют действия над одним операндом
Унарные операторы выполняют полезные действия, а тут хрен его знает, зачем он.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #70 (permalink)  
Старый 21.02.2012, 00:35
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск