导入模块为const和node.js中的var之间的区别

use*_*486 5 declaration require node.js node-modules

我正在为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')
Run Code Online (Sandbox Code Playgroud)

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

var mqtt = require('mqtt')  
var client = mqtt.connect('mqtt://broker.hivemq.com')
Run Code Online (Sandbox Code Playgroud)

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

let mqtt = require('mqtt')  
let client = mqtt.connect('mqtt://broker.hivemq.com')
Run Code Online (Sandbox Code Playgroud)

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

我正在使用node.js v6

Pau*_*aul 12

无论您是否使用它require,都const意味着无法重新分配变量,同时let允许重新分配变量.两个letconst是块作用域,而var是函数作用域.一般来讲,使用ES6兼容的东西(这点V6大多是ES6兼容)大多数人建议喜欢constlet从不(或很少)使用var.这倾向于提供大多数人期望的范围行为,特别是如果来自另一种语言.

对于你的require陈述,我想不出你想要重新分配这些变量的情况,所以const应该是首选的方法.

  • 我在@ ramon22之前从未见过这种语法。我只看过“从'粉笔'导入粉笔”。 (2认同)