Задаване на стойност на параметър по подразбиране за функция на JavaScript
Бих искал една функция на JavaScript да има незадължителни аргументи, за които да задам стойност по подразбиране, която да се използва, ако стойността не е определена (и да се игнорира, ако стойността е предадена). В Ruby можете да го направите по следния начин:
def read_file(file, delete_after = false)
# code
end
Работи ли това в JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
От ES6/ES2015 параметрите по подразбиране са в спецификацията на езика.
просто работи.
Справка: Параметри по подразбиране - MDN
Можете също така да симулирате наименувани параметри по подразбиране чрез деструктиране:
Преди ES2015,
Има много начини, но това е предпочитаният от мен метод - той ви позволява да подавате всичко, което искате, включително false или null. (
typeof null == "object"
)Това присвоява на
delete_after
стойността наdelete_after
, ако тя не е фалшива стойност, в противен случай се присвоява низът"my default here"
. За повече подробности вижте Doug Crockford's survey of the language (преглед на езика) и разгледайте раздела за операторите.Този подход не работи, ако искате да подадете неясна стойност, т.е.
false
,null
,undefined
,0
или""
. Ако искате да предадете фалшиви стойности, ще трябва да използвате метода в отговора на Том Ритър.Когато се работи с няколко параметъра на функция, често е полезно да се позволи на потребителя да предаде аргументите на параметрите в обект и след това да свърже тези стойности с обект, който съдържа стойностите по подразбиране за функцията
да се използва
Лично аз смятам, че нещо просто като това е много по-сбито и лесно за четене.