在nodejs开发学习中,发现有let申明变量,故查询了下javascript的变量申明方式:
- var 申明方式;申明了一个要么是全局,要么是函数级的变量;这种是我们最常见也是最常用的。
描述:
1. 变量声明无论出现在代码的任何位置,都会在任何代码执行之前处理;
2. 给一个非声明变量赋值会隐式创建一个全局变量(全局object的一个属性)
3.
如果不初始化,输出undefined或者''
var https;
console.log(https); //这里输出undefined或者''
- let 申明方式;申明了一个块级域的局部变量,并且可以给它一个初始化值;
描述:
1. 与var相比let把变量的作用域限制在块级
let httpz = 3;
console.log(httpz);
function change(){
let httpz = 6;
console.log(httpz);//输出6
}
change();
console.log(httpz); //输出3
- const 申明方式;创建一个只读常量,在不同浏览器上表现为不可修改;建议申明后不修改;拥有块级作用域。
描述:
1. 可以在全局作用域或者函数内申明常量,但是必须初始化常量;
2. 常量不能和它所在作用域内其它变量或者函数拥有相同名称;
const http = require('http');
// const http; 这种会报错 Missing initializer in const declaration