javascript,声明变量和导入时,大括号的特殊用法

作为一个新手,今天看到一段奇怪的代码,定义变量时用大括号把变量名括起来了,还有import时也使用了大括号

import { getToken } from '@/utils/auth'

let { data } = request()

一脸懵,这是啥意思?

 

度娘一番,记录在此

1. 关于导入时的大括号(据说是ES6引入的特性)

我们知道,在javascript中,导出可以有多个,但是只有一个default, 例如

export const A = 42   //命名导出
export const B = 43   //命名导出
export const C = 44   //命名导出
export default Default = "lala"   //默认导出

这时,如果我们要在另一个文件中导入的话,对于非default的export, 我们必须用大括号的方式导入

import { A } from xxxx   //仅导入了A,而且名字必须是A

import { A, B, C } from xxxx //导入了A,B,C, 名字必须与export时的名字相同

 

对于default的导出,不用大括号

import person from xxxx   //person这个名字可以随便定义

import person, { A,B,C }  //同时导入默认的和命名的导出

2. 命名变量时,变量名字在大括号中

简单理解的话,就是同时给多个变量赋值,说起来太复杂,举个例子就明白了

function gimmeAnObject() {
    return {
        foo: "hey",
        bar: "sup"
    };
}

let data = {"foo": "abcd", "name": "unkonwn"}

console.log(gimmeAnObject()); // Object { foo="hey", bar="sup" }

var { foo, bar } = gimmeAnObject();  //foo和bar必须与右侧对象中的属性名相对应
console.log(foo); // hey
console.log(bar); // sup

var { foo } = data ; //foo必须与右侧对象中的属性名相对应

console.log(foo); // abcd

这种赋值方式也可以应用在函数的参数上,你传一个object对象给一个参数,这个object包含大量数据,但是你只对其中部分数据感兴趣,可以这样做

let myobj = {
    "name": "simon",
    "age": 14
}


function xxx({ age }){

    console.log(age)

}

xxx(myobj)

//输出为14

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果你想要在 JavaScript 文件中导出方法和变量,可以使用 ES6 模块化的语法。具体来说,你可以在 JavaScript 文件中使用 `export` 关键字导出方法和变量,然后在其他文件中使用 `import` 关键字进行导入。示例代码如下: ```javascript // utils.js 文件 export function add(a, b) { return a + b; } export const PI = 3.1415926; ``` ```javascript // main.js 文件 import { add, PI } from './utils.js'; console.log(add(1, 2)); // 输出 3 console.log(PI); // 输出 3.1415926 ``` 在上面的代码中,我们在 `utils.js` 文件中导出了 `add` 方法和 `PI` 变量,使用 `export` 关键字。然后在 `main.js` 文件中,我们使用 `import` 关键字来导入 `add` 方法和 `PI` 变量。 如果你需要导出一个默认的方法或变量,可以使用 `export default` 关键字。示例代码如下: ```javascript // utils.js 文件 export default function multiply(a, b) { return a * b; } ``` ```javascript // main.js 文件 import multiply from './utils.js'; console.log(multiply(2, 3)); // 输出 6 ``` 在上面的代码中,我们在 `utils.js` 文件中导出了 `multiply` 方法,并使用 `export default` 关键字。然后在 `main.js` 文件中,我们直接导入 `multiply` 方法,因为它是默认导出的。 需要注意的是,如果你要使用 ES6 模块化的语法,需要在 HTML 文件中的 `script` 标签中使用 `type="module"` 属性,示例代码如下: ```html <script type="module" src="main.js"></script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值