powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка уровня знаний javascript
25 сообщений из 113, страница 1 из 5
Проверка уровня знаний javascript
    #37540312
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заковыристые вопросы от яндекса =)
тест на знания

1. Что вернёт данный код и почему?
Код: plaintext
1.
2.
3.
4.
5.
6.
(function f() {
    function f() {  return   1  }

     return  f();

    function f() {  return   2  }
})();

2. Что произойдёт в результате выполнения данного кода и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var car = {
   color: 'red',
   getColor: function() {
      alert( this .color);
   }
};
 
car.getColor();
var getColor = car.getColor;
getColor();

3. Что произойдёт в результате выполнения данного кода и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function Book() {
    this .name = 'foo'
}
 
Book.prototype = {
   getName: function() {
       return   this .name;
   }
}
 
var book =  new  Book();
 
Book.prototype.getUpperName = function() {
    return   this .name.toUpperCase();
}
 
book.getUpperName();

4. Сколько элементов будет в объектах elems1 и elems2 в результате выполнения этого кода и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Yandex</title>
</head>
<body>
    <a href="((http://yandex.ru))">Яндекс</a>,
    <a href="((http://yandex.com))">Yandex</a>
</body>
</html>


var elems1 = document.getElementsByTagName('a'),
    elems2 = document.querySelectorAll("a");

document.body.appendChild(document.createElement("a"));

console.log(elems1.length, elems2.length);

5. Объясните, для чего предназначена и каким образом работает следующая функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function bind(method, context) {
      var args = Array.prototype.slice.call(arguments,  2 );
       return  function() {
            var a = args.concat(
                               Array.prototype.slice.call(arguments,  0 ));
             return  method.apply(context, a);
      }
}
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540361
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда не использовал всякие "выверты" у языка... Не вижу в них смысла вообще в работе.

Глядя на текст нужно сразу видеть, что делает автор. И без всяких обиняков...
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540414
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
В твоем коде обычно вывертов больше))

1. Ничего. Потому что некуда.
2. red, undefined. Во втором случае getColor вырвана из контекста.
3. FOO. Причем блок с getName для этого не нужен.
4. 3, 2. Тайна сия велика есть.
5. Муть какая-то.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540417
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot0type,

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

А теперь им думать придется над новыми, свеженькими извратами.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540437
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

4) 3 2 - прикольно, я не знал что у JS есть понятие о ленивых функциях.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540496
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan4) 3 2 - прикольно, я не знал что у JS есть понятие о ленивых функциях.
В моем понимании это не свойство самого языка как свойство ряда функций работы с DOM. Они возвращают коллекции при работе с которыми учитывается свежее состояние DOM.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540531
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВ твоем коде обычно вывертов больше))
В каком например?
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540628
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy5. Муть какая-то.
Ну что есть кто пятый "расшифрует"?
Вроде все слова знакомые, но чето наворотили....
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540682
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanprot0type,

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

А теперь им думать придется над новыми, свеженькими извратами.

нечего извращаться над языком =)
потом будут новые на тему HTML 5 придумывать уж всяко найдут что придумать на тему холста и т.д.

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

Код: plaintext
1.
a[[ 1 ][ 2 ]][ 0 ]( 3 )
s()()

ну и прочей мутотени...

мой вариант решения:

1. вернет 2, в java такое не прокатит
2. red, undefined, ежу ясно
3. вернет FOO
4. 3, 2, элемент создается после инициализации elems2
5. функция сортирует аргументы и вызывает другую функцию с отсортированными аргументами

все эти мутотени построены на особенностях javascript а не опыте программиста и его возможностях
вот это меня и бесит, такой подход
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540718
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатAntonariy5. Муть какая-то.
Ну что есть кто пятый "расшифрует"?
Вроде все слова знакомые, но чето наворотили....

Код: plaintext
1.
2.
3.
4.
5.
var lol=function(){
  var args = Array.prototype.slice.call(arguments,  2 );
  alert(args);
};
lol( 1 ,  2 ,  3 ,  4 );
//вернет  3 ,  4 

остальное там все простое

побесите меня еще, напишите еще заковырок от работодателей извращенцев =)
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540724
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot0type5. Объясните, для чего предназначена и каким образом работает следующая функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function bind(method, context) {
      var args = Array.prototype.slice.call(arguments,  2 );
       return  function() {
            var a = args.concat(
                               Array.prototype.slice.call(arguments,  0 ));
             return  method.apply(context, a);
      }
}

Это называется currying. В книге JavaScript Patterns есть отдельная глава про этот паттерн.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540731
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работадатели видать пишут свой jquery-движок

зачем в здравом уме это знать прогеру на jscript?
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540807
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

ну как зачем? большинство подобных хаков всплывают во время работы.

Яндекс набирает себе мехматян и людей с неординарными мозгами, поэтому они так напрягают "нормальных" программистов.

с другой стороны, это все можно заботать, только они денег за это столько не заплатят.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37540826
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileprot0type5. Объясните, для чего предназначена и каким образом работает следующая функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function bind(method, context) {
      var args = Array.prototype.slice.call(arguments,  2 );
       return  function() {
            var a = args.concat(
                               Array.prototype.slice.call(arguments,  0 ));
             return  method.apply(context, a);
      }
}

Это называется currying. В книге JavaScript Patterns есть отдельная глава про этот паттерн.

полностью подчистую слизано!!!!!!!!!! со страницы 113 книги



написал свой пример использования

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function bind(method, context) {
      var args = Array.prototype.slice.call(arguments,  2 );//отрезаем первые 2 значения аргументов
       return  function() {
            var a = args.concat(Array.prototype.slice.call(arguments,  0 ));//складываем все параметры из новой функции + отрезанные
             return  method.apply(context, a);//возвращаем вызов с новыми аргументами
      }
}

function add() {
	var sum= 0 ;
	 for (var i= 0 ;i<arguments.length;i++) {
		sum+=arguments[i];
	}
	 return  sum;
}

alert(bind(add, null , 1 , 1 , 1 )( 1 , 1 ));//вернут 5
alert(bind(add, null , 1 , 1 , 1 , 1 , 1 , 1 )( 1 , 1 ));//вернут 8
alert(bind(add, null , 1 , 1 , 1 , 1 , 1 , 1 )( 1 , 1 , 1 , 1 ));//вернут 10
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541602
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лол, хомячки бесятся над тем, что их пытаются заставить думать, хотя они умеют писать только $('#node').click(function(){}) не понимая, как это работает.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541671
ivan gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я недавно делал наброски чего-то типа проверки знаний принимаемого на работу по базовым знаниям жаваскрипт
Может заинтересует кого-то

Вопрос номер 1
Что будет выведено на экран, и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function Obj(a, b, c){

		 this .a = a;
		 this .b = b;
		 this .c = c;
		 this .d = a + b + c;

		alert(arguments.length);
	}

	var obj =  new  Obj( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 );
        alert(Obj.length);
        alert(obj.length);

...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541673
ivan gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос 2

Что будет выведено на экран, и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
var a, b, c, d;

a = (b =  1 , c =  2 , d =  3 );

alert(a);


Если народ заинтересует - завтра продолжу.
Никаких заковыристых вопросов, только база :)
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541764
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivan gusevтипа проверки знаний принимаемого на работу
Не то ты, мил человек, проверяешь...

Я так больший упор делаю именно на умение программировать. Отчасти из-за того, что требовать знание СУБД Cache смысла особого нет... Самим основам работник, умеющий именно программировать, обучится довольно быстро... А вот если ума програмить нет - таки его и не появится.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541801
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivan gusevЯ недавно делал наброски чего-то типа проверки знаний принимаемого на работу по базовым знаниям жаваскрипт
Может заинтересует кого-то

Вопрос номер 1
Что будет выведено на экран, и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function Obj(a, b, c){

		 this .a = a;
		 this .b = b;
		 this .c = c;
		 this .d = a + b + c;

		alert(arguments.length);
	}

	var obj =  new  Obj( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 );
        alert(Obj.length);
        alert(obj.length);



сначала количество аргументов (9)
потом количество аргументов функции (3)
а потом undefined

ivan gusevВопрос 2

Что будет выведено на экран, и почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
var a, b, c, d;

a = (b =  1 , c =  2 , d =  3 );

alert(a);


Если народ заинтересует - завтра продолжу.
Никаких заковыристых вопросов, только база :)

d=3, слишком просто

вот больше интересует 4 пункт первого вопроса
автор4. Сколько элементов будет в объектах elems1 и elems2 в результате выполнения этого кода и почему?
почему
при создании document.body.appendChild(document.createElement("a"));
document.getElementsByTagName('a') реагирует на изменения?
я так понимаю потому что обновляется при любых изменениях DOM в отличии от document.querySelectorAll("a")
?
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541809
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запятая как оператор очень тонкий и интересный момент =)
но можно было что нибудь поинтереснее придумать

Мне интересно продолжай =)
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37541927
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot0typeвот больше интересует 4 пункт первого вопроса
автор4. Сколько элементов будет в объектах elems1 и elems2 в результате выполнения этого кода и почему?
почему
при создании document.body.appendChild(document.createElement("a"));
document.getElementsByTagName('a') реагирует на изменения?
я так понимаю потому что обновляется при любых изменениях DOM в отличии от document.querySelectorAll("a")
?
Именно так. Обновление DOM приводит к обновлению коллекции. Вот неплохое объяснение с примерами -
HTML Collections are LIVE! .
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37542422
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot0typeмой вариант решения:

1. вернет 2, в java такое не прокатит
Кто и куда вернет?

bazileОбновление DOM приводит к обновлению коллекции.Это частичное объяснение. getElementsByTagName возвращает HTMLCollection, а querySelectorAll — StaticNodeList (в терминологии IE). А вот зачем HTMLCollection сделали не static — это и есть великая тайна. Ведь этот объект возвращается всего в двух случаях: getElementsByName и getElementsByTagName, то есть механизм создания живых коллекций совсем не гибкий, и они мало применимы в конкретных задачах. Я пока не смог выдумать задачу, где они были бы в тему.

До этого поста я не знал ни про эту фичу ни про существование querySelectorAll — до недавних пор его даже в msdn не было. Если у кого есть IE6-7, проверьте, работает ли, потому что я его нашел лишь в контексте IE8 и с пометкой beta. Зато теперь он привел меня к интересному документу . После его прочтения сразу становится понятно: 1) откуда растут ноги jQuery; 2) jQuery не особо нужно. Я его ценил в основном из-за селекторов.
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37542915
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин СергейМне интересно продолжай =)
классика
x=1;
x+++++x;
alert(x);

и вот только не нужно КЭПить про то что оно не выполняется в предложенном виде
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37542983
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

у меня тоже есть злые шутки

Код: plaintext
1.
2.
3.
4.
var x =  5 ;
( function ( y ){
   alert( x );    	
})( x =  1  )
...
Рейтинг: 0 / 0
Проверка уровня знаний javascript
    #37543013
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если так: x+++ ++x, то заработает, а если так: x++ + ++x, то даже при прочтении понятно. А так вообще очевидно: ++x + x++.
++x возвращает значение после инкремента, а x++ — перед, поэтому 2 + 1 = 3.
...
Рейтинг: 0 / 0
25 сообщений из 113, страница 1 из 5
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка уровня знаний javascript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]