Я наткнулся на следующий код, который очень прост, поскольку он предназначен для определения, является ли переменная строкой или нет.
const is_string = value => {
return typeof value() === 'string';
};
let example = 'Hello, world!';
console.log(is_string(() => example)); // true
Моя путаница связана с использованием входного параметра.В частности, вторая строка с круглыми скобками после параметра: value()
и способ вызова функции: is_string(() => example)
.Последний выглядит как функция стрелки сам по себе.
Я переписал код как
const is_string = (value) => {
return typeof value === 'string';
};
let example = 'Hello, world!';
console.log(is_string(example)); // true
, и он делает то же самое, так в чем же реальная разница / преимущество использования нотациипервого кода?Полезно ли это в определенных случаях?
Заранее спасибо.
ИЗДАНИЕ:
Ключевым словом в этом обсуждении является Лямбда-выражение .Я не был полностью осведомлен о том, что код передавал функцию в качестве входного параметра, я не был знаком с этой нотацией.