
익명함수
-이름이 없는 함수 →변수에 할당해줘야한다.
ex)
function(a,b){
return a+b;
}
그럼 어떻게 사용하냐? → 변수에 할당을 해주면됨
var sum = function(a,b){
return a+b;
}
console.log(sum(10,20)); //30 출력
function sum(a,b,c){
return a+b+c;
}
console.log(sum(1,2,3)); //undefined
//가변인자
function sum(){
console.log(arguments); //Arguments(3) 출력
}
sum(1,2,3,4,5,6); //Arguments(6)출력
//함수도 호이스팅이 된다. sum()이 올라감( sum(a,b,c) 말고)
//함수를 매개변수로 전달(callback)
function calculator(func){
func(1,2,3,4,5);
}
calculator(sum); //Arguments(5)출력
calculator(function(){
total=0;
for(let i =0; i<arguments.length;i++){
total += arguments[i];
}
console.log(total); //15 출력 (1,2,3,4,5의 합)
});
//arguments는 배열
- 함수 선언식은 호이스팅 된다.
- sum()이 두번 선언됐다. 마지막으로 선언된 sum()만 메모리에 올라간다.
- 두번째 sum()을 보면 arguments가 있는데, arguments는 어떤 매개변수가 들어와도
- 배열로 입력받는 배열이다. 4번째줄에 1,2,3이 들어가지만 ,sum()함수에 return 값이 없어서
- undefined가 출력된다.
내부함수
function run(){
console.log("뛴다");
}
function run(){
console.log("ㅃㄹ뛴다");//ㅃㄹ뛴다 출력 -> 늦게 선언된 함수로 덮어씌움
}
run();
function health(){
function run(){//내부함수
console.log("뛰다");
}
run();
}
health();//뛰다 출력
//내부함수를 사용하면 함수의 중복을 방지할 수 있다.
인코딩, 디코딩함수
//인코딩함수(escape(),encodeURI(),encodeURICompent())
//등이 있지만,
console.log(encodeURIComponent("안녕하신가"));//만 기억하기
//디코딩함수(unescape(),decodeURI(),decodeURICompent())
//등이 있지만,
console.log(decodeURIComponent('%E%CSQE%DW%Q85%88%95'))//만 기억하기
script문 head안에 넣기
<script>
window.onload= function(){
var btn1 = document.getElementById('btn');
btn1.onclick = function(){
alert("click1");
}
}
</script>
//window.onload에 익명함수를 넣어서 만들자
이벤트 처리 방법
- HTML 주체가 돼서 이벤트 연결
- JavaScript 주체가 돼서 이벤트 연결 (속성)
- JavaScript 주체가 돼서 이벤트 연결 (리스너)
'web-front' 카테고리의 다른 글
| [ jQuery ] 간단정리 (0) | 2024.08.02 |
|---|---|
| [ javaScript ] 간단정리 part 3 (0) | 2024.08.02 |
| [ javaScript ] 간단정리 part 1 (0) | 2024.08.02 |
| [ CSS ] css 간단정리 (0) | 2024.08.02 |