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

作者:凉拌黄瓜 时间:2024-05-09 15:06:06 

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

学习到此结束!

来源:https://blog.csdn.net/weixin_42009638/article/details/90320773

标签:let,var,const,js,关键字
0
投稿

猜你喜欢

  • Python实现带百分比的进度条

    2022-03-10 00:43:47
  • Python图片验证码降噪和8邻域降噪

    2023-09-16 10:05:49
  • Python温度转换实例分析

    2023-08-21 22:48:32
  • 不需要用到正则的Python文本解析库parse

    2022-11-08 17:28:09
  • 在NumPy中创建空数组/矩阵的方法

    2023-11-02 05:30:35
  • pycharm第三方库安装失败的问题及解决经验分享

    2023-07-11 01:50:45
  • 创建SparkSession和sparkSQL的详细过程

    2023-02-13 14:40:40
  • python变量命名的7条建议

    2021-05-15 20:16:07
  • Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

    2023-06-18 23:56:20
  • Python爬虫实战之虎牙视频爬取附源码

    2021-04-02 01:23:27
  • 解决PyCharm不运行脚本,而是运行单元测试的问题

    2023-04-12 01:08:53
  • 解决pycharm回车之后不能换行或不能缩进的问题

    2023-06-11 10:45:40
  • 在Linux系统的命令行中为MySQL创建用户的方法

    2024-01-18 00:52:30
  • Python逐行读取文件中内容的简单方法

    2023-03-02 16:01:09
  • python实现中文转换url编码的方法

    2021-05-26 08:46:57
  • python定时截屏实现

    2021-01-28 22:04:09
  • 不同情况下修复Access数据库的实用方法

    2008-11-28 16:18:00
  • 对python当中不在本路径的py文件的引用详解

    2022-12-17 15:12:42
  • python如何正确的操作字符串

    2023-12-28 02:46:30
  • JS代码格式化和语法着色V2

    2023-07-02 05:18:27
  • asp之家 网络编程 m.aspxhome.com