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

JavaScript 核心特性完全指南


引言

JavaScript 已经不再只是浏览器中的脚本语言,它支撑着前端、后端(Node.js)、桌面(Electron)、移动端(React Native)等多种生态。要在现代 Web 开发中游刃有余,除了会写代码,更要深刻理解语言特性、掌握常见模式和优化技巧。下面逐一深入解析 20 大核心特性。


1. 变量和数据类型

  • 基本类型StringNumberBooleanNullUndefinedSymbol

  • 引用类型ObjectArrayFunctionDateRegExp 等

const str = 'Hello';
let num = 42;
var bool = true;            // 尽量少用 var,避免 hoisting 带来的困惑
const nothing = null;
let nothing2;               // 值为 undefined
const id = Symbol('id');    // 用于对象属性的唯一键

最佳实践

  • 尽量用 const 定义不变值,用 let 替代 var

  • 遇到可能为 null 或 undefined 的值,养成使用可选链(?.)和空值合并(??)的习惯,减少报错。


2. 函数

2.1 形式多样

// 传统函数
function add(a, b) {return a + b;
}// 箭头函数(没有自己的 this) 
const mul = (a, b) => a * b;// 参数解构 + 默认值
const greet = ({ name = 'World' } = {}) => `Hello, ${name}!`;// 剩余参数
const sum = (...nums) => nums.reduce((s, n) => s + n, 0);

注意

  • 箭头函数适合简短表达式,但无法作为构造函数,也没有 arguments 对象。

  • 如果函数体较长或含逻辑分支,建议使用传统函数声明。


3. 对象和类

3.1 对象字面量

const user = {name: 'Alice',age: 28,greet() { return `Hi, I

相关文章:

JavaScript 核心特性完全指南

引言 JavaScript 已经不再只是浏览器中的脚本语言,它支撑着前端、后端(Node.js)、桌面(Electron)、移动端(React Native)等多种生态。要在现代 Web 开发中游刃有余,除了会写代码,更要深刻理解语言特性、掌握常见模式和优化技巧。下面逐一深入解析 20 大核心特性。 1.…...

CentOS系统中排查进程异常终止的日志

在CentOS系统中排查进程异常终止的日志,可通过以下步骤结合多类日志文件和工具进行综合分析: 一、核心日志文件排查 系统全局日志‌ 查看 /var/log/messages:记录系统级错误、内核消息及进程异常终止信息,如OOM Killer事件‌。…...

Vue组件安全工程的量子跃迁:从基因改造到生态免疫

总章数字生命的进化论 2023年某电商平台红蓝对抗中,一个未净化的v-html指令导致千万用户数据泄露。当我们剖开现代Web应用的器官式架构,发现90%的安全漏洞都源自组件间的信任危机。本文将带您见证如何用军工级防御体系重构Vue组件,使其具备类…...

编程技能:调试03,逐过程命令与退出调试

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:编程技能:调试02,设置断点与删除断点 回…...

基于Ubuntu22.04和OpenCV4.5.4的物联网人脸识别考勤机

前言:本人已有Ubuntu22.04的相关开发环境配置,并且默认C和机器学习基础,这里直接从安装opencv开始,完整代码在最后。具体情况具体分析,请以实际为主。 视频参考:【大厂敲门砖】从0到1做一个物联网人脸识别…...

java 排序算法-快速排序

快速排序(Quick Sort)是一种高效的排序算法,它使用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。 快速排序算法的基本思想: 选择基准值&…...

openEuler系统下源码编译安装Nginx实践教程

openEuler 24.03 LTS 源码编译安装Nginx实践教程 前言一、环境准备1. 系统要求2. 更新系统与基础配置二、依赖安装1. 安装编译工具链2. 安装Nginx核心依赖三、源码编译安装1. 下载Nginx源码2. 创建专用系统用户3. 配置编译参数4. 编译与安装四、服务配置与管理1. 创建Systemd服…...

helloword 1(安卓逆向工具简单利用)

题目 做法 下载,不要解压,直接拖入Exeinfo PE进行分析 文件后缀是apk,判断为安卓逆向题 拖进ApkIDE 先找主函数main函数,这题的flag直接出来了 (搜索内容不要习惯性空格之类,这样会找不出来)…...

基于ONT数据的乳腺癌BRCA1和BRCA2变异检测方法

评估 BRCA1/2 分子状态已成为乳腺癌患者治疗的标准操作。例如聚合酶抑制剂(PARPi)的开发和临床应用,PARPi 是肿瘤学家新疗法中的关键方式。已发现 PARPi 可改善携带 BRCA1/2 种系或体细胞突变的乳腺癌患者的临床结局,提高患者生存率和生活质量。因此,目前全球指南强烈建议…...

uniapp运行在app端如何使用缓存

uniapp运行在app端如何使用缓存 ​ 众所周知,uniapp可以一套代码,多端运行。但是需要注意的是,window对象以及document是浏览器特有的(所以app端无法使用localStorage等api),因此,uniapp贴心的为我们准备了getStorage…...

人工智能代理重塑数字成功:为何面向机器的营销是下一前沿

随着人工智能(AI)改变消费者与数字世界的互动方式,数字营销正迎来一场革命性变革。2025年4月14日发布的一项研究揭示了AI代理——代表用户自主研究、比较和推荐产品或服务的系统——的日益增长的影响力。该研究探讨了这些代理如何与在线内容交…...

《奇迹世界起源》:神之月晓活动介绍!

神之月晓是《奇迹世界起源》手游中的一项限时抽奖活动,为玩家提供了获取丰厚奖励的机会。活动期间,玩家可以通过充值达到指定金额获得抽奖资格,每次充值一定金额即可获得一次抽奖机会,每天有抽奖次数上限。 活动规则:…...

AI测试用例生成平台

AI测试用例生成平台 项目背景技术栈业务描述项目展示项目重难点 项目背景 针对传统接口测试用例设计高度依赖人工经验、重复工作量大、覆盖场景有限等行业痛点,基于大语言模型技术实现接口测试用例智能生成系统。 技术栈 LangChain框架GLM-4模型Prompt Engineeri…...

【web服务_负载均衡Nginx】二、Nginx 核心技术之负载均衡与反向代理

一、负载均衡与反向代理概述​ 在互联网应用场景中,随着用户访问量的不断增加,单台服务器往往难以满足性能和可靠性的需求。负载均衡与反向代理技术应运而生,成为保障高并发、稳定服务的关键技术。负载均衡旨在将大量的客户端请求合理分配到…...

前端基础之《Vue(6)—组件基础(2)》

接上一篇。 七、v-model深入学习 <html> <head><title>组件基础-4</title><style>.score {display: inline-block;}.score>span {display: inline-block;width: 25px;height: 25px;background: url(./assets/star.png) center center / 25p…...

计算机网络——应用层

一、HTTP报文结构 &#xff08;1&#xff09;请求 请求行&#xff1a;请求头&#xff1a;空行&#xff1a;请求体&#xff1a; &#xff08;2&#xff09;响应 状态行&#xff1a;响应头&#xff1a;空行&#xff1a;响应体&#xff1a; &#xff08;3&#xff09;补充说明…...

基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;在疫…...

《软件设计师》复习笔记(11.3)——需求获取、分析、定义、验证、管理

目录 一、软件需求概述 真题示例&#xff1a; 二、质量功能部署&#xff08;QFD&#xff09; 三、需求开发流程 需求获取 需求分析 需求定义&#xff08;SRS&#xff09; 需求验证 真题示例&#xff1a; 四、需求管理 真题示例&#xff1a; 一、软件需求概述 软件…...

iOS Google登录

iOS Google登录 SDK下载地址在 Firebase 有下载&#xff0c;要下载整个SDK文件&#xff0c;然后拿其中的Google 登录SDK来使用 Firebase 官方文档 github 下载链接...

使用 Axios 进行 API 请求与接口封装:打造高效稳定的前端数据交互

引言 在现代前端开发中&#xff0c;与后端 API 进行数据交互是一项核心任务。Axios 作为一个基于 Promise 的 HTTP 客户端&#xff0c;以其简洁易用、功能强大的特点&#xff0c;成为了前端开发者处理 API 请求的首选工具。本文将深入探讨如何使用 Axios 进行 API 请求&#x…...

使用VHDL语言实现TXT文件的读写操作

使用FPGA进行图像处理时&#xff0c;通常需要将TXT文件中的图像数据读出到TestBench中&#xff0c;并将仿真的结果写入到TXT文件中&#xff0c;用于确认图像处理的结果是否正确。 VHDL中TXT文件的读写操作如下所示&#xff0c; --------------------------------------------…...

【家政平台开发(55)】家政平台数据生命线:备份与恢复策略全解析

本【家政平台开发】专栏聚焦家政平台从 0 到 1 的全流程打造。从前期需求分析,剖析家政行业现状、挖掘用户需求与梳理功能要点,到系统设计阶段的架构选型、数据库构建,再到开发阶段各模块逐一实现。涵盖移动与 PC 端设计、接口开发及性能优化,测试阶段多维度保障平台质量,…...

AbMol—细胞因子,你用对了么?

细胞因子是干细胞、类器官、肿瘤、免疫等研究中常用到的一类蛋白试剂&#xff0c;它的种类十分丰富&#xff0c;AbMole为大家介绍各类细胞因子及其适用的实验类型。AbMole提供高品质抑制剂、细胞因子、人源单抗、天然产物、荧光染料、多肽、抗生素。 细胞因子的定义与分类 细胞…...

【AI】实现中文文章摘要的AI模型

【AI】实现中文文章摘要的AI模型 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【AI】实现中文文章摘要的AI模型简介安装库加载模型获取 PEFT 模型测试模型简介 最近逛github查看…...

累计达2.04亿户!中国联通首次公布5G网络用户数据

快科技4月18日消息&#xff0c;日前中国联通公布了2025年第一季度运营数据。 中国联通表示&#xff0c;为更好反映本公司5G发展情况&#xff0c;公司将定期披露的5G套餐用户数更新为5G网络用户数&#xff0c;5G网络用户为当期使用过5G网络的移动用户。 数据方面&#xff0c;截…...

【重学Android】1.关于@Composer注解的一点知识笔记

最新因为一些原因&#xff0c;开始重新学习Android及kotlin编程&#xff0c;也觉得可以顺带记录下这个过程中的一些知识点&#xff0c;也可以用作日后自己查找复习。 Composable 注解在 Android 开发中的使用 Composable 是 Jetpack Compose&#xff08;Android 的现代声明式…...

OAuth2AuthorizationEndpointConfigurer类介绍、应用场景和示例代码

概述 OAuth2AuthorizationEndpointConfigurer 是 Spring Security OAuth2 授权服务器模块中的一个重要配置类&#xff0c;用于配置 OAuth2 授权端点(/oauth2/authorize)。 核心功能 这个配置类主要负责&#xff1a; 处理授权码授权流程中的授权请求 处理用户同意(consent)流…...

方德桌面操作系统V5.0-G23部署Ollama+DeekSeep+OpenWebUI

​​一、解压并安装 Ollama​​ 1. 解压文件 链接&#xff1a;ollama-linux-amd64.tgz下载地址 rootyuhua-virtualmachine:~# tar -xzvf ollama-linux-amd64.tgz bin/ollama lib/ollama/cuda_v11/ lib/ollama/cuda_v11/libggml-cuda.so lib/ollama/cuda_v11/libcublas.so.1…...

过去十年前端框架演变与技术驱动因素剖析

一、技术演进脉络&#xff08;2013-2023&#xff09; 2013-2015&#xff1a;结构化需求催生框架雏形 早期的jQuery虽然解决了跨浏览器兼容性问题&#xff08;如IE8兼容性处理&#xff09;&#xff0c;但其松散的代码组织方式难以支撑复杂应用开发。Backbone.js的出现首次引入M…...

Web三漏洞学习(其三:rce漏洞)

靶场&#xff1a;NSSCTF 三、RCE漏洞 1、概述 在Web应用开发中会让应用调用代码执行函数或系统命令执行函数处理&#xff0c;若应用对用户的输入过滤不严&#xff0c;容易产生远程代码执行漏洞或系统命令执行漏洞 所以常见的RCE漏洞函数又分为代码执行函数和系统命令执行函数…...

【人力资源管理系统】C#实现

软件项目实训报告2025版 第1部分 实训的目标与主要内容1.1 实训目标1.2 实训主要内容 第2部分 最终作品的完成情况2.1 课堂上要求的功能完成情况2.1.1 完成的功能及完成情况分析1. 建立数据库2. 登录界面3. MDI主窗体显示4. 登录日志功能5.员工列表查询功能 2.2 作业中要求的功…...

C#插件与可扩展性

外接程序为主机应用程序提供了扩展功能或服务。.net framework提供了一个编程模型,开发人员可以使用该模型来开发加载项并在其主机应用程序中激活它们。该模型通过在主机和外接程序之间构建通信管道来实现此目的。该模型是使用: System.AddIn, System.AddIn.Hosting, System.…...

【工具】gtest

在写代码的时候大家是怎么判断自己所写的程序运行有没有问题呢&#xff1f;可能是在程序中穿插打印数据&#xff0c;看比对数据是否有问题&#xff0c;这是传统的肉眼观察法。如果代码量并不大&#xff0c;数据量比较少的话是比较好用的。那在数据量庞大时&#xff0c;打印信息…...

力扣DAY56-59 | 热100 | 回溯:子集、电话号码的字母组合、组合总和、括号生成

前言 中等 √ 怒刷回溯&#xff0c;逐渐有了手感&#xff0c;重点就在于设计树复原状态sometimes剪枝。 子集 我的题解 全排列的基础上修改&#xff1a;1&#xff09;每个状态&#xff08;而不是size等于数组长度&#xff09;都加入答案数组中。2&#xff09;设置指针&…...

ChatUI vs Ant Design X 技术选型对比

引言 本文从核心功能、架构设计、易用性等维度对比分析阿里巴巴的 ChatUI 和 Ant Design 的 Ant Design X&#xff0c;帮助开发者选择适合的对话式 UI 开发方案。 核心功能对比 维度ChatUIAnt Design X定位聚焦对话界面&#xff08;Chatbot&#xff09;的轻量级解决方案全面的…...

第24周:Resnet结合DenseNet

目录 前言 一、 前期准备 1. 设置GPU 2.查看数据 二、构建模型 1.划分数据集 2.划分标签 3.编译及训练模型 三、结果可视化 四、总结 前言 &#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、 前期准备 1.…...

【论文阅读20】-CNN-Attention-BiGRU-滑坡预测

这篇论文主要探讨了基于深度学习的滑坡位移预测模型&#xff0c;结合了MT-InSAR&#xff08;多时相合成孔径雷达干涉测量&#xff09;观测数据&#xff0c;提出了一种具有可解释性的滑坡位移预测方法。 [1] Zhou C, Ye M, Xia Z, et al. An interpretable attention-based deep…...

Linux根据 PID 进行性能分析

根据 PID 进行性能分析 当需要深入分析某个特定进程的性能问题时&#xff0c;Linux 提供了多种强大的工具来监控和分析进程行为。以下是针对 PID 进行性能分析的完整方法&#xff1a; 1. 基础监控命令 1.1 top - 实时监控指定进程 top -p PID1,PID2,PID3 # 监控多个PID交互…...

Spring MVC 初体验~~

Java EE三层架构 在Java EE开发中&#xff0c;系统经典的三层架构包括表现层、业务层和持久层。三层架构中&#xff0c;每一层各司其职。 表现层&#xff08;Web层&#xff09;负责接收客户端请求&#xff0c;并向客户端响应结果 业务层&#xff08;Service层&#xff09;负责…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(五级)真题

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;五级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 答案解析&#xff1a;https://blog.csdn.net/qq_33897084/article/details/147341437 一、单选题(共25题&#xff0c;共50分) 1. 以下哪个选…...

警惕阿里云中的yum update操作不当导致:/sbin/init被清空导致Linux无法正常启动

由于使用阿里云进行部署测试&#xff0c;因而会对yum update进行操作&#xff0c;这两天更新了systemd-239-82.0.3.4.al8.2.x86_64&#xff0c;但存在报错&#xff0c;然后进行yum history undo和清空yum cache&#xff0c;但出现操作Linux命令行无效。具体来说&#xff0c;几个…...

使用Selenium和Python实现Web抓取指南

1. 环境准备 安装Selenium库 bash 复制 pip install selenium 下载浏览器驱动&#xff08;以Chrome为例&#xff09; 下载对应浏览器版本的驱动&#xff1a; ChromeDriver: https://chromedriver.chromium.org/downloads 将驱动文件&#xff08;如chromedriver.exe&…...

避免IP地址关联,多个手机设备的完美公网IP问题

在现代工作室中&#xff0c;手机设备的数量常常多于一个&#xff0c;为了方便管理和使用&#xff0c;通常会将这些设备连接到同一个Wi-Fi网络。这样的做法看似无害&#xff0c;却隐藏着一个普遍而被忽视的问题&#xff1a;多个手机共用同一个公网IP。这个看似技术性的细节&…...

深入浅出 MVCC:MySQL 并发背后的多版本世界

&#x1f4cc; 一句话理解 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;&#xff1a; MVCC 指的是多版本并发控制&#xff0c;MVCC 通过为每个事务提供数据的快照版本&#xff0c;让读取操作无需加锁&#xff0c;从而实现高并发的同时&#xff0c;又能维持…...

鸿蒙-跨设备互通,设备互通提供跨设备的相机、扫描、图库访问能力,平板或2in1设备可以调用手机的相机、扫描、图库等功能。

跨设备互通 跨设备互通提供跨设备的相机、扫描、图库访问能力&#xff0c;平板或2in1设备可以调用手机的相机、扫描、图库等功能。 约束与限制 需同时满足以下条件&#xff0c;才能使用该功能&#xff1a; 设备限制 本端设备&#xff1a;HarmonyOS版本为HarmonyOS NEXT及以上…...

C#进阶学习(六)单向链表和双向链表,循环链表(下)循环链表

目录 &#x1f4ca; 链表三剑客&#xff1a;特性全景对比表 一、循环链表节点类 二、循环链表的整体设计框架 三、循环列表中的重要方法&#xff1a; &#xff08;1&#xff09;头插法&#xff0c;在头结点前面插入新的节点 &#xff08;2&#xff09;尾插法实现插入元素…...

Spring Boot配置文件优先级全解析:如何优雅覆盖默认配置?

&#x1f4da; 一、为什么需要了解配置文件优先级&#xff1f; 想象一下&#xff0c;你正在玩一个游戏&#x1f3ae;&#xff0c;游戏里有默认设置&#xff0c;但你可以通过不同的方式修改这些设置&#xff1a; 游戏内置的默认设置&#xff08;就像Spring Boot的默认配置&…...

【多目标进化算法】NSGA-II 算法(结合例子)

目录 一、NSGA-II 是干什么的? 二、通过一个简单例子来解释 例子:挑选手机 三、NSGA-II 解决步骤 1. 初始化种群 2. 非支配排序(Fast Non-dominated Sorting) 3. 拥挤度距离(Crowding Distance) 4. 选择 + 交叉 + 变异 5. 合并种群、排序、更新 四、最后结果(…...

【Spring Boot】把jar包导入本地系统

【Java】把jar包导入本地maven仓库 一、方法一&#xff1a;将 JAR 添加到项目本地的 libs/ 目录二、方法二&#xff1a;把 JAR 安装到本地 Maven 仓库&#xff08;推荐&#xff09;三、查看是否安装成功&#xff08;1&#xff09;直接用文件管理器/终端查看&#xff08;2&#…...

钧瓷收藏防坑指南:如何科学评估与理性收藏

关注大禹智库及时接收干货报告和视频 大禹智库 第 8期〔总第462期〕2025-4-17 一、价格敏感背后的收藏心理 每次钧瓷估价速算表的更新都会引发收藏圈的热议&#xff0c;这反映出藏家最核心的关切&#xff1a;“买得值不值&#xff1f;” 即便对部分藏家而言价格并非首要因素…...