【es6】【变量的解构赋值】【字符串,数值和布尔值解构】【函数参数的解构赋值】【用途】
2018-01-23 16:45
1116 查看
字符串的解构赋值
const [a,b,c,d,e] = "nihao"; //此时字符串被转换成一个类似数组的对象let {length: len} = "nihao";//****
len // 5
a // "n"
b // "i"
c // "h"
d // "a"
e // "o"
数值和布尔值的解构赋值
let {toString:s} = 123;s === Number.prototype.toString // true
let {toString:s} = true;
s === Boolean.prototype.toString // true
-----------------------
因为,数值和布尔值的包装对象都有toString属性,所以,以上会返回true
-----------------------
let { prop: x } = undefined;
let { prop:y } = null;
以上都会报 TypeError,null和undefined无法转变为对象
函数参数的解构赋值
let move = function ([x,y]) {return x + y;
}
move([1,2]);// 3
用途
1,交换变量的值let x = 1;
let y = 2;
[x,y] = [y,x];
2,取出函数返回对象和数组里的值
function ahv() {
return [1,2,3];
}
let [a,b,c] = ahv();
---------------------
function ahv1() {
return {
foo:1,
bar:2,
};
}
let { foo:xlfd,bar:lxh } = ahv1();
3,定义函数参数
function f([x,y,z]) { ... }
f([1,2,3]);
或
f([z:3,y:2,x:1]);
4,提取JSON数据
let jsonData = {
id:42,
status:"200",
data:[658,786]
};
let { id,status,data:number } = jsonData;
5,遍历Map结构
const map = new Map();
map.set('first','nihao');
map.set('second','sijie');
for (let [key,value] of map) {
console.log(key + "是" + value);
}
// first 是 nihao
// second 是 sijie
----------------
也可以单独获取键名或键值
----------------------
for (let [key] of map) {
...
}
for (let [ , key ] of map) {
...
}
相关文章推荐
- ES6——Day3(字符串的解构赋值+函数参数解构赋值)
- 16、ES6 数值和布尔值的解构赋值
- ES6学习随笔--字符串模板、解构赋值、对象、循环、函数、Promise、Generrator
- 11、ES6 函数参数的解构赋值
- 变量的解构赋值---函数参数的解构赋值
- ES6-变量的结构赋值-数值和布尔值
- ES6-变量的结构赋值-函数参数
- es6 变量的解构赋值
- ES6学习——新的语法:函数参数解构
- js-es6-变量的解构赋值
- ES6中变量的解构与赋值
- ECMAScript6(ES6)之解构赋值(数组,对象,字符串)
- ES6中变量解构的用途—遍历Map结构
- es6学习之变量的解构赋值
- ES6学习之变量的解构赋值
- ES6学习——变量的解构赋值
- 写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串
- ES6解构赋值的功能与用途实例分析
- es6 剩余参数+ 解构赋值+默认值
- ES6学习总结之解构赋值及字符串模板