JavaScript - JavaScript 运算符之圆括号运算符与方括号运算符(圆括号运算符概述、圆括号运算符用法、方括号运算符概述、方括号运算符用法)

一、圆括号运算符概述

  • 圆括号运算符(())主要用于函数调用、表达式分组、多种语法结构登

二、圆括号运算符用法

  1. 调用函数
function greet() {console.log("Hello!");
}greet();
# 输出结果Hello!
  1. 当箭头函数有多个参数或零个参数时需要括号
const add = (a, b) => a + b;
const sayHi = () => console.log("Hi");
// 可加括号,可不加括号const sayContent = content => console.log(content);const sayContent = (content) => console.log(content);
  1. 立即调用函数表达式,即立即执行函数
(function () {console.log("立即执行");
})();(function (name) {console.log("Hello, " + name);
})("Alice");
# 输出结果立即执行
Hello, Alice
  1. 改变运算优先级

括号可以改变表达式的计算顺序:

const result1 = (2 + 3) * 5;
const result2 = 2 + 3 * 5;console.log(result1);
console.log(result2);
# 输出结果25
17
  1. 分组表达式
const a = 1,b = 2,c = 3;
const max = a > b ? (a > c ? a : c) : b > c ? b : c;console.log(max);
# 输出结果3
  1. 箭头函数直接返回对象字面量时需要括号,否则会返回 undefined
const createObject = (a, b) => {a, b
};
console.log(createObject(1, 2));
# 输出结果undefined
const createObject = (a, b) => ({a,b
});
# 输出结果{a: 1, b: 2}
// 对比返回其他字面量const createNum = (a, b) => a + b;
console.log(createNum(1, 2));const createString = (str) => "Hello, " + str;
console.log(createString("Alice"));const createArray = (a, b) => [a, b];
console.log(createArray(1, 2));
# 输出结果3
Hello, Alice
(2) [1, 2]
  1. 对象中的简洁方法定义
const obj = {sayHello() {console.log("Hello");},
};
  1. 正则表达式分组匹配
const str = "2023-01-15";
const match = str.match(/(\d{4})-(\d{2})-(\d{2})/);
console.log(match[1]);
# 输出结果2023
  1. 与逗号操作符结合使用
const a = (1, 2, 3);
console.log(a);
# 输出结果3

三、方括号运算符概述

  • 方括号运算符([])用于访问对象属性、数组元素、计算属性名等,相比点表示法(.)更加灵活

四、方括号运算符用法

  1. 访问对象属性
const person = {name: "Alice",age: 25,"favorite-color": "blue", // 包含特殊字符的属性名必须用字符串
};// 点表示法
console.log(person.name);// 括号表示法
console.log(person["name"]);
console.log(person["favorite-color"]); // 点表示法无法访问
# 输出结果Alice
Alice
blue
  1. 动态属性访问
const person = {name: "Alice",age: 25,"favorite-color": "blue",
};const propertyName1 = "name";
console.log(person[propertyName1]);const propertyName2 = "favorite-color";
console.log(person[propertyName2]);
# 输出结果Alice
blue
  1. 访问数组元素
const fruits = ["apple", "banana", "orange"];console.log(fruits[1]);
# 输出结果banana
  1. 计算属性名
const propKey = "name";
const obj = {[propKey]: "Bob",["user_" + propKey]: "user_Bob",
};console.log(obj.name);
console.log(obj.user_name);
# 输出结果Bob
user_Bob
  1. 使用 Symbol 作为属性名时,必须使用方括号
const sym = Symbol("unique");
const obj = {sym: "value",
};console.log(obj[sym]);
# 输出结果undefined
const sym = Symbol("unique");
const obj = {[sym]: "value",
};console.log(obj[sym]);
# 输出结果value

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AG-UI 协议:重构多模态交互,开启智能应用新纪元

一、协议诞生的时代背景:填补 AI 生态最后一块拼图 在人工智能技术飞速发展的今天,AI 代理(Agent)作为能够主动执行复杂任务的智能实体,正从实验室走向生产环境,重塑各个行业的工作流程。然而,…

嵌入式学习的第二十天-数据结构-调试+链表的一般操作

一、调试 1.一般调试 2.找段错误 二、链表的一般操作 1.单链表的修改 int ModifyLinkList(LinkList*ll,char*name,DATATYPE*data) {DATATYPE * tmp FindLinkList(ll, name);if(NULL tmp){return 1;}memcpy(tmp,data,sizeof(DATATYPE));return 0; } 2.单链表的销毁 int D…

如何同时管理不同平台的多个账号?

在当今数字营销、电商运营、跨境贸易盛行的时代,同时管理多个平台的账号几乎成了从业者的标配。无论是做社媒营销的广告主,还是操作亚马逊、eBay、Shopee 等平台的跨境卖家,多账号运营都是提升曝光、分散风险、扩大收益的重要方式。 然而&am…

STM32外设AD/DA-基础及CubeMX配置

STM32外设AD/DA-基础及CubeMX配置 一,什么是AD/DA二,基础概念1,模拟 vs 数字2,AD转换1,分辨率 (Resolution)2,参考电压 (Reference Voltage, Vref)3,采样率 (Sampling Rate) 3,DA转换…

【软考 霍夫曼编码的文档压缩比】

霍夫曼编码的文档压缩比计算基于字符频率的最优编码分配,以下是详细步骤及相关案例: 一、压缩比计算公式 [ \text{压缩比} \frac{\text{压缩前总比特数}}{\text{压缩后总比特数 编码表存储开销}} ] 通常以 比率(如 3:1) 或 百分…

关闭VSCode 自动更新

参考:关闭VSCode 自动更新_vscode关闭自动更新-CSDN博客 vscode的设置 Update: Mode Update: Enable Windows Background Updates Extensions: Auto Check Updates Extensions: Auto Update

Flask框架搭建

1、安装Flask 打开终端运行以下命令: pip install Flask 2、创建项目目录 在Windows上: venv\Scripts\activate 执行 3、创建 app.py 文件 可以在windows终端上创建app.py文件 (1)终端中创建 使用echo命令 echo "fr…

5G-A和未来6G技术下的操作系统与移动设备变革:云端化与轻量化的发展趋势

目录 5G技术带来的革命性变革 云端化操作系统的实现路径 完全云端化模式 过渡性解决方案 未来操作系统的发展方向 功能架构演进 安全机制强化 移动设备的形态变革 终端设备轻量化 物联网设备简化 实施挑战与应对策略 技术挑战 商业模式创新 总结与展望 5G技术作为…

【漫话机器学习系列】261.工具变量(Instrumental Variables)

工具变量(Instrumental Variables)通俗图解:破解内生性困境的利器 在数据建模与因果推断过程中,我们经常遇到一个棘手问题:内生性(Endogeneity)。它会导致模型估计产生偏差,进而误导…

CSS:颜色的三种表示方式

文章目录 一、rgb和rgba方式二、HEX和HEXA方式(推荐)三、hsl和hsla方式四、颜色名方式 一、rgb和rgba方式 10进制表示方法 二、HEX和HEXA方式(推荐) 就是16进制表示法 三、hsl和hsla方式 语法:hsl(hue, satura…

支付宝授权登录

支付宝授权登录 一、场景 支付宝小程序登录,获取用户userId 二、注册支付宝开发者账号 1、支付宝开放平台 2、点击右上角–控制台,创建小程序 3、按照步骤完善信息,生成密钥时会用到的工具 4、生成的密钥,要保管好&#xff…

涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题

文章目录 摘要描述例子: 题解答案(Swift)题解代码分析动态规划核心思路初始条件 示例测试及结果示例 1:示例 2:示例 3: 时间复杂度空间复杂度总结实际场景联系 摘要 在用户体验和界面设计中,颜…

GEE计算 RSEI(遥感生态指数)

🛰️ 什么是 RSEI?为什么要用它评估生态环境? RSEI(遥感生态指数,Remote Sensing Ecological Index) 是一种通过遥感数据计算得到的、综合反映区域生态环境质量的指标体系。 它的设计初衷是用最少的变量&…

图像处理:预览并绘制图像细节

前言 因为最近在搞毕业论文的事情,要做出一下图像细节对比图,所以我这里写了两个脚本,一个用于框选并同时预览图像放大细节,可显示并返回框选图像的坐标,另外一个是输入框选图像的坐标并将放大的细节放置在图像中&…

基于javaweb的SSM驾校管理系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

限制 MySQL 服务只能被内网 `192.168.1.*` 网段的设备访问

1. 修改 MySQL 配置文件 MySQL 默认监听所有网络接口(0.0.0.0),需要将其绑定到内网 IP 地址或限制访问范围。 (1)编辑 MySQL 配置文件 找到 MySQL 的主配置文件,通常是 /etc/my.cnf 或 /etc/mysql/my.cnf。使用文本编辑器打开: sudo vi /etc/my.cnf(2)设置 bind-a…

uniapp-商城-55-后台 新增商品(分类、验证和弹窗属性)

1、概述 在前面 ,我们将商品页面的布局给完成了,这里来对表单的标签输入进行校验,看看这里的校验还是不是也需要兼容微信小程序,还有没有前面遇到的自定义正则进行校验的情况。 另外这里还需要完成商品属性的添加,就是…

PyInstaller 打包后 Excel 转 CSV 报错解决方案:“excel file format cannot be determined“

一、问题背景 在使用 Python 开发 Excel 转 CSV 工具时,直接运行脚本(python script.py)可以正常工作,但通过 PyInstaller 打包成可执行文件后,出现以下报错: excel file format cannot be determined, you must specify an engine manually 该问题通常发生在使用pandas…

【HTML 全栈进阶】从语义化到现代 Web 开发实战

目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选…

小结:网页性能优化

网页性能优化是提升用户体验、减少加载时间和提高资源利用率的关键。以下是针对网页生命周期和事件处理的性能优化技巧,结合代码示例,重点覆盖加载、渲染、事件处理和资源管理等方面。 1. 优化加载阶段 减少关键资源请求: 合并CSS/JS文件&a…