分享ES6 20个经常使用技巧

目录
  • 前言:
  • 1.打乱数组顺序
  • 2.删除数字之外的所有字符
  • 3.反转字符串或者单词
  • 4.将十进制转换为二进制文件或十六进制数
  • 5.合并多个对象
  • 6.=== 和 == 的区别
  • 7.解构赋值
  • 8.交换变量的值
  • 9.字符串
    • 9.1判断回文字符串
    • 9.2判断两个字符串是否为互相排列
  • 10.可选链操作符
  • 11.三目运算符
  • 12.从数组中随机选择一个值
  • 13.冻结对象
  • 14.删除数组重复的元素
  • 15.保留指定位小数
  • 16.清空数组
  • 17.从 RGB 转换为 HEX
  • 18.从数组中获取最大值和最小值
  • 19.空值合并运算符
  • 20.过滤数组中值为 false 的值

前言:

ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言  。

另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等

1.打乱数组顺序

let arr = ['', 67, true, false, '55']
arr = arr.sort(() => 0.5 - Math.random())
console.log(arr)
// [ '', '55', 67, false, true ]

2.删除数字之外的所有字符

const str = 'xieyezi 23213 is 95994 so hansome 223333'
const numbers = str.replace(/\D/g, '')
console.log(numbers)
// 2321395994223333

3.反转字符串或者单词

const sentence = 'xieyezi js so handsome, lol.'
const reverseSentence = reverseBySeparator(sentence, "")
console.log(reverseSentence);
// .lol ,emosdnah os sj izeyeix

const reverseEachWord = reverseBySeparator(reverseSentence, " ")
console.log(reverseEachWord)
// izeyeix sj os ,emosdnah .lol

function reverseBySeparator(string, separator) {
  return string.split(separator).reverse().join(separator)
}

4.将十进制转换为二进制文件或十六进制数

const num = 45
num.toString(2)
num.tostring(16)

5.合并多个对象

const city = {
  name: 'Chongqing',
  population: '1,234,567,890'
}
const location = {
  longitude: '116.4',
  latitude: '39.9'
}
const fullCity = { ...city, ...location }
console.log(fullCity)
// {
//   name: 'Chongqing',
//   population: '1,234,567,890',
//   longitude: '116.4',
//   latitude: '39.9'
// }

6.=== 和 == 的区别

// ==   ->  类型转换 (浅比较)
// ===  ->  无类型转换 (严格比较)

0 == false // true
0 === false // false
1 == "1" // true
1 === "1" // false
null == undefined // true
null === undefined // false

7.解构赋值

const forest = {
  location: 'Sweden',
  animals: 3,
  animalsTypes: ['Lions', 'Tigers', 'Bears'],
};

const { location, animals, animalsTypes } = forest;
const [lions, tigers, bears] = animalsTypes;

console.log(location); // Sweden
console.log(animals); // 3
console.log(lions); // Lions
console.log(tigers); // Tigers
console.log(bears); // Bears

8.交换变量的值

let bears = 'bears'
let tigers = 'tigers'
[bears, tigers] = [tigers, bears]
console.log(bears) // tigers
console.log(tribes) // bears

9.字符串

9.1判断回文字符串

const isRevervse = (str1, str2) => {
  const normalize = (str) =>
    str.toLowerCase()
    .normalize('NFD')
    .split('')
    .reverse()
    .join('')
  return normalize(str1) === str2
}
console.log(isRevervse('anagram', 'margana')) // true
console.log(isRevervse('rac', 'car')) // true

回文字符串: 正着写和反着写都一样的字符串)

9.2判断两个字符串是否为互相排列

const isAnagram = (str1, str2) => {
  const normalize = (str) =>
    str.toLowerCase()
    .normalize('NFD')
    .split('')
    .sort()
    .join('')
  return normalize(str1) === normalize(str2)
}
console.log(isAnagram('anagram', 'nagaram')) // true
console.log(isAnagram('rat', 'car')) // false
console.log(isAnagram('heArT', 'traEH')) // true

判断两个字符串是否为互相排列: 给定两个字符串,一个是否是另一个的排列

10.可选链操作符

const player = {
  name: 'xieyezi',
  rating: 1000,
  click: () => {
    return 'click'
  },
  pass: (teammate) => {
    return `Pass to ${teammate}`
  },
}
console.log(player?.name) // xieyezi
console.log(player?.click?.()) // click
console.log(player?.teammate?.()) // undefined

11.三目运算符

// condition ? expression if true : expression if false
const oxygen = 10
const diver = (oxygen < 10 ) ? 'Low oxygen' : 'High oxygen'
console.log(diver) // High oxygen

12.从数组中随机选择一个值

const elements = [24, 'You', 777, 'breaking', 99, 'full']
const random = (arr) => arr[Math.floor(Math.random() * arr.length)]
const randomElement = random(elements)
console.log(randomElement) // 777

13.冻结对象

const octopus = {
  tentacles: 8,
  color: 'blue',
}
Object.freeze(octopus)
octopus.tentacles = 10 // Error, 不会改变
console.log(octopus) // { tentacles: 8, color: 'blue'}

14.删除数组重复的元素

const animals = ['bears', 'lions', 'tigers', 'bears', 'lions']
const unique = (arr) => [...new Set(arr)]

console.log(unique(animals)) // [ 'bears', 'lions', 'tigers' ]

15.保留指定位小数

const num = 0.123456789
const fixed2 = num.toFixed(2)
const fixed3 = num.toFixed(3)

console.log(fixed2) // 0.12
console.log(fixed3) // 0.123

16.清空数组

const numbers = [1, 2, 3, 4, 5]
numbers.length = 0

console.log(numbers) // []

17.从 RGB 转换为 HEX

const rgbToHex = (r, g, b) => {
  const toHex = (num) => {
    const hex = num.toString(16)
    return hex.length === 1 ? `0${hex}` : hex
  }
  return `#${toHex(r)}${toHex(g)}${toHex(b)}`
}
console.log(rgbToHex(46, 32, 67)) // #2e2043

18.从数组中获取最大值和最小值

const nums = [1, 2, 3, 4, 5, -3, 99, -45, -1]
const max = Math.max(...nums)
const min = Math.min(...nums)
console.log(max) // 99
console.log(min) // -45

19.空值合并运算符

const nullval = null
cost emptyString = ''
const someNum = 13

const a = nullval ?? 'A default'
const b = emptyString ?? 'B default'
const c = SomeNum ?? 'C default'

console.log(a) // A default
console.log(b) // '' // empty string != undefined or null
console.log(c) // 13

20.过滤数组中值为 false 的值

const nums = [1, 0 , undefined, null, false];
const truthyNums = nums.filter(Boolean);
console.log(truthyNums) // [1]

到此这篇关于分享ES6 20个经常使用技巧的文章就介绍到这了,更多相关ES6 技巧内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 你点的 ES6一些小技巧,请查收

    ES6出来已经有好几年了,同时很多新特性可以被巧妙地运用在项目中.我想要列下其中一些,希望它们对你有用. 如果你还知道其他一些小技巧,欢迎留言.我很高兴把它们补充进来. 1. 强制要求参数 ES6提供了默认参数值机制,允许你为参数设置默认值,防止在函数被调用时没有传入这些参数. 在下面的例子中,我们写了一个required()函数作为参数a和b的默认值.这意味着如果a或b其中有一个参数没有在调用时传值,会默认required()函数,然后抛出错误. const required = () =>

  • es6中比较有用的7个技巧小结

    前言 ES6出来已经有好几年了,同时很多新特性可以被巧妙地运用在项目中.我想要列下其中一些,希望它们对你有用. 如果你还知道其他一些小技巧,欢迎留言~ 很高兴把它们补充进来. es6有用的7个技巧 数组去重 var arr = [1, 2, 3, 3, 4]; console.log(...new Set(arr)) >> [1, 2, 3, 4] 数组和布尔 有时我们需要过滤数组中值为 false 的值. 例如(0, undefined, null, false), 你可能不知道这样的技巧

  • ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】

    本文实例讲述了ES6常用小技巧.分享给大家供大家参考,具体如下: 1- 数组去重 var arr = [1,2,3,4,3,4]; var arr2 = [...new Set(arr)]; 这个时候arr2就是去重后的数组~ 2- 交换两个变量的值 let [x,y] = [1,2]; [y,x] = [x,y]; console.log(y); 3- 获取字符串中的某个字符 let arr= "hellomybo"; console.log(arr[3]); 4- 使用箭头函数代替

  • 不得不知的ES6小技巧

    如果你还知道其他一些小技巧,欢迎留言~ 很高兴把它们补充进来. 1. 强制要求参数 ES6提供了默认参数值机制,允许你为参数设置默认值,防止在函数被调用时没有传入这些参数. 在下面的例子中,我们写了一个required()函数作为参数a和b的默认值.这意味着如果a或b其中有一个参数没有在调用时传值,会默认required()函数,然后抛出错误. const required = () => {throw new Error('Missing parameter')}; const add = (

  • ES6小技巧之代替lodash

    Javascript ES6标准实行后,Lodash或者Ramada中的一些功能我们就不需要了,可以使用ES6的语法来实现 获取Object中指定键值 我们现在可以使用解包的方法快速获取对象中指定键值的值 const obj = { a:1, b:2, c:3, d:4 }; // 获取obj中a与b的值 const {a,b} = obj; // 也可以给他们取别名 const {a:A, b:B} = obj; 这个小技巧非常的方便,也是最基础的使用方法 排除Object中不需要的键值 既然

  • 分享ES6的7个实用技巧

    Hack #1 交换元素 利用 数组解构来实现值的互换 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // -> hello console.log(b) // -> world Hack #2 调试 我们经常使用 console.log()来进行调试,试试 console.table()也无妨. const a = 5, b = 6, c = 7 console.log({ a, b, c }); console.ta

  • JavaScript ES6中的简写语法总结与使用技巧

    ES6为一些已有的功能提供了非破坏性更新,这类更新中的大部分我们可以理解为语法糖,称之为语法糖,意味着,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些.本章我们将着重讨论这些语法糖,看完之后,可能你会对一些你很熟悉的ES6新语法有不一样的理解. JavaScript ES6对象字面量 对象字面量是指以{}形式直接表示的对象,比如下面这样: var book = { title: 'Modular ES6', author: 'Nicolas', publisher: 'O´Reil

  • 浅谈让你的代码更简短,更整洁,更易读的ES6小技巧

    写在文章前面 这篇文章翻译自ES6 tips and tricks to make your code cleaner, shorter, and easier to read!. 文章就代码整洁方面对es6进行了总结.如有错误欢迎指出. template literals 模板字符串 模板字符串使字符串的使用变得比以前更简单了,他们以反引号开始(`),并且能过使用${变量}来插入变量.我们来比较一下下面两行代码. var fName = 'Peter', sName = 'Smith', ag

  • ES6/JavaScript使用技巧分享

    在编写JavaScript代码的时候存在的一些方法和技巧,虽然有时候条条大路都通向罗马,但是也许总会有那么一条最短的路径可走.本文将一些都知道却不怎么用的小技巧分享给大家 一些小技巧 1.new Set() 数组的去重,在'潜意识'里面感觉就应该去循环然后对比去重,其实在ES6中新增提供了新的数据结构Set,用他可以轻松去重数组,比如: let arr = [1,1, 2, 2, 3, 3]; let set = new Set(arr); // let newArr = Array.from(

  • 分享ES6 20个经常使用技巧

    目录 前言: 1.打乱数组顺序 2.删除数字之外的所有字符 3.反转字符串或者单词 4.将十进制转换为二进制文件或十六进制数 5.合并多个对象 6.=== 和 == 的区别 7.解构赋值 8.交换变量的值 9.字符串 9.1判断回文字符串 9.2判断两个字符串是否为互相排列 10.可选链操作符 11.三目运算符 12.从数组中随机选择一个值 13.冻结对象 14.删除数组重复的元素 15.保留指定位小数 16.清空数组 17.从 RGB 转换为 HEX 18.从数组中获取最大值和最小值 19.空

  • 20个JS简写技巧提升工作效率

    目录 当同时声明多个变量时,可简写成一行 利用解构,可为多个变量同时赋值 巧用三元运算符简化if else 使用||运算符给变量指定默认值 使用&&运算符简化if语句 使用解构交换两个变量的值 适用箭头函数简化函数 使用字符串模板简化代码 多行字符串也可使用字符串模板简化 对于多值匹配,可将所有值放在数组中,通过数组方法来简写 巧用ES6对象的简洁语法 使用一元运算符简化字符串转数字 使用repeat()方法简化重复一个字符串 使用双星号代替Math.pow() 使用双波浪线运算符(~~)

  • 分享令人目瞪口呆的 Java 代码技巧

    技术点 本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情. 基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限.多租户.数据权限.工作流.三方登录.支付.短信.商城等功能. 项目地址:https://github.com/YunaiV/ruoyi-vue-pro 开发

  • 分享JPA的几个小技巧

    关系型数据库其实很讨人厌,尤其是在你使用数据库驱动的开发模式时.需要首先把表给创建好了,然后再使用代码生成器反向生成一堆几乎无法可读的代码.当字段有变更的时候,又是一番折腾. 这其中的典型,就是MyBatis,所以催生了更加简洁的MyBatis Plus. 了解到一些大厂(阿里.腾讯.抖音等),JPA的使用也越来越广泛了,包括我们公司,这是把合适的工具放到了合适的地方.如果想要快速开发,JPA无疑是一个比较好的选择.你无需关注数据库表的结构,使用代码驱动即可完成工作,管它后面是MySQL还是Or

  • 详解CSS开发过程中的20个快速提升技巧

    1.使用CSS重置(reset) css重置库如normalize.css已经被使用很多年了,它们可以为你的网站样式提供一个比较清晰的标准,来确保跨浏览器之间的一致性. 大多数项目并不需要这些库包含的所有规则,可以通过一条简单的规则来应用于布局中的所有元素,删除所有的margin.padding改变浏览器默认的盒模型. *{box-sizing:border-box;margin:0;padding:0} 使用box-sizing声明是可选择,如果你使用下面继承的盒模型形式可以跳过它. 2.继承

  • 最实用的20个python小技巧

    目录 1.用itertools排列 2.单行条件表达式 3. 反转字符串 4. 使用 Assert 处理异常  5. 对多个输入使用拆分 6. 用 zip() 转置矩阵 7. 资源上下文管理器 8. 下划线作为分隔符 9. 尝试 f 字符串格式 10.用这个技巧交换整数 11. 使用 lambda 代替函数 12.多次打印无循环  13. 将字符串解包为变量 14. 使用 Map 进行列表理解 15. 从列表中删除重复项 16. 打印语句中的条件  17. 条件列表 All 和 Any 18.

  • 分享18 个 Python 高效编程技巧

    目录 01 交换变量 02 字典推导(Dictionary comprehensions)和集合推导(Set comprehensions) 03 计数时使用Counter计数对象. 04 漂亮的打印出JSON 05 解决FizzBuzz 06 if 语句在行内 07 连接 08 数值比较 09 同时迭代两个列表 10 带索引的列表迭代 11 列表推导式 12 字典推导 13 初始化列表的值 14 列表转换为字符串 15 从字典中获取元素 16 获取列表的子集 17 迭代工具 18 False

  • 你需要掌握的20个Python常用技巧

    目录 1.字符串反转 2.每个单词的第一个字母大写 3.字符串查找唯一元素 4.重复打印字符串和列表n次 5.列表生成 6.变量交换 7.字符串拆分为子字符串列表 8.多个字符串组合为一个字符串 9.检测字符串是否为回文 10.统计列表中元素的次数 11.判断两个字符串是否为Anagrams 12.使用try-except-else-block模块 13.使用枚举函数得到key/value对 14.检查对象的内存使用情况 15.合并字典 16.计算执行一段代码所花费的时间 17.列表展开 18.

  • 分享11个常用JavaScript小技巧

    目录 1.通过条件判断向对象添加属性 2.检查对象中是否存在某个属性 3.解构赋值 4.循环遍历一个对象的key和value 5.使用可选链(Optionalchaining)避免访问对象属性报错 6.检查数组中falsy的值 7.数组去重 8.检查是否为数组类型 9.数字&字符串类型转换 10.巧用空值合并(??) 11.通过!!进行布尔转换 在我们的日常开发过程中,我们经常会遇到数字与字符串转换,检查对象中是否存在对应值,条件性操作对象数据,过滤数组中的错误值,等等这类处理. 在这里,整理出

随机推荐