【前端知识】JavaScript——var 与 let 的区别

这篇具有很好参考价值的文章主要介绍了【前端知识】JavaScript——var 与 let 的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【前端知识】JavaScript——var 与 let 的区别

  1. var声明的变量会自动提升到函数作用域顶部,而let不会。

    在解析代码时,JavaScript 引擎会注意出现在块后面的 let 声明,只不过在此之前不能以任何方式来引用未声明的变量。在 let 声明之前的执行瞬间被称为暂时性死区(temporal dead zone),在此阶段引用任何后面才声明的变量都会抛出 ReferenceError。

【前端知识】JavaScript——var 与 let 的区别,前端知识,JavaScript,前端,javascript,开发语言

  1. let的声明的范围是块作用域,而var声明的范围是函数作用域

    如下图,变量x_let之所以不能在 if 块外部被引用,是因为它的作用域仅限于该块内部。而由于x_var的作用域为整个函数,所以它能够在if块外部被引用。

【前端知识】JavaScript——var 与 let 的区别,前端知识,JavaScript,前端,javascript,开发语言

  1. let不允许许同一个块作用域中出现冗余声明,而var允许。

【前端知识】JavaScript——var 与 let 的区别,前端知识,JavaScript,前端,javascript,开发语言

  1. let 在全局作用域中声明的变量不会成为 window 对象的属性,而var 声明的变量则会。
var x_var = 'x_var'; 
console.log(window.x_var); // 'x_var' 
let x_let = 'x_let'; 
console.log(window.x_let); // undefined
  1. let 不能用于条件声明,而var可以。
<script>
    // 假设脚本不确定页面中是否已经声明了同名变量
    // 针对var: 它可以假设还没有声明过,因为多个重复声明可以被作为一个提升声明来处理
    var name = 'Matt'; 
    // 针对let: 它的作用域为块,不会检查之前是否声明过同名变量,如果 age 之前声明过,则会报错
    let age = 36; 
</script>

使用 try/catch 语句或 typeof 操作符也不能解决,因为条件块中 let 声明的作用域仅限于该块:

<script>  
    if (typeof name === 'undefined') { 
        let name; 
    } 
    // 上面的 name 被限制在 if {} 块的作用域内,因此这个赋值形同全局赋值
    name = 'Matt'; 
    try { 
        console.log(age); // 如果 age 没有声明过,则会报错
    } 
    catch(error) { 
        let age;
    } 
    // age 被限制在 catch {}块的作用域内,因此这个赋值形同全局赋值
</script>
  1. 在for循环中,若迭代变量采用var声明,会渗透到循环体外,而let则无此问题

【前端知识】JavaScript——var 与 let 的区别,前端知识,JavaScript,前端,javascript,开发语言文章来源地址https://www.toymoban.com/news/detail-575263.html

到了这里,关于【前端知识】JavaScript——var 与 let 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【34JavaScript let 和 const】JavaScript中的“let“和“const“关键字详解:作用、用法及区别

    // 使用 let 声明变量 let x = 10; // 在同一作用域内重新赋值 x = 20; // 在不同的作用域内使用 let 声明变量 function example() { let y = 30; console.log(x); // 输出:20 console.log(y); // 输出:30 } console.log(x); // 输出:20 console.log(y); // 报错:y is not defined // 使用 const 声明常量 const PI = 3.14159; // 尝

    2024年02月08日
    浏览(29)
  • 前端开发——Javascript知识(介绍)

    目录 有关JavaScript的知识  JavaScript的优点   JavaScript的领域 JavaScript的组成 JavaScript的特点 第一个JavaScript程序 在 HTML 文档中嵌入 JavaScript 代码 在脚本文件中编写 JavaScript 代码 JavaScript内容  Html内容  JavaScript 代码执行顺序 JavaScript中的几个重要概念 标识符 保留字 区分

    2024年02月01日
    浏览(35)
  • const、let、var区别

    let和const是ES6新增的声明变量的,之前声明变量的是var。 ES6 新增了 let 命令,用来声明变量。它的用法类似于 var ,但是所声明的变量,只在 let 命令所在的代码块内有效。 上面代码在代码块之中,分别用 let 和 var 声明了两个变量。然后在代码块之外调用这两个

    2024年02月08日
    浏览(32)
  • let和var区别 (最全)

    1、var是函数作用域,let是块作用域 2、var存在声明提升,let没有声明提升,但是有“暂时性死区”-JS引擎会注意到出现在块后面的let声明,在声明前直接使用会抛出ReferenceError, 3、全局作用域下,var声明的变量挂载在window,let不会 4、在for循环中使用let, let出现直线,for循环定

    2024年01月16日
    浏览(29)
  • var、let、const 之间的区别

    在 ES5 中 , 顶层对象的属性和全局变量是等价的 , 用 var 声明的变量既是全局变量 , 也是顶层变量。 注意 : 顶层对象 , 在浏览器环境指的是 window 对 象 , 在 Node 指的是 global 对象 使用 var 声明的变量存在 变量提升 的情况 在编译阶段 , 编译器会将其变成以下执行 使用 var , 能够

    2024年02月03日
    浏览(28)
  • 建站系列(五)--- 前端开发语言之HTML、CSS、JavaScript

    建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— 网络协议 建站系列(四)— Web服务器之Apache、Nginx 建站系列(五)— 前端开发语言之HTML、CSS、JavaScript 建站系列(六)— 后端开发语言 建站系列(七)— 常用前后端框架

    2024年02月09日
    浏览(39)
  • let、const、var的区别,解构赋值,箭头函数

    使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。 使用const声明的是常量,在后面出现的代码块中,不能在修改改常量的值。 var let const 函数级作用域 块级作用域 块级作用域 变量提

    2024年02月05日
    浏览(34)
  • ES6知识点汇总(1)--var/let/const

    1、var 在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量 注意:顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象 使用var声明的变量存在变量提升的情况 在编译阶段,编译器会将其变成以下执行 使用var,我们能够对

    2024年02月12日
    浏览(34)
  • ES6中let和const关键字与var关键字之间的区别?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月09日
    浏览(37)
  • javascript常见100问|前端基础知识|问ajax-fetch-axios-区别请用 XMLHttpRequestfetch 实现 ajax节流和防抖px em rem vw/箭头函数的缺点

    HTML CSS JS HTTP 等基础知识是前端面试的第一步,基础知识不过关将直接被拒。本章将通过多个面试题,讲解前端常考的基础知识面试题,同时复习一些重要的知识点。 扎实的前端基础知识,是作为前端工程师的根本。基础知识能保证最基本的使用,即招聘进来能干活,能产出

    2024年04月27日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包