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

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.xdnf.cn/news/6720.html

相关文章:

  • 最新开源 TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人 | 社区来稿
  • [ linux-系统 ] 进程优先级 | Linux内核O(1)算法
  • 解决uni-app开发中的“TypeError: Cannot read property ‘0‘ of undefined“问题
  • 51单片机的lcd12864驱动程序
  • 裸金属服务器和云服务器之间的差别
  • ansible进阶06
  • NX二次开发C#---遍历当前工作部件实体并设置颜色
  • SQL练习(6/81)
  • 【Linux】Linux安装并配置MongoDB
  • 游戏引擎学习第285天:“Traversables 的事务性占用”
  • 基于51单片机和8X8点阵屏、矩阵按键的匹对消除类小游戏
  • 服务器性能参数分析基础:磁盘-CPU-内存
  • 关于如何本地启动xxl-job,并且整合SpringBoot
  • 最新模型集合(仅用于个人收集)
  • 前端批量下载文件打包为zip
  • 【Unity】用事件广播的方式实现游戏暂停,简单且实用!
  • 5月16日day27打卡
  • LED接口设计
  • R语言学习--Day03--数据清洗技巧
  • day32-多线程juc
  • QML元素 - OpacityMask
  • [BJDCTF2020]The mystery of ip
  • Python 在自动驾驶数据标签中的应用:如何让 AI 读懂道路?
  • 2025年山东省省赛数模竞赛C题完整论文+代码分享
  • 【动态导通电阻】GaN HEMT动态导通电阻的精确测量
  • 罗杰斯高频板技术解析:低损耗基材如何定义 5G 通信未来
  • tauri2项目使用tauri-plugin-updater配置更新程序流程
  • 如何阅读、学习 Tcc (Tiny C Compiler) 源代码?如何解析 Tcc 源代码?
  • VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae
  • iOS音视频解封装分析