当前位置: 首页 > news >正文

js的小知识

以下是一些 JavaScript 的小知识点,适合不同水平的开发者:

1. 变量声明

  • 使用 letconst 和 var 声明变量。
  • let 和 const 块级作用域,而 var 是函数作用域。
  • const 声明的变量不可重新赋值,但对象的属性仍然可以修改。

2. 箭头函数

  • 箭头函数提供了更简洁的函数定义方式,且不绑定自己的 this
​
const add = (a, b) => a + b;​

3. 模板字符串

  • 使用反引号(`)创建多行字符串和嵌入表达式。
const name = "Alice";
const greeting = `Hello, ${name}!`;

4. 数组和对象解构

  • 解构赋值可以从数组或对象中提取值,赋值给变量
const arr = [1, 2, 3];
const [first, second] = arr; // first = 1, second = 2const obj = { x: 1, y: 2 };
const { x, y } = obj; // x = 1, y = 2

5. Promise

  • Promise 用于处理异步操作,能够解决回调地狱问题。
const myPromise = new Promise((resolve, reject) => {// 异步操作if (成功) {resolve("成功结果");} else {reject("失败原因");}
});

6. async/await

  • async 函数可以使用 await 等待 Promise 解决,使异步代码更易读。
async function fetchData() {try {const response = await fetch('api/url');const data = await response.json();console.log(data);} catch (error) {console.error(error);}
}

7. 事件委托

  • 使用事件委托可以提高性能,避免为每个子元素添加事件监听器。
document.getElementById('parent').addEventListener('click', function(event) {if (event.target.matches('.child')) {// 处理事件}
});

8. 闭包

  • 闭包是函数和其引用的变量的组合,可以实现数据封装。
function makeCounter() {let count = 0;return function() {count++;return count;};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

这些知识点涵盖了 JavaScript 的基本概念、语法和一些常用的功能,可以帮助你更好地理解和使用这门语言。

相关文章:

js的小知识

以下是一些 JavaScript 的小知识点,适合不同水平的开发者: 1. 变量声明 使用 let、const 和 var 声明变量。let 和 const 块级作用域,而 var 是函数作用域。const 声明的变量不可重新赋值,但对象的属性仍然可以修改。 2. 箭头函…...

一些swift问题

写得比较快,如果有问题请私信。 序列化和反序列化 反序列化的jsonString2只是给定的任意json字符串 private func p_testDecodeTable() {let arr ["recordID123456", "recordID2"]// 序列化[string] -> json datalet jsonData try? JSO…...

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器,主要有反向代理、负载均衡的功能。 能够支撑5万的并发量,运行时内存和CPU占用低,配置简单,运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…...

汽车免拆诊断案例 | 2010款起亚赛拉图车发动机转速表指针不动

故障现象  一辆2010款起亚赛拉图车,搭载G4ED 发动机,累计行驶里程约为17.2万km。车主反映,车辆行驶正常,但组合仪表上的发动机转速表指针始终不动。 故障诊断  接车后进行路试,车速表、燃油存量表及发动机冷却温度…...

在ubuntu上安装最新版的clang

方法一&#xff1a; 执行如下的命令&#xff1a; # 下载安装脚本wget https://apt.llvm.org/llvm.sh chmod x llvm.sh # 开始下载&#xff0c; 输入需要安装的版本号。 sudo ./llvm.sh <version number>方法二 添加软件下载源。 请根据自己的Ubuntu系统版本添加&…...

使用Django REST framework构建RESTful API

使用Django REST framework构建RESTful API Django REST framework简介 安装Django REST framework 创建Django项目 创建Django应用 配置Django项目 创建模型 迁移数据库 创建序列化器 创建视图 配置URL 配置全局URL 配置认证和权限 测试API 使用Postman测试API 分页 过滤和排序…...

「Mac畅玩鸿蒙与硬件14」鸿蒙UI组件篇4 - Toggle 和 Checkbox 组件

在鸿蒙开发中,Toggle 和 Checkbox 是常用的交互组件,分别用于实现开关切换和多项选择。Toggle 提供多种类型以适应不同场景,而 Checkbox 支持自定义样式及事件回调。本篇将详细介绍这两个组件的基本用法,并通过实战展示它们的组合应用。 关键词 Toggle 组件Checkbox 组件开…...

Kotlin协程suspend的理解

suspend修饰符&#xff0c;它可以告诉编译器&#xff0c;该函数需要在协程中执行。作为开发者&#xff0c;您可以把挂起函数看作是普通函数&#xff0c;只不过它可能会在某些时刻挂起和恢复而已。协程的挂起就是退出方法&#xff0c;等到一定条件到来会重新执行这个方法&#x…...

基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发

在中医针灸的传统治疗中&#xff0c;穴位取穴的精确度对于治疗效果至关重要。然而&#xff0c;传统的定位方法&#xff0c;如体表标志法、骨度折量法和指寸法&#xff0c;由于观察角度、个体差异&#xff08;如人体姿态和皮肤纹理&#xff09;以及环境因素的干扰&#xff0c;往…...

51单片机教程(二)- 创建项目

1 创建项目 创建项目存储文件夹&#xff1a;C51Project 打开Keil5软件&#xff0c;选择 Project -> New uVision Project&#xff1a; 选择项目路径&#xff0c;即刚才创建的文件夹 选择芯片&#xff0c;选择 Microchip&#xff08;微型集成电路&#xff09;&#xff0…...

Rust 图形界面开发——使用 GTK 创建跨平台 GUI

第五章 图形界面开发 第一节 使用 GTK 创建跨平台 GUI GTK&#xff08;GIMP Toolkit&#xff09;是一个流行的开源跨平台图形用户界面库&#xff0c;适用于创建桌面应用程序。结合 Rust 的 gtk-rs 库&#xff0c;开发者能够高效地构建现代化 GUI 应用。本节将详细探讨 GTK 的…...

Hellinger Distance(赫林格距离)

Hellinger Distance&#xff08;赫林格距离&#xff09;是一种用于衡量两个概率分布相似度的距离度量。它通常用于概率统计、信息论和机器学习中&#xff0c;以评估两个分布之间的相似性。Hellinger距离的值介于0和1之间&#xff0c;其中0表示两个分布完全相同&#xff0c;1表示…...

【系统架构设计师】七、设计模式

7.1 设计模式概述 设计经验在实践者之间日益广泛地利用&#xff0c;描述这些共同问题和解决这些问题的方案就形成了所谓的模式。 7.1.1 设计模式的历史 建筑师Christopher Alexander首先提出了模式概念&#xff0c;他将模式分为了三个部分&#xff1a; 特定的情景&#xff…...

新工具可绕过 Google Chrome 的新 Cookie 加密系统

一位研究人员发布了一款工具&#xff0c;用于绕过 Google 新推出的 App-Bound 加密 cookie 盗窃防御措施并从 Chrome 网络浏览器中提取已保存的凭据。 这款工具名为“Chrome-App-Bound-Encryption-Decryption”&#xff0c;由网络安全研究员亚历山大哈格纳 (Alexander Hagenah…...

模型拆解(三):EGNet、FMFINet、MJRBM

文章目录 一、EGNet1.1编码器&#xff1a;VGG16的扩展网络 二、EMFINet2.1编码器&#xff1a;三分支并行卷积编码器2.2CFFM&#xff1a;级联特征融合模块2.3Edge Module&#xff1a;突出边缘提取模块2.4Bridge Module&#xff1a;桥接器2.5解码器&#xff1a;深度特征融合解码器…...

齐次线性微分方程的解的性质与结构

内容来源 常微分方程(第四版) (王高雄,周之铭,朱思铭,王寿松) 高等教育出版社 齐次线性微分方程定义 d n x d t n a 1 ( t ) d n − 1 x d t n − 1 ⋯ a n − 1 ( t ) d x d t a n ( t ) x 0 \frac{\mathrm{d}^nx}{\mathrm{d}t^n} a_1(t)\frac{\mathrm{d}^{n-1}x}{\math…...

Python-Celery-基础用法总结-安装-配置-启动

文章目录 1.安装 Celery2.配置 Celery3.启动 Worker4.调用任务5.任务装饰器选项6.任务状态7.定期任务8.高级特性9.监控和管理 Celery 是一个基于分布式消息传递的异步任务队列。它专注于实时操作&#xff0c;但也支持调度。Celery 可以与 Django, Flask, Pyramid 等 Web 框架集…...

vue中的nextTick() - 2024最新版前端秋招面试短期突击面试题【100道】

nextTick() - 2024最新版前端秋招面试短期突击面试题【100道】 &#x1f504; 在Vue.js中&#xff0c;nextTick 是一个重要的方法&#xff0c;用于在下次DOM更新循环结束之后执行回调函数。理解 nextTick 的原理和用法可以帮助你更好地处理DOM更新和异步操作。以下是关于 next…...

5G学习笔记三之物理层、数据链路层、RRC层协议

5G学习笔记三之物理层、数据链路层、RRC层协议 物理层位于无线接口协议栈的最底层&#xff0c;作用&#xff1a;提供了物理介质中比特流传输所需要的所有功能。 1.3.1 传输信道的类型 物理层为MAC层和更高层提供信息传输的服务&#xff0c;其中&#xff0c;物理层提供的服务…...

Ubuntu 通过Supervisor 或者 systemd 管理 .Net应用

在 Ubuntu 上安装 .NET 8.0&#xff0c;通过 supervisor 或 systemd 管理 .NET 应用服务&#xff0c;确保应用能够自动启动、运行以及在崩溃时重启。 1. 安装 .NET 8.0 最新的Ubuntu版本已经不需要注册 Microsoft 包存储库了&#xff0c;具体的可以参考微软官方文档安装&…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...