前端面試寶典---閉包

閉包介紹

使用閉包:

  1. 在函數內聲明一個變量,避免外部訪問
  2. 在該函數內再聲明一個函數訪問上述變量(閉包)
  3. 返回函數內部的函數
  4. 使用完畢建議閉包函數=null;譯放內存
function createCounter() {let count = 0;return function () {count++;return count;};
}let counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
counter = null;

閉包應用場景

在 ES6 引入 let 和 const 之前,JavaScript 沒有塊級作用域,只有函數作用域。可以使用閉包來模擬塊級作用域。以下是一個經典的循環中使用閉包的例子:

// 不使用閉包的情況
function printNumbersWithoutClosure() {for (var i = 0; i < 5; i++) {setTimeout(function () {console.log(i);}, i * 1000);}
}// 使用閉包的情況
function printNumbersWithClosure() {for (var i = 0; i < 5; i++) {(function (index) {setTimeout(function () {console.log(index);}, index * 1000);})(i);}
}// 測試不使用閉包的情況
console.log('不使用閉包的情況:');
printNumbersWithoutClosure();// 測試使用閉包的情況
setTimeout(function () {console.log('使用閉包的情況:');printNumbersWithClosure();
}, 5000);

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75821.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GPT4O畫圖玩法案例,不降智,非dalle

網址如下&#xff1a; 玩法1&#xff1a;吉卜力&#xff08;最火爆&#xff09; 提示詞&#xff1a;請將附件圖片轉化為「吉卜力」風格&#xff0c;尺寸不變 玩法2&#xff1a;真人繪制 提示詞&#xff1a;創作一張圖片&#xff0c;比例4:3&#xff0c;一個20歲的中國女孩…

4.12~4.14【Q】cv homework6

我正在寫GAMES101作業6&#xff0c;在這段代碼中&#xff0c;我十分想知道inline Intersection Triangle::getIntersection(Ray ray) 是由哪個函數&#xff0c;哪段代碼調用的&#xff1f;什么是Inline&#xff1f;詳細解釋&#xff0c;越細節越好 我正在寫GAMES101作業6&…

MATLAB雙目標定

前言&#xff1a; 現在有許多雙目攝像頭在出廠時以及標定好&#xff0c;用戶拿到手后可以直接使用&#xff0c;但也有些雙目攝像頭在出廠時并沒有標定。因而這個時候就需要自己進行標定。本文主要介紹基于matlab工具箱的自動標定方式來對雙目相機進行標定。 1、MATLAB工具箱標…

visual studio 常用的快捷鍵(已經熟悉的就不記錄了)

以下是 Visual Studio 中最常用的快捷鍵分類整理&#xff0c;涵蓋代碼編輯、調試、導航等核心場景&#xff1a; 一、生成與編譯 ?生成解決方案 Ctrl Shift B 一鍵編譯整個解決方案&#xff0c;檢查編譯錯誤&#xff08;最核心的生成操作&#xff09;?編譯當前文件 Ctrl F…

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

今天寫項目的時候碰到一個報錯&#xff0c;在網上查找到了解決方法&#xff0c;這里備份一下。防止下次再次遇到 原文章鏈接&#xff1a;Sass import rules are deprecated and will be removed in Dart Sass 3.0.0. 報錯內容如下&#xff1a; Deprecation Warning: Sass i…

【QT】QWidget 概述與核心屬性(API)

&#x1f308; 個人主頁&#xff1a;Zfox_ &#x1f525; 系列專欄&#xff1a;Qt 目錄 一&#xff1a;&#x1f525; 控件概述 &#x1f98b; 控件體系的發展階段 二&#xff1a;&#x1f525; QWidget 核心屬性 &#x1f98b; 核心屬性概覽&#x1f98b; 用件可用&#xff08…

Redis 在處理并發請求時,如何保證高效性和數據一致性

1. 單線程模型&#xff08;核心命令處理&#xff09; 單線程優勢&#xff1a;Redis 的核心命令處理是單線程的&#xff08;基于內存操作&#xff0c;避免多線程競爭&#xff09;&#xff0c;所有命令按順序執行&#xff0c;天然避免了多線程的鎖競爭和上下文切換開銷。非阻塞 …

flutter-Text等組件出現雙層黃色下劃線的問題

文章目錄 1. 現象2. 原因3. 解決方法 1. 現象 這天我正在寫Flutter項目的頁面功能&#xff0c;突然發現我的 Text 文字出現了奇怪的樣式&#xff0c;具體如下&#xff1a; 文字下面出現了雙層黃色下劃線文字的空格變得很大&#xff0c;文字的間距也變得很大 我百思不得其解&a…

cursor+高德MCP:制作一份旅游攻略

高德開放平臺 | 高德地圖API (amap.com) 1.注冊成為開發者 2.進入控制臺選擇應用管理----->我的應用 3.新建應用 4.點擊添加Key 5.在高德開發平臺找到MCP的文檔 6.按照快速接入的步驟&#xff0c;進行操作 一定要按照最新版的cursor, 如果之前已經安裝舊的版本卸載掉重新安…

使用 IP 代理改 IP 后注意事項如何防封號

在使用一鍵換IP軟件輔助網絡營銷賬號切換時&#xff0c;需注意以下關鍵事項以確保賬號安全并降低封號風險。 一、IP有效性及質量驗證 確保更換的IP地址有效且質量高&#xff0c;低質量或失效的IP可能導致賬號存活時間縮短。優先選擇動態住宅IP&#xff08;如“兔子IP代理”提…

qt designer 創建窗體選擇哪種屏幕大小

1. 新建窗體時選擇QVGA還是VGA 下面這個圖展示了區別 這里我還是選擇默認&#xff0c;因為沒有特殊需求&#xff0c;只是在PC端使用

數據可視化 —— 折線圖應用(大全)

一、導入需要的庫 # Matplotlib 是 Python 最常用的繪圖庫&#xff0c;pyplot 提供了類似 MATLAB 的繪圖接口 import matplotlib.pyplot as plt import numpy as np import pandas as pd 二、常用的庫函數 plt.plot(x軸,y軸)&#xff1a;plot()是畫折線圖的函數。 plt.xlabe…

ubuntu 20.04 安裝源碼編譯 ros humble過程

公司要兼容ros1還需要ros2 這個時候不得不使用ubuntu20.04 安裝 humble 但實際上在20.04上安裝humble是需要在源碼編譯的。 根據這個帖子 https://blog.csdn.net/m0_62353836/article/details/129730981 重寫一份,以應對無法下載的問題 系統配置 #檢查是否為UTF-8編碼,是則跳…

CVPR‘25 SOTA——GoalFlow論文精讀

1&#xff09;第一遍___粗讀 Q: 這篇論文試圖解決什么問題&#xff1f; A: 這篇論文提出了一個名為 GoalFlow 的端到端自動駕駛方法&#xff0c;旨在解決自動駕駛場景中高質量多模態軌跡生成的問題。具體而言&#xff0c;它試圖解決以下問題&#xff1a; 軌跡選擇的復雜性&am…

關于 CSDN的C知道功能模塊 的詳細解析,包括 新增的AI搜索(可選深度思考) 和 智能體功能 的具體說明及對比分析

以下是關于 CSDN的C知道功能模塊 的詳細解析&#xff0c;包括 新增的AI搜索&#xff08;可選深度思考&#xff09; 和 智能體功能 的具體說明及對比分析&#xff1a; 一、C知道核心功能模塊詳解&#xff08;基礎功能&#xff09; &#xff08;參考前文內容&#xff0c;此處略…

forms實現快讀閱讀器

forms實現快讀閱讀器 主要功能包括&#xff1a; ??1.文本自動分塊顯示??&#xff1a;按設定的速度逐詞顯示文本內容。 ??2.閱讀控制??&#xff1a;開始/停止按鈕以及回車鍵控制。 ??3.界面自定義??&#xff1a;包括字體、顏色&#xff08;前景色和背景色&#xff…

PowerBI 條形圖顯示數值和百分比

數據表: 三個度量值 銷售額 VAR Sales SUM(銷量表[銷售量]) RETURNIF(ISBLANK(sales), 0, sales) //希望Y軸顯示所有產品(沒有記錄顯示0)就加這個代碼&#xff0c;不希望顯示就不加//注意, 因為Y軸顯示的產品&#xff0c;會被篩選&#xff0c;所以用ALLSELECTED來獲取當前篩…

python: audioFlux XXCC 提取梅爾頻率倒譜系數 MFCC

承上一篇&#xff1a;python&#xff1a;audioFlux 使用教程 XXCC: 倒譜系數&#xff0c;支持所有頻譜類型. 可以提取梅爾頻率倒譜系數&#xff08;MFCC&#xff09; Cepstrum coefficients, supports all spectrum types. 以下是使用 audioflux 庫中 XXCC 類計算倒譜系數…

為 docker 拉取鏡像配置代理

為 Docker 配置代理&#xff0c;有 兩個層面 的操作&#xff1a;(1) Docker 守護進程&#xff08;用于拉取鏡像等操作&#xff09;&#xff0c;(2) Docker 容器內部&#xff08;容器內應用的網絡流量&#xff09;。 我們這篇文章著重于前者&#xff0c;以下是詳細步驟&#xff…

最新的es版本忘記密碼,重置密碼

剛剛安裝了最新的es版本,就忘了密碼,怎么重置密碼呢? 一、進入es的斌目錄 #進入es文件/bin 目錄 ./elasticsearch-reset-password -u elastic 二 、輸入對應的密碼 然后再次訪問 我的是去掉了ssl的訪問 三、如果報錯:解決 [main] WARN