【问题标题】:Difference between importing module as const and var in node.js在 node.js 中将模块导入为 const 和 var 之间的区别
【发布时间】:2017-03-22 19:31:07
【问题描述】:

我正在为 node.js 使用 mqtt 客户端

在这个链接https://blog.risingstack.com/getting-started-with-nodejs-and-mqtt/上,mqtt模块是这样导入的;

const mqtt = require('mqtt')  
const client = mqtt.connect('mqtt://broker.hivemq.com')

我的模块导入方式是这样的;

var mqtt = require('mqtt')  
var client = mqtt.connect('mqtt://broker.hivemq.com')

var 和 const 这两种方式有什么区别?如果我以这种方式导入会怎样;

let mqtt = require('mqtt')  
let client = mqtt.connect('mqtt://broker.hivemq.com')

这有关系吗?哪种编程方式正确?

我正在使用 node.js v6

【问题讨论】:

    标签: node.js declaration require node-modules


    【解决方案1】:

    无论您是否将其用于requireconst 表示该变量不能被重新分配,而let 允许它被重新分配。 letconst 都是块作用域,而 var 是函数作用域。一般来说,大多数使用 ES6 兼容的东西(哪个 node v6 主要兼容 ES6)建议更喜欢constlet,并且从不(或很少)使用var。这往往会提供大多数人所期望的作用域行为,尤其是如果来自另一种语言。

    就您的require 语句而言,我想不出您想要重新分配这些变量的情况,因此const 应该是首选方法。

    【讨论】:

    • 使用 import 怎么样,像这样:import chalk = require('chalk');
    • 在@ramon22 之前我从未见过这种语法。我只见过import chalk from 'chalk'
    猜你喜欢
    • 2020-12-23
    • 2013-11-29
    • 2018-03-19
    • 2018-12-29
    • 2021-05-29
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多