Правда ли что это строковое значение?
'atom'
Да, потому что 'atom'
является набором буквенных символов, окруженных ковычками.
Правда ли что это строковое значение?
'1492'
Да, потому что '1492'
является набором числовых символов, окруженных ковычками.
Правда ли что это строковое значение?
'*abc$'
Да, потому что '*abc$'
является набором специальных и буквенных символов, окруженных ковычками.
Правда ли что это список?
['atom']
Да, потому что строковое значение 'atom'
окруженно квадратными скобками.
Правда ли что это список?
['atom', 'turkey', 'or']
Да, потому что несколько строковых значений, записанные через запятую, окруженны кдвадратными скобоками.
Правда ли что это список?
['atom', 'turkey'], 'or'
Нет, потому что два значения неокруженны квадратными скобками. Первое значение является списком, состоящим из двух строковых значений, и второе является простым строковым значением.
Правда ли что это список?
[['atom', 'turkey'], 'or']
Да, потому что два значения теперь окружены квадратными скобками и между ними стоит запятая.
Правда ли что это значение?
'xyz'
Да, потому что все строки являются значениями.
Правда ли что это значение?
['x', 'y', 'z']
Да, потому что все списки являются значениями.
Правда ли что это значение?
[['x', 'y'], 'z']
Да, потому что это список.
Правда ли что это список?
['how', 'are', 'you', 'doing', 'so', 'far']
Да, потому что несколько значений, записанных через запятую, окруженны в квадратные скобки.
Сколько значений в списке и какие они?
['how', 'are', 'you', 'doing', 'so', 'far']
Шесть - 'how'
, 'are'
, 'you'
, 'doing'
, 'so'
, 'far'
.
Правда ли что это список?
[[['how'], 'are'], [['you'], ['doing', 'so']], 'far']
Да, потому что несколько значений, записанных через запятую, окруженны в квадратные скобки.
Сколько значений в списке и какие они?
[[['how'], 'are'], [['you'], ['doing', 'so']], 'far']
Три - [['how'], 'are']
, [['you'], ['doing', 'so']]
, 'far'
.
Правда ли что это список?
[]
Да, потому что 0 значений окружены в квадратные скобки. Такой список называется "пустым".
Правда ли что это значение?
[]
Да, потому что это список.
Правда ли что это список?
[[], [], [], []]
Да, потому что несколько значений, записанные через запятую, окруженны в квадратные скобки.
Какое значние будет результатом выражения?
head(['a', 'b', 'c'])
'a'
, потому что head
возвращает первое значение списка.
Какое значние будет результатом выражения?
head([['a', 'b', 'c'], 'x', 'y', 'z'])
['a', 'b', 'c']
, потому что ['a', 'b', 'c']
является первым значением в списке.
Какое значние будет результатом выражения?
head('hotdog')
TypeError. Строковое значение не является списком.
Какое значние будет результатом выражения?
head([])
undefined
. Результатом head
для пустого списка является значение undefined
.
Какое значние будет результатом выражения?
head([[['hotdogs']], ['and'], ['pickle'], 'relish'])
[['hotdogs']]
, т.к. это первое значение списка.
Какое значние будет результатом выражения?
head(head([[['hotdogs']], 'and']))
['hotdogs']
Функция
head
возвращает первый элемент списка. Результатом всегда будет значение. Для пустого списка значнием будетundefined
.
function head(list) {
if (!Array.isArray(list)) throw TypeError('The argument is not a list');
return list[0];
}
Какое значние будет результатом выражения?
tail(['a', 'b', 'c'])
['b', 'c']
, потому что tail
возвращает элементы списка, за исключением первого.
Какое значние будет результатом выражения?
tail([['a', 'b', 'c'], 'x', 'y', 'z'])
['x', 'y', 'z']
Какое значние будет результатом выражения?
tail([])
[]
Какое значние будет результатом выражения?
tail('hotdogs')
TypeError. Строковое значение не является списком.
Какое значние будет результатом выражения?
tail([])
[]
Функция
tail
возвращает элементы списка, за исключением первого. Результатом всегда будет новый список. Для пустого списка возвращается пустой список.
function tail(list) {
if (!Array.isArray(list)) throw TypeError('The argument is not a list');
const [first, ...rest] = list;
return rest;
}
Какое значние будет результатом выражения?
head(tail(['b', ['x', 'y'], ['c']]))
['x', 'y']
, потому что результатом tail([['b', ['x', 'y'], ['c']]])
будет [['x', 'y'], ['c']]
, и результатом head([['x', 'y'], ['c']])
будет ['x', 'y']
.
Какое значние будет результатом выражения?
tail(tail(['b', ['x', 'y'], ['c']]))
[['c']]
, потому что результатом tail(['b', ['x', 'y'], ['c']])
будет [['x', 'y'], ['c']]
, и результатом tail([['x', 'y'], ['c']])
будет [['c']]
.
Какое значние будет результатом выражения?
tail(head(['a', ['b', ['c']], 'd']))
TypeError, т.к. результатом head(['a', ['b', ['c']], 'd'])
будет значение 'a'
, к которому не применима функция tail
.
Что head
принимает в качестве аргумента?
Непустой список.
Что tail
принимает в качестве аргумента?
Непустой список.
Какое значние будет результатом выражения?
concat(['peanut', 'butter', 'and'], 'jelly')
['peanut', 'butter', 'and', 'jelly']
, потому что функция concat
соединяет список со значением, получая новый список.
Какое значние будет результатом выражения?
concat(['peanut', 'butter'], ['and', 'jelly'])
['peanut', 'butter', 'and', 'jelly']
, потому что функция concat
соединяет два списока, получая новый список.
Какое значние будет результатом выражения?
concat([['help'], 'this'], ['is', 'very', [['hard'], 'to', 'learn']])
[['help'], 'this', 'is', 'very', [['hard'], 'to', 'learn']]
Что concat
принимает в качестве аргументов?
Два аргумента. Первый - список, второй - значение или список.
Какое значние будет результатом выражения?
concat([], 'a')
['a']
Какое значние будет результатом выражения?
concat([], ['a', 'b', ['c']])
[['a', 'b', ['c']]]
Какое значние будет результатом выражения?
concat('a', ['b', 'c'])
TypeError, т.к. первым аргументом должным быть список.
Какое значние будет результатом выражения?
concat('a', 'b')
Ошибка, т.к. первым аргументом должным быть список.
Функция
concat
принимает два аргумента, список и значение, и соединяет их, получая новый список в качестве результата.
function concat(list, value) {
if (!Array.isArray(list)) throw TypeError('The first argument is not a list');
return Array.isArray(value) ? [...list, ...value] : [...list, value];
}
Какое значние будет результатом выражения?
concat(head([['a'], 'b', 'c']), 'd')
['a', 'd']
. Почему?
Какое значние будет результатом выражения?
concat(tail([['a'], 'b', 'c']), 'd')
['b', 'c', 'd']
. Почему?
Какое значние будет результатом выражения?
isEmpty([])
true
, т.к. список пустой.
Какое значние будет результатом выражения?
isEmpty(['a', 'b', 'c'])
false
, т.к. список непустой.
Какое значние будет результатом выражения?
isEmpty('spaghetti')
TypeError, т.к. функция isNull
не применима к простым значениям.
Какое значние будет результатом выражения?
isPrimitive('spaghetti')
true
, т.к. 'spaghetti'
является простым значениям.
Какое значние будет результатом выражения?
isPrimitive(['Harry', 'had', 'a', 'heap', 'of', 'apples'])
false
, т.к. ['Harry', 'had', 'a', 'heap', 'of', 'apples']
является простым списком.
Сколько аргументов принимает функция isPrimitive
и какие они?
Один. Аргумент должен быть простым значением.
function isPrimitive(value) {
const type = typeof value;
return type === 'string' || type === 'number' || type === 'boolean';
}
Какое значние будет результатом выражения?
isPrimitive(head(['Harry', 'had', 'a', 'heap', 'of', 'apples']))
true
, т.к. первым значением списка является простое значение 'Harry'
.
Какое значние будет результатом выражения?
isPrimitive(tail(['Harry', 'had', 'a', 'heap', 'of', 'apples']))
false
, т.к. ['had', 'a', 'heap', 'of', 'apples']
является списком.
Какое значние будет результатом выражения?
isPrimitive(tail(['Harry']))
false
, т.к. []
является списком.
Какое значние будет результатом выражения?
isPrimitive(head(tail(['Harry', 'had', 'a', 'heap', 'of', 'apples'])))
true
, т.к. ['had', 'a', 'heap', 'of', 'apples']
является списком, а 'had'
является простым значением.
Какое значние будет результатом выражения?
isPrimitive(head(tail(['Harry', ['had', 'a'], 'heap', 'of', 'apples'])))
false
, т.к. [['had', 'a'], 'heap', 'of', 'apples']
является списком, а ['had', 'a']
является списком.
Правда что значение 'Harry'
равняется значению 'Harry'
?
Да.
Какое значние будет результатом выражения?
areEqual('Harry', 'Harry')
true
, т.к. значения равны.
Какое значние будет результатом выражения?
areEqual('margarine', 'butter')
false
, т.к. значения не равны.
Сколько аргументов принимает функция areEqual
и какие они?
Два. Оба аргумента должны быть простыми значениями.
Какое значние будет результатом выражения?
areEqual('strawberry', ['strawberry'])
false
, т.к. простое значение не равняется списку с этим значением.
Функция
areEqual
принимает два аргумента. Оба аргумента должны быть простыми значениями.
function areEqual(x, y) {
return x === y;
}
Какое значние будет результатом выражения?
areEqual(head(['Marry', 'had', 'a', 'little', 'lamb', 'chop']), 'Marry')
true
, т.к. 'Marry'
равняется 'Marry'
.
Какое значние будет результатом выражения?
areEqual(tail(['soured', 'milk']), 'milk')
false
, т.к. ['milk']
не равняется 'milk'
.
Какое значние будет результатом выражения?
areEqual(head(['beans', 'beans', 'we', 'need', 'jelly', 'beans']), head(tail(['beans', 'beans', 'we', 'need', 'jelly', 'beans'])))
true
, т.к. 'beans'
равняется 'beans'
.