letvar区别

一、let不存在变量提升
首先先要了解什么叫变量提升?就是变量声明提前(!注意 不是赋值),var具有这个属性,下面有个小例子;

console.log(a)
var a='a'

如果按照编译顺序看,代码运行结果应该是报错 变量未定义
而实际结果是变量为空即:undefined
undefined 说明这个变量已经被声明了,但是还没有赋值
然而let就会会严格执行运行顺序

console.log(a)
let a='a'

二、同一个作用域下,不能重复定义同一个名称

let a=1;
let a=100;//结果会报错
console.log(a)

Uncaught SyntaxError: Identifier ‘a’ has already been declared

let a=1;
a=100;
console.log(a)

100

三、有着严格的作用域
var属于函数作用域 let属于块级(即‘{’‘}’内的)作用域

function a(){let i=1;
if(true){let i=100;console.log(i)
}
console.log(i)
}
a()

100;
1;

constlet区别

首先const具有let以上三点特性

//1.声明一个只读的常量,一旦声明,常量的值就不能改变
const a=100;
a=111;
console.log(a)
//2.声明的同时一定要赋值(常量)
const b;
//3.复杂的变量可以先声明变量的类型
const c={};
c.name='cc'
console.log(c)//正确

let const var 区别详解相关推荐

  1. 前端开发:JS中let、var和const的区别详解

    前言 前端开发过程中,JS声明变量的关键字想必开发者都不陌生,而且使用的频率在前端开发过程中也是数一数二的.JS中声明变量的关键字有三个let.var和const,但是三者的使用对比和区别也是非常重要 ...

  2. for of 的用法区别_ES6语法:var、let、const的区别详解

    今天来说说es6的语法,最基础的也就是var,let,const 的用法与区别了,我们来看看他们之间的恩怨情仇 首先来说说var,这个只要是学过js的都知道,它是用来声明一个变量的,但是它在开发中也会 ...

  3. JavaScript中let和var区别详解

    想要了解var(ES5)和let(ES6)区别,首先就要了解ES5下JS的变量提升 一.变量提升(声) 当浏览器开辟出供代码执行的栈内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用 ...

  4. const int *a和int*const a 的区别详解

    补充知识 "const int i"与"int const i"之间的区别 对变量来说,const 关键字可以限定一个变量的值不允许改变,从而保护被修饰的东西, ...

  5. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  6. vue 事件调用 传参_对vue下点击事件传参和不传参的区别详解

    如下所示: {{btn_text1}} {{btn_text2}} var _vm = new Vue({ data : { btn_text1 : '点击1' , btn_text2 : '点击2' ...

  7. js中toString()和String()区别详解

    转载自  js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...

  8. click传值vue_对vue下点击事件传参和不传参的区别详解

    如下所示: {{btn_text1}} {{btn_text2}} var _vm = new Vue({ data : { btn_text1 : '点击1' , btn_text2 : '点击2' ...

  9. 转 常量指针和指针常量的区别详解

    传送门 常量指针和指针常量的区别详解 在C/C++中关键字const用来定义一个只读的变量或者对象,有如下优点     (1)便于类型检查,如函数的函数 fun(const int a) a的值不允许 ...

最新文章

  1. Android SQLiteDatabase的使用
  2. 【Java】Java枚举类型示例
  3. Java 9 新功能之 HTTP2 和 REPL
  4. 项目微管理 - 总结也是新的开始
  5. java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现
  6. 基于VUE+TS中引用ECharts的中国地图和世界地图密度表
  7. frameset的一些操作
  8. 视频分享:做“有料”的计算机大学生
  9. python中-----数组中的排序
  10. Atitit oodbms的查询,面向对象的sql查询jpa jpql hql
  11. Ubuntu 16.10(x86) Install WordPress SRV 4.7.1-1-5
  12. LineageOS的代码下载、编译及真机运行
  13. 初级办公计算机,初级(计算机办公软件应用)教案
  14. dubbo之failed to connect to server /xx.xx.xx.xx:20880 client-side timeout问题解决
  15. 手机用蓝牙键盘好使吗_手机也可以连接键盘,你知道怎么使用吗?
  16. 【reactor模式】【proactor模式】
  17. RCC详解_day7
  18. Android仿QQ通讯录分组展示ExpandableListView
  19. Java设计模式之 工厂模式(简单工厂模式)
  20. 前端面试第快速复盘,不标准的面试经验分享 (二)

热门文章

  1. 好用的平板触控笔,apple pencil的平替笔推荐
  2. php账号登录验证手机号码,最完整的php验证手机号码
  3. AI 人工智能基础及应用
  4. HTML5前端开发实战08-外语培训
  5. 更改ubuntu默认文件管理器为deepin
  6. A股上市公司财报披露时间
  7. 我迄今见过最完美的中文编程开发工具
  8. 夕阳西下,天空燃烧着一片橘红色的晚霞
  9. 教你文件重命名快速操作
  10. AIDL中的in、out、inout的区别