了解javascript中let和var及const关键字的区别


Posted in Javascript onMay 24, 2019

1.声明后未赋值,表现相同

//一个例子
'use strict';

(function() {
 var varTest;
 let letTest;
 console.log(varTest); //输出undefined
 console.log(letTest); //输出undefined
}());

2.使用未声明的变量,表现不同

//一个例子
(function() {
 console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)
 console.log(letTest); //直接报错:ReferenceError: letTest is not defined

 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
}());

3.重复声明同一个变量时,表现不同

//一个例子
'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
var varTest = 'varTest changed.';
 let letTest = 'letTest changed.'; //直接报错:SyntaxError: Identifier 'letTest' has already been declared
 console.log(varTest); //输出varTest changed.(注意要注释掉上面letTest变量的重复声明才能运行)
 console.log(letTest);
}());

4.变量作用范围,表现不同

//一个例子
'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 {
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.';
 }
 console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明
 console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量
}());

5.const定义的变量不可以修改,而且必须初始化

//一个例子
const b = 2;//正确
// const b;//错误,必须初始化 
console.log('函数外const定义b:' + b);//有输出值
// b = 5;
// console.log('函数外修改const定义b:' + b);//无法输出

6.var定义的变量可以修改,如果不初始化会输出undefined,不会报错

var a = 1;
// var a;//不会报错
console.log('函数外var定义a:' + a);//可以输出a=1
function change(){
a = 4;
console.log('函数内var定义a:' + a);//可以输出a=4
} 
change();
console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4

7.let是块级作用域,函数内部使用let定义后,对函数外部无影响

let c = 3;
console.log('函数外let定义c:' + c);//输出c=3
function change(){
let c = 6;
console.log('函数内let定义c:' + c);//输出c=6
} 
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3

学习到此结束!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript Array.remove() 数组删除
Aug 06 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
Jun 27 Javascript
jquery 插件学习(二)
Aug 06 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
Jun 02 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
vue仿element实现分页器效果
Sep 13 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
js验证身份证号码记录的方法
Apr 26 Javascript
jquery中为什么能用$操作
Jun 18 jQuery
Vue通过provide inject实现组件通信
Sep 03 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 #Javascript
小程序登录/注册页面设计的实现代码
May 24 #Javascript
微信小程序+云开发实现欢迎登录注册
May 24 #Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 #Javascript
Electron-vue开发的客户端支付收款工具的实现
May 24 #Javascript
JS实现判断数组是否包含某个元素示例
May 24 #Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 #Javascript
You might like
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python如何统计代码运行的时长
2019/07/24 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Python 实现微信自动回复的方法
2020/09/11 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
linux下进程间通信的方式
2013/01/23 面试题
竞选劳动委员演讲稿
2014/04/28 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
销售目标责任书
2014/07/23 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
英雄儿女观后感
2015/06/09 职场文书
Python实现简单的猜单词
2021/06/15 Python
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers