
ECMAScript6的解构赋值,正则,字符串
发布日期:2021-05-18 06:11:25
浏览次数:20
分类:精选文章
本文共 2482 字,大约阅读时间需要 8 分钟。
2. 解构赋值
解构赋值是一种强大的特性,可以用来简化对象和数组的处理。在 JavaScript 中,解构赋值可以应用于数组和对象,非常适合将多个值分配给变量。
数组解构赋值
let a, b, rest;[a, b] = [1, 2];log(a, b); // 输出: 1 2
如果数组右边的元素比左边少,可以用 ...rest
来捕获剩余的元素:
let a, b, rest;[a, b, ...rest] = [1, 2, 3, 4, 5, 6];log(a, b, rest); // 输出: 1 2 [3, 4, 5, 6]
对象解构赋值
let a, b;({ a, b } = { a: 1, b: 2 });log(a, b); // 输出: 1 2
如果需要赋值并重命名,可以使用 =
运算符:
let a, b, c, rest;[a, b, c] = [1, 2];log(a, b, c); // 输出: 1 2 undefined
交换变量值
let a = 1;let b = 2;[a, b] = [b, a];log(a, b); // 输出: 2 1
函数返回的多个值
function f() { return [3, 4];}let a, b;[a, b] = f();log(a, b); // 输出: 3 4
如果函数返回多个值且数量不确定,可以使用 ...
运算符:
function f() { return [1, 2, 3, 4, 5];}let a, b, c;[a, , , b] = f();log(a, b); // 输出: 1 4
3. 正则扩展
正则表达式(Regular Expression)是 JavaScript 中用于匹配字符串的工具,通过不同的修饰符可以实现更复杂的匹配。
正则表达式的基本用法
const { log } = console;let regex1 = new RegExp('xyz', 'i');let regex2 = new RegExp(/xyz/i);log(regex1.test('xyz123'), regex2.test('xyz123')); // 输出: true true
Unicode 和 全局匹配
let regex3 = new RegExp(/xyz/ig, 'i');log(regex3.flags); // 输出: 'i'{ let s = 'bbb_bb_b'; let a1 = /b+/g; let a2 = /b+/y; log('one', a1.exec(s), a2.exec(s)); // 输出: 'bbb' 'bbb' log('two', a1.exec(s), a2.exec(s)); // 输出: null null}log('粘连模式', a1.sticky, a2.sticky); // 输出: true true
Unicode 转义
log('u-1', /^\uD83D/.test('\uD83D\uDC2A')); // 输出: truelog('u-2', /^\uD83D/u.test('\uD83D\uDC2A')); // 输出: falselog(/\u{61}/.test('a')); // 输出: falselog(/\u{61}/u.test('a')); // 输出: true
4. 字符串扩展
JavaScript 的字符串处理功能在 ES6 中得到了显著提升,尤其是在处理 Unicode 字符和新特性上的进步。
Unicode 字符处理
const { log } = console;log('a', `\u0061`); // 输出: alog('s', `\u20BB7`); // 输出: slog('s', `\u{20BB7}`); // 输出: s{ let s = '𠮷'; log('length', s.length); // 输出: 2 log('0', s.charAt(0)); // 输出: 𠮷 log('1', s.charAt(1)); // 输出: undefined}
字符串的遍历器接口
{ let s = '\u{20BB7}abc'; for (let i = 0; i < s.length; i++) { log('es5', s[i]); // 输出: 𠮷 } for (let code of s) { log('es6', code); // 输出: 𠮷 a b c }}
标签模板字符串
{ let name = "list"; let info = "hello world"; let m = `I am ${name}, ${info}`; log(m); // 输出: I am list, hello world}
字符串操作
{ let str = "string"; log('includes', str.includes("r")); // 输出: true log('start', str.startsWith('str')); // 输出: true log('start', str.endsWith('ng')); // 输出: true log('repeat', str.repeat(2)); // 输出: stringstring}
Unicode 转义的改进
{ log(String.fromCharCode("0x20BB7")); // 输出: 𠮷 log(String.fromCodePoint("0x20BB7")); // 输出: 𠮷}
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月21日 02时31分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
乒乓球问题
2023-01-23
线程、多线程和线程池面试专题
2023-01-23
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
科技前沿:React 组件之间通信的新模式与实践
2023-01-23
PHP实现异步定时多任务消息推送
2023-01-23
回溯法介绍
2023-01-23
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
SpringBoot 学习笔记完整教程4
2023-01-23
【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
2023-01-23
Servlet的三个基本方法
2023-01-23
反 TypeScript
2023-01-23
微信小程序wx.previewImage实现图片预览
2023-01-23
数据分析与处理方法
2023-01-23
分享下自己总结的Git常用命令
2023-01-23