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非常相似,区别在于,声明的变量,只在当前作用域内可以被访问,并且不允许重复声明

//for内部定时器访问
for(let i = 0 ; i < 10 ; i++){
    setTimeout(function(){
        console.log(i);//分别打印0-9
    },1000)
}

//for外部访问
for(let i = 0 ; i < 10 ; i++){

}
console.log(i) //报错 Uncaught ReferenceError: i is not defined

//重复声明
let a = 1;
let a = 2;
//报错
//Uncaught SyntaxError: Identifier ‘a‘ has already been declared

const

没的说,常量

作用全局,不能重复声明,如果是对象,可以修改对象内的属性

时间: 2024-11-03 00:10:45

let const var 区别的相关文章

var let const 的区别

Var let const 的区别 1.Var 定义的变量存在变量提升,而了let和const不存在变量提升.即在定义的变量代码上使用该变量,var的会输出undefined,而let的会报错. 2.var不存在暂时性死区,而let存在,只要块级作用域内存在let,它所声明的变量就绑定了这个区域,不在受外部的影响 例如:var tem=123: if(true){ tem='abc';   //报错 ReferenceError,因为在if里声明了let,形成了自己的作用域,外部的访问不到,所以

const,var,let区别(转载)

1.const定义的变量不可以修改,而且必须初始化. const b = 2;//正确 // const b;//错误,必须初始化 console.log('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错. var a = 1; // var a;//不会报错 console.log('函数外var定义a:'

var const let 区别

var  const   let  区别 今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1. const 定义的变量是不可修改的,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + b);//有输出值 4 // b = 5; 5 // console.log('函数外修改const定义b:

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&

const char* &amp;p 和 char* const &amp;p 区别

const char* &p 和 char* const &p 两种引用: 两者都是对一个对象的引用. 但是前者的"这个对象"是 const char*,一个指向 const char 的指针,注意!虽 然这个指针指向的char不可以改变,但这个指针本身的值是可以改变的,也就是说, 他可以被改变而指向另一个 const char 对象. 后者的"这个对象"则是char*, 一个指向char的指针.这个指针指向的东西是可以 改变的,但是这个指针本身是不

readonly和const的区别

readonly与const的区别1.const常量在声明的同时必须赋值,readonly在声明时可以不赋值2.readonly只能在声明时或在构造方法中赋值(readonly的成员变量可以根据调用不同的构造方法赋不同的值)3.const前面不能添加static(因为Const本来就是一个静态常量),readonly前面可以添加static4.const在编译的时候赋值,readonly在运行的时候赋值5.const能在方法内声明,readonly不能在方法内声明 class ReadOnlyA

宏定义 #define 和常量 const 的区别

宏定义 #define 和常量 const 的区别 类型和安全检查不同 宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误: const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查 编译器处理不同 宏定义是一个"编译时"概念,在预处理阶段展开,不能对宏定义进行调试,生命周期结束与编译时期: const常量是一个"运行时"概念,在程序运行使用,类似于一个只读行数据 存储方式不同 宏定义是直接替换,不会分配内存,存储与

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] =

var、let、const的区别,已经作用范围。

在es5中一般经常使用的变量有两个级别,一个是用var声明的全局级别的变量,另外一个是函数级别是用var生命在函数内的.本文中将详细讲解我对es6中的const和let的区别. let的使用以及作用范围 let是块级变量,只有在自己声明的内部才会有作用. 'use strict'; { var a = 12; let b = 15; { console.log(a, b)//12 15没有问题的. } } console.log(a,b) //12 defined a是全局变量在哪里输出都没有问