ES6 语法积累

目录:

两数组内容交换

Array.from

删除目标对象的某一个属性

两数组内容交换

[arr1, arr2] = [arr2, arr1]

Array.from

1、将一个类数组对象或者可遍历对象转换成一个真正的数组。

let arrayLike = {
    0: ‘tom‘,
    1: ‘65‘,
    2: ‘男‘,
    3: [‘jane‘,‘john‘,‘Mary‘],
    ‘length‘: 4
}
let arr = Array.from(arrayLike)
console.log(arr) // [‘tom‘,‘65‘,‘男‘,[‘jane‘,‘john‘,‘Mary‘]]

那么,如果将上面代码中length属性去掉呢?实践证明,答案会是一个长度为0的空数组。

  这里将代码再改一下,就是具有length属性,但是对象的属性名不再是数字类型的,而是其他字符串型的,代码如下:

let arrayLike = {
    ‘name‘: ‘tom‘,
    ‘age‘: ‘65‘,
    ‘sex‘: ‘男‘,
    ‘friends‘: [‘jane‘,‘john‘,‘Mary‘],
    length: 4
}
let arr = Array.from(arrayLike)
console.log(arr)  // [ undefined, undefined, undefined, undefined ]

会发现结果是长度为4,元素均为undefined的数组

  由此可见,要将一个类数组对象转换为一个真正的数组,必须具备以下条件:

  1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。

  2、该类数组对象的属性名必须为数值型或字符串型的数字

  ps: 该类数组对象的属性名可以加引号,也可以不加引号

2、将Set结构的数据转换为真正的数组:

let arr = [12,45,97,9797,564,134,45642]
let set = new Set(arr)
console.log(Array.from(set))  // [ 12, 45, 97, 9797, 564, 134, 45642 ]

Array.from 还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。如下:

let arr = [12,45,97,9797,564,134,45642]
let set = new Set(arr)
console.log(Array.from(set, item => item + 1)) // [ 13, 46, 98, 9798, 565, 135, 45643 ]

3、将字符串转换为数组:

let  str = ‘hello world!‘;
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

4、Array.from参数是一个真正的数组,这种情况,Array.from会返回一个一模一样的新数组:

console.log(Array.from([12,45,47,56,213,4654,154]))

删除目标对象的某一个属性

const person = {
  name: ‘jazz‘,
  gender: ‘male‘,
  age: 24
};
 删除目标对象的某一个属性
 方法1:
const personUnkonwAge = (({name, gender}) => ({name,gender}))(person)
console.log(personUnkonwAge)
console.log(person)
方法二:
let {name, ...personUnknowName} = person
console.log(personUnknowName)

原文地址:https://www.cnblogs.com/ostrich-sunshine/p/11051209.html

时间: 2024-11-02 16:52:17

ES6 语法积累的相关文章

WebStorm ES6 语法支持设置

ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2.0.ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言. 作为一只猴子,我也想尝试一下ES6有什么新特性,于是开始了学习之路. 在webstorm写下了这段代码,体验一下ES6语法的便利,但是一大堆报错 各种语法错误 what the fuck 相信每一只程序猴都不想在这样的环境下编码,

webpack打包不识别es6语法的坑

今天Vue项目npm run build 后webpack,报错uglifyjs,自己研究了一下,翻译过来,意思是不识别项目中写的高级语法,这里要把项目里es6语法转es5让浏览器识别, 也就是webpack的babel需要配置下 Babel其实是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到以下目的: 使用下一代的JavaScript代码(ES6,ES7...),即使这些标准目前并未被当前的浏览器完全的支持: 使用基于JavaScript进行了拓展的语言,比如Rea

.Vue 文件 ES6 语法 webstorm 中的一个识别Bug

webstorm 2017 版本中即使安装了vue template file 设置了 js 语言为 es6 语法仍旧会出现识别不了划线的情况,苦寻很久,最后解决方式如下 <script type="text-ecmascript-6"> export default{ data(){ return{ msg: '' } }, components:{ } } </script> 添加  type 类型 指明为: text-ecmascript-6  亲测有效.

使用babel转码器,让浏览器支持es6语法

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,可是很多浏览器并不支持es6语法,所以我们需要一个转码工具, 把es6的语法转换成浏览器支持的javascript,Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码.在babel的安装设置里我选用的是使用node 来进行安装. 1.在你的项目下输入命令: npm install --save-dev babel-core 按回车健,运行如下: 2.配置文件.babelrc 在项目根目

ES6语法将扁平的JSON对象结构化

适用于支持ES6语法的项目中. Form表单提交整个Table的数据,每单个表单必须有唯一的name,当数据量较大时,不可能去手动设置每一个name名. 因此通过遍历出有规律的name,然后通过Form表单提交所有数据,再去处理数据,将其转为分类的结构化数据,作为参数传给后端. const obj = { id0: 'id000', id1: 'id001', id2: 'id002', num0: 'num000', num1: 'num001', num2: 'num002', card0:

Es6语法

1. let, const 这两个的用途与var类似,都是用来声明变量的,但在实际运用中他俩都有各自的特殊用途. 首先来看下面这个例子: var name = 'zach' while (true) { var name = 'obama' console.log(name) //obama break } console.log(name) //obama 使用var 两次输出都是obama,这是因为ES5只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景.第一种场景就是你现在

ES6语法的新特性

ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也是使用最多的最新的javaScript语言标准.要查看ES6的支持情况请点此. 在2009年ES5问世以后,javaScript的标准就一直没有更新.从那时起ES标准委员会就已经开始筹划新的ES标准,在2015年发布了ES6.ES6是ECMAScript 的第6个版本. 经过持续几年的磨砺,它已成为

如何让浏览器支持ES6语法,步骤详细到小学生都能看懂!

为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性进行兼容,那么浏览器肯定无法识别我们的ES6代码,好比浏览器根本看不懂我写的let和const是什么东西?只能报错了.这就是浏览器对ES6的兼容性问题. 好消息 哪里有灾难,哪里就有勇士和救兵,针对ES6的兼容性问题,很多团队为此开发出了多种语法解析转换工具,把我们写的ES6语法转换成ES5,相当于

React使用ES6语法重构组件代码

首次使用react,要注意react不同版本库,是ES5还是ES6的写法,如何做到统一.下面对于ES6语法重构组件的代码如下:(1)原始代码: <script type="text/babel">var destination=document.querySelector("#root");var LightningCounter=React.createClass({getInitialState:function(){return {strickes