iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >javascript变量声明var,let,const的区别是什么
  • 327
分享到

javascript变量声明var,let,const的区别是什么

2023-06-30 17:06:38 327人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“javascript变量声明var,let,const的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript变量声明var,let,const的区别是什么”文章能帮助大家解决疑惑,下面跟着小

本文小编为大家详细介绍“javascript变量声明var,let,const的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript变量声明var,let,const的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

作用域(Scope)是什么

作用域是程序的执行环境,它包含在当前位置可访问的变量和函数。在 ES5 语法中,有全局作用域和局部作用域,es6 则新增了块级作用域。

全局作用域是最外层的作用域,在函数外面定义的变量属于全局作用域,可以被任何其他子作用域访问。在浏览器中,window 对象就是全局作用域。在编写前端代码过程中,其中有一条优化规则就是少使用全局变量,因为全局变量容易导致程序BUG,并且不容易查找。

局部作用域的基本单元是 function,只在函数体内有效。局部作用域是在函数内部的作用域。在局部作用域定义的变量只能在该作用域以及其子作用域被访问。

javascript中,变量声明使用 varconstlet来声明变量,var为ES5的语法,constlet为ES6之后的语法。ES6 的letconst为新引入的关键字,它们不会被提升,而且是块作用域。也就是说被大括号包围起来的区域声明的变量外部将不可访问。

下面我们就来说说各自的区别。

var 声明

var声明,为ES5的语法,var声明的变量总是归属于包含函数(即全局,如果在最顶层的话)。在 javaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是局部的)。可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。

提升(Hoisting)

在编译过程中,将varfunction的定义移动到他们作用域最前面的行为叫做提升。

整个函数定义会被提升。所以,可以在函数还未定义之前调用它,而不用担心找不到该函数。

console.log(toSquare(3)); // 9function toSquare(n) {    return n * n;}

变量只会被部分提升。而且只有变量的声明会被提升,赋值不会动。

开发者可能最希望实现 for循环的块级作用域了,因为可以把随意声明的计数器变量限制在循环内部。

for (var i = 0; i < 10; i++) {    console.log(i);}

立即执行函数能够有效解决:

for (var i = 0; i < 10; ++i) {    (function (value) {        console.log(value);    })(i);}

再来看一个例子

(function () {    var testValue = "hello";    var testFunc = function () {        console.log("just test");    };})();console.log(window.testValue); // undefinedconsole.log(window.testFunc); // undefined

趣题:

var x = 10;var y = 20;[y, x] = [x, y];console.log(x, y); // 20 10

let 声明

过早访问 let声明的引用导致的这个referenceerror叫做临时死亡区错误,在访问一个已经声明但还没有初始化的变量。创建一个块作用域。

let g1 = "global 1";let g2 = "global 2";{    g1 = "new global 1";    let g2 = "local global 2";    console.log(g1); // new global 1    console.log(g2); // local global 2    console.log(g3); // ReferenceError: g3 is not defined    let g3 = "I am not hoisted";}

const 声明

const是对赋值做定,不对值的改变锁定。例如:数组、对象。 一个常见的误解是:使用const声明的变量,其值不可更改,但是对于数组和对象,其值是可以更改的。

const tryMe = "initial assignment";//下面重新赋值会导致程序错误tryMe = "this has been reassigned"; // TypeError: Assignment to constant variable.//对于数组是可以更改元素值const array = ["Ted", "is", "awesome!"];array[0] = "Barney";array[3] = "Suit up!";console.log(array); // [ 'Barney', 'is', 'awesome!', 'Suit up!' ]//下面这样更改整个数组,相对于重新赋值,是错误的array = ["Barney", "is", "awesome!", "Suit up!"];// 同样对于对象const airplane = {};airplane.wings = 2;airplane.passengers = 200;console.log(airplane); // { wings: 2, passengers: 200 }//下面是错误airplane = { wings: 2, passengers: 200 };

对于支持ES6的语法,建议默认使用 const, 在确实需要改变的变量声明使用 let, 这样可以在某种程度上实现代码的不可变。从而可以避免很多的问题的出现。

读到这里,这篇“javascript变量声明var,let,const的区别是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: javascript变量声明var,let,const的区别是什么

本文链接: https://www.lsjlt.com/news/330602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript 变量声明 var,let,const 的区别
    目录作用域(Scope)是什么var 声明提升(Hoisting)let 声明const 声明作用域(Scope)是什么 作用域是程序的执行环境,它包含在当前位置可访问的变量和函数。...
    99+
    2022-11-13
  • javascript变量声明var,let,const的区别是什么
    本文小编为大家详细介绍“javascript变量声明var,let,const的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript变量声明var,let,const的区别是什么”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-06-30
  • JavaScript变量声明的var、let、const详解
    目录前言内容JavaScript的变量声明var的变量声明变量声明在函数作用域中变量重复声明变量声明提升怪异危险的varlet和const的变量声明块级作用域不可重复声明暂时性死区使...
    99+
    2022-11-13
  • JavaScript变量中var,let和const的区别
    目录前言ES5与ES6的区别1. 作用域2. 全局属性3. 变量提升与暂时性死区4. 重复声明let与const的区别1. 常量最佳实践前言 JavaScript中一共有3种用来声明...
    99+
    2022-11-13
  • JavaScript声明变量的这四兄弟(var、let、function、const)
    四兄弟的背景 在一个名为编程语言的村庄里,有不同姓氏的村民。例如Java、Python、Golang、JavaScript等姓氏,而接下来要介绍的就是JavaScript这个姓氏的一...
    99+
    2023-02-13
    JavaScript声明变量 js声明变量
  • javascript的var与let,const的区别是什么
    本篇内容主要讲解“javascript的var与let,const的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript的var与let,const的区别是什么”吧!说到...
    99+
    2023-06-22
  • JavaScript中var,let和const的区别是什么
    这篇文章主要为大家展示了“JavaScript中var,let和const的区别是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中var...
    99+
    2022-10-19
  • var、let及const的区别是什么
    这篇文章主要介绍了var、let及const的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇var、let及const的区别是什么文章都会有所收获,下面我们一起来看看吧。什么是JavaScript?首...
    99+
    2023-07-04
  • JavaScript ES6语法中let,const ,var的区别是什么
    JavaScript ES6语法中let,const ,var的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量声明的方式let / con...
    99+
    2023-06-26
  • JavaScript中var与let的区别是什么
    本篇文章给大家分享的是有关JavaScript中var与let的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言:var是JavaScript刚出现时就存在的变量声...
    99+
    2023-06-22
  • ES6中let、const的区别是什么
    这篇文章将为大家详细讲解有关ES6中let、const的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。let和const相同点都存在块级作用域都不存在变量声明提...
    99+
    2022-10-19
  • es6中let和const的区别是什么
    这篇“es6中let和const的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2022-10-19
  • javascript使用var声明变量的问题怎么解决
    这篇文章主要介绍了javascript使用var声明变量的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript使用var声明变量的问题怎么解决文章都会...
    99+
    2022-10-19
  • javascript中声明变量的方法是什么
    这篇文章主要介绍“javascript中声明变量的方法是什么”,在日常操作中,相信很多人在javascript中声明变量的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • JavaScript声明变量的简写方法是什么
    这篇文章主要介绍了JavaScript声明变量的简写方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。声明变量简写方法简写方法:JavaScript有什么特点1、js属...
    99+
    2023-06-27
  • Go的两种声明变量的方式有什么区别
    一、变量作用域不同 使用var关键字声明变量时,变量的作用域可以是全局的或者局部的,而使用:=运算符声明变量时,变量的作用域只能是局部的。这是因为:=运算符是一种简化语法,在函数内部使用。 例如: 在上面的代码中,变量name使用va...
    99+
    2023-10-29
    两种 变量 有什么区别
  • python中变量声明和赋值的方法是什么
    在Python中,变量的声明和赋值是同时进行的,可以使用以下方式进行变量声明和赋值:1. 直接赋值:通过使用等号(=)来将一个值赋给...
    99+
    2023-08-08
    python
  • php常量和变量的区别是什么
    本篇内容主要讲解“php常量和变量的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php常量和变量的区别是什么”吧!说明常量前没有美元符号;常量只能用define()函数和const关...
    99+
    2023-06-20
  • php中变量与常量的区别是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑什么是php常量?所谓常量就是不能改变的量,PHP 中常量一旦被定义,就不能被修改或取消定义。PHP 常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标...
    99+
    2022-03-30
    php 变量 常量
  • php7静态变量与普通变量的区别是什么
    这篇文章主要讲解了“php7静态变量与普通变量的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7静态变量与普通变量的区别是什么”吧!php7...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作