Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Тестовое задание Yandex (https://javascript.ru/forum/offtopic/18474-testovoe-zadanie-yandex.html)

float 04.07.2011 19:12

Цитата:

о такой фиче даже и не подозревал
что-то я не в теме:cray:
что это и для чего?

B@rmaley.e><e 04.07.2011 19:26

float, быстрый выход из блока. Типа
do {
  if( some_condition ){
     break;
  }

  // ...
  // все условия выполнены
  do_smth();
} while(0);

monolithed 04.07.2011 19:38

Цитата:

Сообщение от tenshi
всегда эмулировал её через цыкл #^_^#

если я правильно понял, то за основу пойдет и такое решение (в конкретном случае):
function foo() {
    this.result = this.result || 0;
    return this.result++;
}

alert([foo(), foo(), foo()]);

float 04.07.2011 19:42

не совсем понял.
я про foo: {} конструкцию спрашиваю.
что это такое? никогда не использовал. (если честно и do while тоже)

float 04.07.2011 19:47

а сё. нашёл в "коране" пару строк про метки:)

monolithed 04.07.2011 19:50

Цитата:

Сообщение от float
а сё. нашёл в "коране" пару строк про метки

http://javascript.ru/basic/syntax-switch-for

float 04.07.2011 20:45

ещё вопросик: что за функция uneval ?

monolithed 04.07.2011 21:13

Цитата:

Сообщение от float
ещё вопросик: что за функция uneval ?

это довольно старая функия, которая является дополнением к ECMA-262 Edition 3. С незапамятных время реализована только в Rhino, Geko и SpiderMonkey. Предполагается, что uneval() возвращает исходный код выражения (как и toSource()), который может быть передан eval()
var obj = {
    a: 0,
    b: 1
};
alert(uneval(eval(uneval(obj))) === uneval(obj)); // гарантированно true
alert(obj.toSource(eval(obj.toSource(obj))) === obj.toSource(obj)); //true


Основное отличие uneval() от toSource():
var obj = {};
    
alert('uneval(): ' + uneval(obj.UnexistProperty) +'\n'+ 'toSource(): ' + obj.toSource(obj.UnexistProperty));

melky 04.07.2011 21:14

WTF is that ?!

//                     SIC !!!
function abc (/*->*/ {  a : a, b : b  } /*<-*/)  { 

             alert( "a="+a+"\nb="+b)

}


abc({a:' a_var ', b:'b_var'})


это как, где, откуда и почему????

я в шоке

еще одно " WTF ?! "

<body>I`m a body!!11</body>
<script>alert( "Body? -> "+typeof document.body+"\nUneval? -> "+uneval(document.body)  )</script>


короче пойду ка я еще поудивляюсь... оно та оказывается, уже без пометки используется

monolithed 04.07.2011 21:38

Цитата:

Сообщение от melky
это как, где, откуда и почему????

Это т.н. Destructuring assignment (ES4, JavaScript 1.7, реализовано в Rhino, Geko и SpiderMonkey)
var a, b;
[a, b] = [1, 2];

alert(a + ',' + b); // 1,2

Кстати, если не ошибаюсь то в ES6 (Harmony) это будет включено, т.к. в CoffeeScript хорошо обкатали эту возможность. Подробней читать тут


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