function-2
9383 ワード
プログラムを構成する基本単位と考えられる
sub-programとも呼ばれます
複数回使用可能
function log (message) {
console.log(message);
}
log('Hello@')
log(1234)
JavaScriptにはタイプがありません
関数自体のみを表示する場合、文字のみを渡すか数値のみを渡すかは不明です
タイプが重要であれば、JavaScriptは理解しにくいかもしれません
-parameters
// premitiive parameters: passed by value
// 메모리에 벨류가 그대로 저장되어 있기때문에 벨류가 전달되고
// object parameters: passed by reference
// 메모리에 레퍼런스가 저장되어 있어서 레퍼런스가 전달됨
function changeName(obj){
obj.name = 'coder';
}
const kim = { name: ' kim '};
changeName(kim);
console.log(kim);
-defaultパラメータ(es 6を追加)function showMessage(message, from = 'unknow') {
console.log(`${message} by ${from}`);
}
showMessage('Hi')
-Rest parameters // 배열 형태로 전달됨
function printAll(...args){
for(let i = 0; i < args.length; i++){
console.log(args[i]);
}
// 위와 동일함
for(const arg of args ){
console.log(arg);
}
}
printAll('kim','eun','hwa');
外は内を見ず,内は外を見ずゾーン変数はゾーンであるため、そこからしかアクセスできません.
関数で他の関数を宣言できます
子供は親になれる
親の上司に子供がいるはずがない.
let globaMessage = 'global';
// global variable
function printMessage(){
let message = 'hello';
console.log(message)
// local variable
console.log(globaMessage);
}
// 나쁜 예시
function upgradeUser(user){
if (user.point > 10){
}
}
// 블럭 안에서 로직을 많이 작성하면 가독성이 많이 떨어진다
// 좋은 예시
function upgradeUser(user){
if (user.point <= 10){
return;
}
}
// 필요한 로직은 그 뒤에 작성하는게 좋다
Reference
この問題について(function-2), 我々は、より多くの情報をここで見つけました https://velog.io/@wearehplk/function-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol