var和let都用于javascript中的变量声明, 但是它们之间的区别在于var是函数范围的, 而let是块范围的。
可以说, 与let相比, 在整个程序中都定义了用var声明的变量。
一个例子将更好地阐明差异
var的示例:
Input:console.log(x);
var x=5;
console.log(x);
Output:undefined5
文章图片
let的示例:
Input:console.log(x);
let x=5;
console.log(x);
Output:Error
文章图片
让我们看看JavaScript中的代码:
代码1:
<
html>
<
body>
<
script>
//calling x after definition
var x = 5;
document.write(x, "\n");
//calling y after definition
let y = 10;
document.write(y, "\n");
//calling var z before definition will return undefined
document.write(z, "\n");
var z = 2;
//calling let a before definition will give error
document.write(a);
let a = 3;
<
/script>
<
/body>
<
/html>
输出如下
文章图片
【JavaScript中var和let之间有什么区别()】代码2:
在下面的代码中, 单击"开始"将调用一个函数, 该函数每0.5秒更改两个标题的颜色。第一个标题的颜色存储在var中, 而第二个则通过使用let声明。
然后都可以在功能块外部访问它们。 Var将起作用, 但使用let声明的变量将显示错误, 因为let是块作用域的。
<
!DOCTYPE html>
<
html>
<
head>
<
title>
Var vs Let<
/title>
<
/head>
<
body>
<
h1 id = "var" style = "color:black;
">
lsbin<
/h1>
<
h1 id = "let" style = "color:black;
">
lsbin<
/h1>
<
button id = "btn" onclick = "colour()">
Start<
/button>
<
!-- executing function on button click -->
<
script type = "text/javascript">
function colour() {setInterval(function() {if (document.getElementById('var').style.color == 'black')
var col1 = 'blue';
else
col1 = 'black';
//setting value of color 1 through varif (document.getElementById('let').style.color == 'black') {
let col2 = 'red';
} else {
col2 = 'black';
}//setting value of color 2 through letdocument.getElementById('var').style.color = col1;
document.getElementById('let').style.color = col2;
//changing color of h1 in html
}, 500);
}
<
/script>
<
/body>
<
/html>
输出如下:
文章图片
推荐阅读
- 算法设计(字符串的不同排列|S2)
- 竞争编程的按位技巧详细指南
- 如何在Unix或Linux中使用管道()
- Java编程面试常见问题分享和解析S2
- 用于数据分析的Violin Plot用法详解
- ==和is运算符在Python中的区别
- jQuery post()方法用法示例介绍
- 8085程序将灰度数字转换为二进制
- 算法题(Knight巡回问题的Warnsdorff算法实现)