function 함수명(){}
<script>
fn();
function fn(){
alert("Hello, world");
}
</script>
var 변수명 = function(){}
<script>
var fn = function(){
alert("Hello, world");
};
fn();
</script>
function outer(){
function inner(){
}
inner();
};
function addSquares(a,b) {
function square(x) {
return x * x;
}
return square(a) + square(b);
};
a = addSquares(2,3); // returns 13
b = addSquares(3,4); // returns 25
c = addSquares(4,5); // returns 41
function 함수이름(callback){
...
callback(결과);
};
function 계산기(num1, num2, type){
if (type=='더하기'){
console.log("결과",num1+num2);
} else if (type=='곱하기'){
console.log("결과", num1*num2);
}
}
계산기(10,20, '더하기'); // 출력값 30
계산기(10,20, '곱하기'); // 출력값 200
function 계산기2(num1, num2, fn){
fn(num1, num2);
}
계산기2(100,200, function(a,b){
console.log(a*b);
})
// 출력값 20000
(function 함수명(){})();
(function (x) {
console.log(x+x);
})(3);
// 출력값 6
(a = function(x){
console.log(x*x);
})(2); // 출력값 4
a(3) // 출력값 9
1. 매개변수가 없을 때
var 변수 = () => 수행문
2. 매개변수가 하나만 있을 때
var 변수 = 매개변수 => 수행문
var 변수 = (매개변수) => 수행문
3. 매개변수, 수행문이 복수일 때
var 변수 = (매개변수, 매개변수, 매개변수) => 수행문
var 변수 = (매개변수, 매개변수, 매개변수) => { 수행문; 수행문; }
var 변수 = (매개변수, 매개변수, 매개변수) => { 수행문; return 수행문; }
// 중괄호 사용 시 return으로 결과값 반환해야함
let sum = (a, b) => {
let result = a + b;
return result;
};
let age = prompt("나이를 알려주세요.", 18);
let welcome = (age < 18) ?
() => alert('안녕') :
() => alert("안녕하세요!");
welcome();
var a = 'a';
var b = "b";
var c = String(c); // 'c'
var str1 = "안녕하세요";
console.log(str1.length);
// 출력값 5
var str2 = "자바!파이썬!자바스크립트!C";
var languages = str2.split("!");
// languages = ["자바","파이썬","자바스크립트","C"];
console.log(languages[0],languages[1],languages[2],languages[3]);
// 출력값: 자바 파이썬 자바스크립트 C
var str3 = "흰 옷과 흰 스니커즈를 신고 흰색 시계를 찬 사람";
console.log(str3.replace("흰","검은"));
// 첫번째 문자만 변경 됨
// 검은 옷과 흰 스니커즈를 신고 흰색 시계를 찬 사람
console.log(str3.replace(/흰/g,"검은"));
// 모든 문자가 변경됨
// 검은 옷과 검은 스니커즈를 신고 검은 시계를 찬 사람
var str4 = "나는 안녕합니다."
console.log(str4.substr(3,2)); // 안녕
console.log(str4.substring(3,5)); // 안녕
var arr = ["사과","오렌지","포도"];
console.log(arr.length);
// 출력값: 3
arr.push("파인애플")
// ["사과","오렌지","포도", "파인애플"]
arr.pop();
// 파인애플
arr
// 파인애플이 삭제되었으므로 ["사과","오렌지","포도"] 반환
arr.shift();
// 사과
arr
// 사과가 삭제되었으므로 [오렌지","포도"] 반환
arr.unshift("키위")
// ["키위","오렌지","포도"]
arr.splice(2,2);
// 2번째 자리에서부터 2개가 삭제됨 -> 오렌지, 포도 삭제
// ["키위"]
arr.splice(1,1,"바나나");
// 첫번째 자리에있는 키위를 삭제하고 바나나를 추가
// ["바나나"]
arr.splice(1,0,"망고");
// 첫번째 자리에 망고 추가.
// ["망고","바나나"]
arr.join();
// 망고, 바나나
arr.join('');
// 망고바나나
arr.join(' 그리고 ');
// 망고 그리고 바나나
var foods = ["피자","햄버거","바게트"];
1. for문으로 표현하기
for(var b in array1){
console.log(array1[b]);
}
/*
* 피자
* 햄버거
* 바게트
*/
2. forEach문으로 표현하기
2-1. 요소 나열하기
foods.forEach(function(item){
console.log(item);
});
/*
* 피자
* 햄버거
* 바게트
*/
2-2. 요소와 index 나열하기
foods.forEach(function(item, index){
console.log(item, index);
});
/*
* 피자 0
* 햄버거 1
* 바게트 2
*/
2-3. 화살표 함수로 표현하기
foods.forEach((item, index) => console.log(item, index));
var universe = ["지구","달","블랙홀","태양계","은하계","별"];
universe.filter(function(name, index){
return name.length == 3;
})
// 글자수가 3개인 단어 반환
// ["블랙홀","태양계","은하계"]
화살표함수 이용하기
universe.filter(name=>name.length==1);
// ["달","별"]
배열.map(function(요소, 인덱스){ return 요소.배열key })
- 자바스크립트의 객체(key:value 쌍)
var data = [
{name:"홍길동", kor:100, eng:70, math:70},
{name:"김유신", kor:50, eng:60, math:55},
{name:"강감찬", kor:70, eng:50, math:40},
{name:"이순신", kor:80, eng:70, math:76},
{name:"유관순", kor:100, eng:80, math:80}
];
- Map을 이용해 새로운 배열 생성
1. 단일 값을 가진 배열
var names = data.map(function(student, index){
return student.name;
});
console.log("학생이름", names);
// data의 map속성으로 student라는 새로운 함수 생성 후 name만 반환하여 names에 저장
console.log("학생이름", names);
2. 다중 값을 가진 배열
var scores = data.map(function(student){
name: student.name,
total: student.kor + student.eng + student.math,
average: (student.kor + student.eng + student.math)/3,
})
console.log("성적",scores)
배열.reduce(function(total, value){ return total + value; })
* total: 초기값은 0이며, return값이 전달됨
* value: 배열의 요소가 한개씩 들어감
var arr = [1,2,3,4,5]
var total = arr.reduce(total, value){
return total+value;
}
console.log(total) // 출력값: 15
0+1
1+2
3+3
6+4
10+5
reduce함수의 여러 쓰임새: https://blog.naver.com/wideeyed/221877924629