笔记:var,const和let关键字区别

在大部分开发者看来,ECMAScript和JavaScript表达的是同一种含义,但是严格的说,两者的意义是不同的。ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言, JavaScript 是 ECMAScript 的一种实现。理解 JavaScript 是 ECMAScript 一种实现后,可以帮助开发者理解小程序中的 JavaScript同浏览器中的 JavaScript 以及 NodeJS 中的 JavaScript 是不相同的。
目前开发者大部分使用的是 ECMAScript 5 和 ECMAScript 6 的标准,ES5不支持let,const。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

声明变量关键字 const ???
我查了资料后,整理了一下并用了几个简单的例子来解释它们。


js中有三种声明变量的关键字,我们最常用的就是var关键字了, ## var
var关键字定义的变量可修改,此变量也可不初始化(不会报错,浏览器无法解析,会输出`undefined`)。

结果:a=3,b=undefined

const

const类似于java中的static final关键字,之后不可修改,保证数据安全性,但必须初始化,否则会报错。


报错:index.html:23 Uncaught TypeError: Assignment to constant variable.

let

let是个定义局部变量关键字,它定义的变量作用域仅限于包含它的块中。


结果:a=3,b=6

记录一个在小程序里面遇到的坑

wx.getStorageInfoSync()方法必须得捕获异常,所以在这里只用const声明变量是不合理的。

try {
const res = wx.getStorageInfoSync()  //此处res由const声明会报错,应该改为 var res=....
console.log("本地缓存:" + res.keys)
} catch (e) {
console.error('查询缓存数据失败。')
}
if (res.currentSize > 0) {           // 错误提示无法识别res这个变量,使用var声明就可以了
console.log("本地有缓存。")
}

修改之后:

try {
var res = wx.getStorageInfoSync() 
console.log("本地缓存:" + res.keys)
} catch (e) {
console.error('查询缓存数据失败。')
}
if (res.currentSize > 0) {          
console.log("本地有缓存。")
}

你可能感兴趣的:(js,笔记,var,const,let)