我的编程空间,编程开发者的网络收藏夹
学习永远不晚

分享ES6 20个经常使用技巧

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

分享ES6 20个经常使用技巧

前言:

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 技巧内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

分享ES6 20个经常使用技巧

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

20个Python常用技巧分享

Python的可读性和简单性是其广受欢迎的两大原因,本文介绍20个常用的Python技巧来提高代码的可读性,并能帮助你节省大量时间,下面的技巧将在你的日常编码练习中非常实用
2023-05-14

分享20个Unix/Linux 命令技巧

让我们用这些Unix/Linux命令技巧开启新的一年,提高在终端下的生产力。我已经找了很久了,现在就与你们分享。> /path/to/file.log # 或使用如下格式 : > /path/to/file.log# 然后删除它 rm /
2022-06-04

MyEclipse常用的使用技巧分享

这篇文章主要介绍“MyEclipse常用的使用技巧分享”,在日常操作中,相信很多人在MyEclipse常用的使用技巧分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyEclipse常用的使用技巧分享”的疑
2023-06-17

linux系统常用的技巧分享

这篇文章主要介绍“linux系统常用的技巧分享”,在日常操作中,相信很多人在linux系统常用的技巧分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux系统常用的技巧分享”的疑惑有所帮助!接下来,请跟
2023-06-13

分享9个实用的Python技巧

本篇内容介绍了“分享9个实用的Python技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!清理字符串输入对用户输入进行清理的问题几乎适用于
2023-06-16

python property的使用技巧分享

property属性一种用起来像是使用实例属性一样的特殊属性,可以对应于某个方法既要保护类的封装特性,又要让开发者可以使用 对象.属性 的方式操作方法,@property 装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对 (
2022-06-02

编程热搜

目录