let与var区别

<!DOCTYPE html>
<html>
<head>
    <title>let与var区别</title>
    <meta charset="UTF-8">
    <script type="text/javascript">
        console.log("var");

        var a = [];
        for (var i = 0; i < 10; i++) {
            a[i] = function () {
                console.log(i);
            };
        }
        a[6](); // 输出10

        console.log("let");
        var a = [];
        for (let i = 0; i < 10; i++) {
            a[i] = function () {
                console.log(i);
            };
        }
        a[6](); // 输出6

    </script>
</head>
<body>

</body>
</html>

1、let不允许在相同作用域内,重复声明同一个变量

2、let声明的变量只在它所在的代码块有效

原文地址:https://www.cnblogs.com/legendheng/p/10265674.html

时间: 2024-10-10 14:16:38

let与var区别的相关文章

ios8 swift开发:let var 区别讨论

localhost:~ hejiasheng$ xcrun swift Welcome to Swift! Type :help for assistance. 1> var a:Int a: Int = 0 2> let b:Int <REPL>:2:5: error: 'let' declarations require an initializer expression let b:Int ^ 2> let b = 5 b: Int = 5 3> b = 6 4&

let const var 区别

var 具有变量提升,但是JS没有块级作用于所以例如for循环当中var声明的变量,再for循环外部可以直接访问到 1 for(var i = 0 ; i < 10 ; i++){ 2 3 } 4 console.log(i); //10 1 for(var i = 0 ; i < 10 ; i++){ 2 setTimeout(function(){ 3 console.log(i); //打印十次10 4 },1000) 5 } let 和var非常相似,区别在于,声明的变量,只在当前作用

ES6中的let和var区别

js函数中声明变量有多种方式. var xx; function test(){ var aa; //声明一 let bb;//声明二 this.cc;//声明三 //声明一局部代码块 { let dd;//声明四 } } 那么,这三种方式有什么区别呢? **区别在于作用域不同.** let 声明的变量作用域为某个代码块.而代码块的长度可大可小.也就是说,当按声明二的方式声明一个变量时,该变量的作用范围于为整个function语句.当按声明四方式声明一个变量时,该变量的作用范围为局部的代码块.

js添加var和不加var区别

var 声明的变量,作用域是当前 function 没有声明的变量,直接赋值的话, 会自动创建变量 但作用域是全局的. //----------------- function doSth() { a = "AAA"; } doSth(); // 执行一次 doSth alert(a); // 可以看到 "AAA" //----------------- 如果用了 var //----------------- function doSth() { var a =

JS入门

一. 使用JS的三种方式 1HTML标签内嵌JS <button onclick="javascrpt:alert(222222222)" >11111</button> 2.HTML页面中直接使用JS <script type="text/javascript"> //JS代码 </script> 3引用外部JS文件 <script language="javascript" src=&qu

Javascript的内容

JS简介和变量 {JS的三种方式}            1 HTML中内嵌JS(不提倡使用)            <button onclick="javascript:alert()">点我呀!!!</button>        <button ondblclick="javascript:alert()">点我呀!!!</button>        <button onmouseover="

Shell特殊位置变量($0,$1$2,$*,$#,$$,$?,[email&#160;protected],${})

$0    文件名及路径 $1,$2    参数1,参数2 $#    传递给脚本或函数的参数个数 $$    当前Shell进程ID $?    判断上个命令的执行成功与否,0为成功. [email protected]    传递脚本或函数的所有参数 $*    传递脚本或函数的所有参数 ${} 注:[email protected]和$*都是传递脚本或函数的所有参数.被双引号" "包含时,两者有区别如下 [[email protected] shell]# cat 007.sh

C#中的Dynamic

dynamic dyn = (dynamic)1; int j = (int)dyn; 可以看到1被强制转换成dynamic,然后又被强制转换回int. 然而dynamic可以隐式的转换成任何类型,并且也可以从其他类型中转换回来, 所以上面的代码和下面的等价: dynamic dyn = 1; int j = dyn; //下面这句话会无法通过编译,typeof 运算符无法用在动态类型上 //Console.WriteLine(typeof(dynamic)); Console.WriteLin

03JavaScript程序设计修炼之道_ JS进阶 OOP、构造函数 2019-07/21-171247***0725-200514

note.txt js进阶部分 1 变量及其作用域 全局变量 局部变量 作用域 作用域链 let/var 区别 const 定义常量 2 异步专题 回调函数 同步异步 es6 Promise(使用和手写实现) 3 oop 原型 原型链 面向对象 ... es6 class 等 4 闭包 5 面试题 ... note.md 1 变量与常量 var a = 10; var一些问题 * var重复定义 会覆盖 * 没有块级作用域 * 变量会自动提升 es6 let/const * 重复定义会报错 *