JavaScript中什么是匿名函数?
本篇文章将为各位介绍JavaScript中什么是匿名函数,希望看完本篇文章各位能对JavaScript中匿名函数的概念、使用有一定的认识。
JavaScript中什么是匿名函数?
在前端面试中面试官基本都会问到什么是匿名函数、什么是闭包函数。
本文就先来说一下什么是匿名函数。
匿名函数顾名思义就是没有名字的函数,通常我们所写的函数都是这样的:
function do(){ // 执行代码 }; // 调用 do();
这种写法是定义了一个名为do的函数,并通过函数名称进行调用。
那如果没有名字是什么样子的啊?
function () { // 执行代码 };
这种写法在编译的时候会报错:
Uncaught SyntaxError: Unexpected token (
这是为什么呢?原来时因为浏览器在进行语法分析的时候发现这个函数根本没法执行。
那要为什么还要匿名函数呢?在编程语言中如果又个编码方式那这种编码方式肯定是能正常运行的,那该如何让匿名函数跑起来呢?再看下面的例子:
var do = function () { // 执行代码 }do();
这种函数大家肯定都知道,其实这种写法就是将匿名函数复制为变量do,再通过变量名执行函数。
(function(){ // 执行代码 console.log("打印成功"); })();
上面代码是什么意思呢?
可以先把上面的代码分几个部分:
第一部分是括号里面的匿名函数,第二部分是加上括号的匿名函数,第三部分带上最后面执行用的括号。
匿名函数在括号内部可以看成是将匿名函数当成是一个变量,再通过括号进行执行。
(function () { // 执行代码 })(); // 相当于 var do = function() { // 执行代码 }; do();
其实向上面这种匿名函数的写法在很多地方都有用到,这种又叫自执行函数,像JQuery 等一些工具包都会用这种写法,自执行函数有哪些优点呢?
// 定义一个全局变量a var a = 1; (function() { // 在自执行函数中也创建一个变量a var a = 2; console.log(a); // 2 })(); console.log(a); // 1
可以看到在自执行函数中打印出来的是2,而在自执行函数中打印出来的是1;
这是为什么?
因为在程序中有个名称叫做作用域,全局环境的作用域叫做全局作用域,函数中的作用域叫做函数作用域,而作用域是分层的,内部作用域中可以访问外部作用域中的变量,而外部作用域中却不可以访问内部作用域中的变量。
在内部作用域中访问变量会先在自己所在作用域中查找,如果找不到再在上一层作用域中进行查找,再找不到还会再往上查找,一直到找到全局作用域。这种一层一层的关系像链条一样所以被叫做作用域链。
再看上面代码:在自执行函数中console.log 函数访问了a变量,首先在自己所在的作用域中查找,找到了a变量,故输出了a的值2;全局环境中的console.log 函数也访问了a变量,由于外部作用域不能访问内部作用域,所以全局环境中访问的a变量只能在全局函环境中进行查找,所以输出了a的值1;
总结:自执行函数的优点是为了保证自执行函数中的变量不会受到其他环境的污染。
本文来自 js教程 栏目,欢迎学习!
Atas ialah kandungan terperinci JavaScript中什么是匿名函数?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alat penting untuk analisis saham: Pelajari langkah-langkah untuk melukis carta lilin dalam PHP dan JS, contoh kod khusus diperlukan Dengan perkembangan pesat Internet dan teknologi, perdagangan saham telah menjadi salah satu cara penting bagi banyak pelabur. Analisis saham adalah bahagian penting dalam membuat keputusan pelabur, dan carta lilin digunakan secara meluas dalam analisis teknikal. Mempelajari cara melukis carta lilin menggunakan PHP dan JS akan memberikan pelabur maklumat yang lebih intuitif untuk membantu mereka membuat keputusan yang lebih baik. Carta candlestick ialah carta teknikal yang memaparkan harga saham dalam bentuk candlestick. Ia menunjukkan harga saham

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Cara menggunakan PHP dan JS untuk mencipta carta lilin saham Carta lilin saham ialah grafik analisis teknikal biasa dalam pasaran saham Ia membantu pelabur memahami saham dengan lebih intuitif dengan melukis data seperti harga pembukaan, harga penutup, harga tertinggi. dan harga terendah turun naik harga saham. Artikel ini akan mengajar anda cara membuat carta lilin saham menggunakan PHP dan JS, dengan contoh kod khusus. 1. Persediaan Sebelum memulakan, kita perlu menyediakan persekitaran berikut: 1. Pelayan yang menjalankan PHP 2. Pelayar yang menyokong HTML5 dan Kanvas 3

Fungsi tanpa nama, juga dikenali sebagai ungkapan lambda, ialah fungsi yang tidak menentukan nama dan digunakan untuk kegunaan sekali atau untuk menghantar penunjuk fungsi. Ciri termasuk: tidak mahu dikenali, penggunaan sekali sahaja, penutupan, inferens jenis pulangan. Dalam amalan, ia sering digunakan untuk mengisih atau panggilan fungsi satu masa yang lain.

Dengan perkembangan pesat kewangan Internet, pelaburan saham telah menjadi pilihan semakin ramai orang. Dalam perdagangan saham, carta lilin adalah kaedah analisis teknikal yang biasa digunakan Ia boleh menunjukkan trend perubahan harga saham dan membantu pelabur membuat keputusan yang lebih tepat. Artikel ini akan memperkenalkan kemahiran pembangunan PHP dan JS, membawa pembaca memahami cara melukis carta lilin saham dan menyediakan contoh kod khusus. 1. Memahami Carta Lilin Saham Sebelum memperkenalkan cara melukis carta lilin saham, kita perlu memahami dahulu apa itu carta lilin. Carta candlestick telah dibangunkan oleh orang Jepun

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

Ya, fungsi tanpa nama dalam bahasa Go boleh mengembalikan berbilang nilai. Sintaks: func(arg1,arg2,...,argN)(ret1,ret2,...,retM){//Function body}. Penggunaan: Gunakan operator := untuk menerima nilai pulangan menggunakan kata kunci pulangan untuk mengembalikan berbilang nilai.

ungkapan pythonLambda ialah alat yang berkuasa dan fleksibel untuk mencipta kod yang ringkas, boleh dibaca dan mudah digunakan. Ia bagus untuk mencipta fungsi tanpa nama dengan cepat yang boleh dihantar sebagai hujah kepada fungsi lain atau disimpan dalam pembolehubah. Sintaks asas ungkapan Lambda adalah seperti berikut: lambdaarguments:expression Contohnya, ungkapan Lambda berikut menambah dua nombor: lambdax,y:x+y Ungkapan Lambda ini boleh dihantar ke fungsi lain sebagai argumen seperti berikut: defsum( x ,y):returnx+yresult=sum(lambdax,y:x+y,1,2)Dalam contoh ini
