Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Google выпустила версию Chromium с поддержкой Dart «Dartium» (https://javascript.ru/forum/offtopic/25892-google-vypustila-versiyu-chromium-s-podderzhkojj-dart-dartium.html)

monolithed 20.02.2012 20:29

Цитата:

Сообщение от Mахmахmахimus
странно а почему тогда у него тип обьект?

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

Цитата:

Сообщение от FINoM
А почему синтаксис такой, что мне обязательно нужно после него поставить что-либо?

Я же написал, потому что это унарный оператор! А скобки можно и после return ставить или так +(1)

FINoM 20.02.2012 20:41

Цитата:

Сообщение от monolithed
Я же написал, потому что это унарный оператор!

А для чего он? Нет, серьезно, я не понимаю. Это для получения undefined?

monolithed 20.02.2012 20:45

Цитата:

Сообщение от FINoM
Это для получения undefined?

именно

Gozar 20.02.2012 20:58

Цитата:

Сообщение от FINoM (Сообщение 158716)
Чет не въехал.

alert(new Object().__proto__.__proto__); // null


alert(new Function().__proto__.__proto__.__proto__); // null

Octane 20.02.2012 21:30

Цитата:

Сообщение от 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 можно наткнуться :D

FINoM 20.02.2012 21:44

Цитата:

Сообщение от Octane
В наличие null и undefined, можно найти и положительные стороны

Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?

monolithed 20.02.2012 21:53

Цитата:

Сообщение от FINoM
Это понятно. Но блин... Зачем void? Почему после void должно быть что-то? Может я тупой, объясните как-то проще.
undefined = void 'bljad'; — типа для этого?

Цитата:

Сообщение от monolithed
Я же написал, потому что это унарный оператор!

В языке многомерных выражений унарные операторы выполняют действия над одним операндом

Nekromancer 20.02.2012 21:57

FINoM,
Ну во первых, потому, что операторы в JS не бывает сами по себе. void - это оператор, ему нужно с чем то работать.
Ну и во вторых, наверно можно делать так, только не знаю зачем
var a = function(){return 1},
b = void a();

То есть принудительно заставить функцию вернуть undefined, снаружи.

П.С. Соврал конечно, бывают break и сontinue, но это из другой области, да и не совсем они сами по себе.

FINoM 20.02.2012 22:41

Цитата:

Сообщение от monolithed
В языке многомерных выражений унарные операторы выполняют действия над одним операндом

Унарные операторы выполняют полезные действия, а тут хрен его знает, зачем он.

Mахmахmахimus 21.02.2012 00:35

void нужен для того чтобы сделать какие то действия при том вернуть undefuned


например

function say(){
  return void alert('привет!');
}


это некая заглушка блокирующая отвтет от алерта.


чтобы можно было это
function say(){
  return  alert('привет!');
}

не ибаста превращая в это

function say(){
  alert('привет!');
 return undefined;
}


voidанг.
недействительный, пустой, лишенныйприл.
пустотасущ.
освобождать, аннулироватьгл.
voidedанг.
освобождать, аннулироватьгл.
voidingанг.
освобождать, аннулироватьгл.
voidsанг.
пустотасущ.
освобождать, аннулироватьгл.


это заставит алерт стрельнуть в холостую и предотвратит его ретурн.


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