博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
let和var的区别
阅读量:6905 次
发布时间:2019-06-27

本文共 756 字,大约阅读时间需要 2 分钟。

在JavaScript中,定义变量的关键词一般用var,但还有一种定义变量的关键词叫let。两者的作用域范围不一样,我们可以将var理解为定义的是一个全局变量,而let定义的是一个局部变量。故let常用于函数体中,使得变量的作用域仅限于函数体内。下面通过一小段代码展示他们的作用范围。

a();  function a() {       let a = 'dd';       var b = 10;       alert(b);          } alert(a); // 报错,b is not defined alert(b);//成功打印10

可以看到,函数体内用var定义的变量是一个全局内,故可在函数外被打印;而let定义的变量进作用于函数体内,故在函数体外被打印回报出a没有定义的错误。

下面再深入介绍下二者的区别:

  • 声名变量的提升区别:

var声名的变量在解析时会初始化变量,并赋予undefined,但let定义的变量在解析时不会被初始化。

alert(a);//打印undefinedalert(b);//报出未定义的错误var a = 1;let b = 2;alert(a);//打印1alert(b);//打印2
  • 重复声名变量的区别

var可以重复声明一个变量,但let在一个作用域里不能重复声名同一个变量,不然会报错。

var a = 1;        var a = 5;        let b = 2;        let b = 8; //重复声名会报错,因为b变量已被定义        alert(a); //打印5        alert(b);

 

转载于:https://www.cnblogs.com/longwhite/p/10397681.html

你可能感兴趣的文章
第八周(2) Word邮件合并1
查看>>
Context 之我见
查看>>
让一个表单以post的方式在window.open的窗口中打开
查看>>
FreeNAS 9.1.1 发布,网络存储系统 - 开源中国社区
查看>>
极客技术专题【011期】:EasyUI初级教程
查看>>
unicat,multicast,broadcast区别
查看>>
LINUX Find命令使用
查看>>
FAQ:仓储实现为什么在基础设施层?
查看>>
win7下面完全删除mysql
查看>>
linux IP 设置
查看>>
vs在线工具杂烩
查看>>
vim语法高亮不起作用解决
查看>>
第一部分:开发前的准备-第四章 多分辨率多屏幕的支持
查看>>
一款超炫的jquery图片播放插件[Cloud Carousel]
查看>>
Android系统源代码下载
查看>>
微软BI 之SSAS 系列 - 多维数据集维度用法之一 引用维度 Referenced Dimension
查看>>
Mustache.js语法学习笔记
查看>>
同一个String在使用不同的charset编码的时候equals仍然是返回true吗
查看>>
小案例:struts1.3利用nested标签使用POJO
查看>>
win8.1rtm专业版无法安装net3.5还有iis
查看>>