JavaScript에서는 이름이 없는 함수를 "익명 함수"라고 하며 구문은 "function (){}"입니다. 익명 함수의 기능: 1. 익명 함수를 통해 클로저를 실현할 수 있습니다. 2. 블록 수준 범위를 시뮬레이션하고 전역 변수를 줄입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.
익명 함수: 실제 이름이 없는 함수입니다.
먼저 일반 함수를 선언합니다:
//声明一个普通函数,函数的名字叫fn function fn(){ console.log("hello world"); }
그런 다음 함수 이름을 제거하여 익명 함수가 됩니다.
//匿名函数,咦,运行时,你会发现报错啦! function (){ console.log("hello world"); }
이 시점에서 익명 함수만 실행하면 오류가 보고되지 않는다는 것을 알 수 있습니다. 문법 요구 사항을 충족하십시오! 해결책은 익명 함수를 대괄호로 감싸는 것입니다:
//匿名函数在其它应用场景括号可以省略 (function (){ //由于没有执行该匿名函数,所以不会执行匿名函数体内的语句。 console.log("hello world"); })
익명 함수를 실행해야 하는 경우 익명 함수 뒤에 대괄호를 추가하여 즉시 실행하세요!
(function (){ //此时会输出hello world console.log("hello world"); })()
값을 전달해야 하는 경우 괄호 안에 매개변수를 직접 작성하세요.
(function (str){ //此时会输出hello world! console.log("hello"); })(" world!")
[권장 학습: javascript 고급 튜토리얼]
익명 함수의 응용 시나리오
1. 2. 객체
<input type="button" value="点我啊!" id="sub"> <script> //获得按钮元素 var sub=document.querySelector("#sub"); //给按钮增加点击事件。 sub.onclick=function(){ alert("当点击按钮时会执行到我哦!"); } </script>
3, 함수 표현식
var obj={ name:"张三", age:18, fn:function(){ return "我叫"+this.name+"今年"+this.age+"岁了!"; } }; console.log(obj.fn());//我叫张三今年18岁了!
4, 콜백 함수
//将匿名函数赋值给变量fn。 var fn=function(){ return "我是一只小小小小留下,怎么飞也飞不高!" } //调用方式与调用普通函数一样 console.log(fn());//我是一只小小小小留下,怎么飞也飞不高!
5, 반환 값
setInterval(function(){ console.log("我其实是一个回调函数,每次1秒钟会被执行一次"); },1000);는 블록 수준 범위
일부에서는 개인 범위라고도 하는 블록 수준 범위를 모방합니다. . JavaScript에는 블록 수준 범위가 없습니다. 예:
//将匿名函数作为返回值 function fn(){ //返回匿名函数 return function(){ return "hello world"; } } //调用匿名函数 console.log(fn()());//hello world //或 var box=fn(); console.log(box());//hello world
if(1==1){//条件成立,执行if代码块语句。 var a=12;//a为全局变量 } console.log(a);//12 for(var i=0;i<3;i++){ console.log(i); } console.log(i);//4
블록 수준 범위를 사용해 보세요.
(function(){ //这里是我们的块级作用域(私有作用域) })();익명 함수의 역할:
1 클로저는 나중에 익명 함수를 통해 구현할 수 있습니다. 설명에 집중하세요. 여기에 대한 간단한 소개: 클로저는 함수 범위 내에 정의된 변수에 액세스할 수 있는 함수입니다. 클로저를 생성하려면 익명 함수를 사용해야 하는 경우가 많습니다.
2. 블록 수준 범위를 시뮬레이션하고 전역 변수를 줄입니다. 익명 함수를 실행한 후에는 메모리에 저장된 해당 변수가 소멸되어 메모리가 절약됩니다. 또한 대규모 다중 사용자 개발 프로젝트에서 블록 수준 범위를 사용하면 이름 충돌 문제가 크게 줄어들어 치명적인 결과를 피할 수 있습니다. 개발자는 더 이상 전역 범위를 망칠까 봐 걱정할 필요가 없습니다.
더 많은 프로그래밍 관련 지식을 보려면
위 내용은 자바스크립트에서 이름이 없는 함수의 이름은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!