javascript - es6 对象语法
PHP中文网
PHP中文网 2017-05-19 10:38:56
[JavaScript讨论组]

这句话是什么意思

var { auth = true } = meta

感觉{}是一个对象,但是里面的格式又不太对不是应该是{ auth: true }吗,然后又赋值meta的值?不懂是什么意思

PHP中文网
PHP中文网

认证0级讲师

全部回复(6)
某草草

这里是ES6中对象解构

//对象的解构也可以指定默认值。
var {x = 3} = {};
x // 3

var {x, y = 5} = {x: 1};
x // 1
y // 5

var {x:y = 3} = {};
y // 3

var {x:y = 3} = {x: 5};
y // 5

var { message: msg = 'Something went wrong' } = {};
msg // "Something went wrong"

这类问题,希望你通过 babeljs.io 官方在线编译器,便以后查看

// 上面的代码,可以这样理解
var auth = meta.auth === undefined ? true : meta.auth;
習慣沉默

解构赋值。

es6的新功能。

迷茫

外面这个是解构赋值

里面这个是给默认值

淡淡烟草味
var meta = {
    auth: 33   // 把这个去掉你看看输出的值是什么?
};

// {auth = true}  是设置默认值。
var { auth = true } = meta;  // meta 是一个对象, 如果auth没有, auth 等于 true

console.log(auth);
某草草

用es5来写的话, 是这样:

var auth = (typeof meta.auth!=='undefined')? meta.auth: true;
阿神

ES6的解构赋值

{ auth = true } 等于是给auth赋了一个默认值,如果meta对象里面auth属性的值是undefined,就会把默认值true赋给变量auth

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号