返回顶部
首页 > 资讯 > 精选 >JavaScript中的变量声明怎么理解
  • 540
分享到

JavaScript中的变量声明怎么理解

2023-06-29 01:06:38 540人浏览 安东尼
摘要

这篇文章的内容主要围绕javascript中的变量声明怎么理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!变量ECMAScript中,变量可以保存

这篇文章的内容主要围绕javascript中的变量声明怎么理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

    变量

    ECMAScript中,变量可以保存任何类型的数据(既可以是字符串也可以是数组也可以是别的),也即“松散的”,变量只是一个用来区分的占位符,一共有var、const、let三个关键字用于声明变量(var在ECMAScrip所有版本可用,后两个只在es6及以后可用)。

    (一)var

    var a;//仅定义var b=‘hi';//定义的同时,设置值

    要注意的是,值的设置可以覆盖,但我们不推荐这么做

    var a=”hello”a=”hi”

    ECMAScript的变量是“松散”的,那么可以用一条语句来对不同的数据类型初始化的声明,当然插入、换行不是必要的,只是一定要用逗号隔开不同的变量。

    Var a=“hello”,    b=12,    c=false;
    1)关于var声明的变量的作用域
    function test(){    var a="shanxi";}test();//调用函数console.log(a);//ReferenceError: a is not defined//报错:a未定义

    变量在使用var定义时,若是在函数内部,则该变量在函数退出时将会被销毁,无法再调用。这里的a在函数test内部使用var完成定义,调用函数test之后,随即a便被销毁,因而出现如上报错。

    当省略关键词var时,这样定义的变量将成为全局变量(不过不建议这么做,太多的全局变量会让程序变得难以维护)

    function test(){    a="sichuan";}test();//调用函数console.log(a);//sichuan
    2)var声明提升(hoist)

    如下,结果是undefined而并没有报错,是因为,使用var关键字声明的变量,会自动提升到函数作用域的顶部。也就是,会被ECMAScript看作

    function test(){   console.log(a)   var a=12;}test()//undefined

    也就是,会被ECMAScript看作

    function test(){   var a;    console.log(a)   a=12;}test()//undefined

    这种“提升”,会把所有变量的声明都提到函数作用域的顶部。

    (二)let

    Let和var作用相似,只是let声明的范围是块作用域,var声明的范围是函数作用域

    例如如下的if语句中的{}就是一个“块”,而不是一个函数作用域。

    if(true){    var b="zhang"    console.log(b);//zhang}console.log(b);//zhang

    换成let:

    if(true){    let b="zhang"    console.log(b);//zhang}console.log(b);//ReferenceError: b is not defined

    此时b在if外边(定义b的块作用域外)便不能被引用。

    !!!注意:块作用域是函数作用域的子域(是前者不一定是后者是后者不一定是前者)。

    !!!注意:适用于var的作用域限制,对let是等同的(只是一个作用域是函数作用域一个是块作用域)。

    关于重复声明,var不报错而let会报错,看如下实例:

    var a=24;var a=12;var a=5;console.log(a);//5let b=2;let b=4;//SyntaxError: Identifier 'b' has already been declared//运行到此处就已经报错let b=8;console.log(b);var a=24;var a=12;var a=5;console.log(a);//5let b=2;let b=4;//SyntaxError: Identifier 'b' has already been declared//运行到此处就已经报错let b=8;console.log(b);

    关于嵌套使用,JavaScript会记录用于变量声明的标识符以及其所在块的作用域,所以在嵌套使用时,不会报错(因为在同一块作用域中没有重复声明)。

    var a="shanxi"console.log(a);//shanxiif(true){    var a="sichaun";    console.log(a);//sichuan}let b=3;console.log(b);//3if(true){    let b=5;    console.log(b);//5}

    所以,let和var区别只在于,二者决定所声明的变量的相关作用域存在。

    var a;let a;//SyntaxError: Identifier 'a' has already been declaredlet c;var c;//SyntaxError: Identifier 'c' has already been declared
    1)与var不同,let声明的变量不会再作用域中被提升,这一现象被称为“暂时性死区”
    console.log(a);var a=2;//undefinedconsole.log(b);let b=3;//ReferenceError: Cannot access 'b' before initialization
    2)全局声明

    Var在全局作用域中声明出的变量自动会成为window对象的属性,但let不会

    var a=3;console.log(window.a)//alet b=10;console.log(window.b);//undefined

    不过let声明出的变量,依旧是全局作用域发生的(不然也不会是“undeifned”),变量也会在页面的生命周期内存续,所以必须保证页面不会重复声明同一个变量

    (三)Const

    基本上和let相同,只是使用const时,必须同时初始化变量,且尝试修改const声明的变量时会报错

    const n="zhang";n="li";//TypeError: Assignment to constant variable.const a=12;const  a=9;//不可以重复声明//SyntaxError: Identifier 'a' has already been declared

    当然,const有关声明的限制,只适用于它指向的变量本身的引用,也就是说,若为一个对象,那么修改这一对象内部属性,不会违反const有关的限制。

    const house={};

    house.name=”myhouse”;

    那么,在let和const出现之后,许多开发者不再很多地使用var了,多使用let和const,使得变量有了明确的作用域、声明位置以及不变的值。

    感谢你的阅读,相信你对“JavaScript中的变量声明怎么理解”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注编程网网站!小编会继续为大家带来更好的文章!

    --结束END--

    本文标题: JavaScript中的变量声明怎么理解

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

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

    猜你喜欢
    • JavaScript中的变量声明怎么理解
      这篇文章的内容主要围绕JavaScript中的变量声明怎么理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!变量ECMAScript中,变量可以保存...
      99+
      2023-06-29
    • JavaScript变量怎么声明
      本篇内容主要讲解“JavaScript变量怎么声明”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript变量怎么声明”吧!   &nbs...
      99+
      2024-04-02
    • JavaScript中的变量怎么声明和赋值
      这篇文章主要介绍“JavaScript中的变量怎么声明和赋值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中的变量怎么声明和赋值”文章能帮助大家...
      99+
      2024-04-02
    • 怎么重复声明JavaScript变量
      本篇内容介绍了“怎么重复声明JavaScript变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 重复...
      99+
      2024-04-02
    • php中怎么声明变量
      这期内容当中小编将会给大家带来有关php中怎么声明变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。说明变量在PHP中的声明必须用美元符号后跟变量名来表示,使用赋值操作符(=)给变量赋值;如果大多数PHP...
      99+
      2023-06-20
    • sql中怎么声明变量
      在SQL中,可以使用DECLARE语句来声明变量。DECLARE语句用于创建一个变量,并指定它的数据类型和初始值(可选)。以下是声明...
      99+
      2023-09-29
      SQL
    • DOS中怎么声明变量
      今天就跟大家聊聊有关DOS中怎么声明变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。dos定义变量 DOS下也只有环境变量可以用      ...
      99+
      2023-06-08
    • javascript中声明变量的方法是什么
      这篇文章主要介绍“javascript中声明变量的方法是什么”,在日常操作中,相信很多人在javascript中声明变量的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
      99+
      2024-04-02
    • JavaScript变量声明的var、let、const详解
      目录前言内容JavaScript的变量声明var的变量声明变量声明在函数作用域中变量重复声明变量声明提升怪异危险的varlet和const的变量声明块级作用域不可重复声明暂时性死区使...
      99+
      2024-04-02
    • JavaScript中的变量声明你知道吗
      目录变量(一)var1)关于var声明的变量的作用域2)var声明提升(hoist)(二)let1)与var不同,let声明的变量不会再作用域中被提升,这一现象被称为“暂...
      99+
      2024-04-02
    • Javascript变量函数声明提升深刻理解
      目录前言:变量提升函数提升为什么要提升?最佳实践总结前言: Javascript变量函数声明提升(Hoisting)是在 Javascript 中执行上下文工作方式的一种认识(也可以...
      99+
      2024-04-02
    • JavaScript中如何正确声明变量
      本篇内容介绍了“JavaScript中如何正确声明变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  ...
      99+
      2024-04-02
    • javascript使用var声明变量的问题怎么解决
      这篇文章主要介绍了javascript使用var声明变量的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript使用var声明变量的问题怎么解决文章都会...
      99+
      2024-04-02
    • Scala变量怎么声明
      这篇文章主要讲解了“Scala变量怎么声明”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Scala变量怎么声明”吧!变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的...
      99+
      2023-06-19
    • 怎么在JavaScript中以不同的方式声明变量
      本篇内容主要讲解“怎么在JavaScript中以不同的方式声明变量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在JavaScript中以不同的方式声明变量...
      99+
      2024-04-02
    • C#中怎么声明变量和常量
      在C#中声明变量和常量的方式如下: 声明变量: // 声明一个整型变量 int num; // 声明并初始化一个字符串变量 str...
      99+
      2024-03-06
      C#
    • JavaScript局部变量声明的方法
      今天小编给大家分享一下JavaScript局部变量声明的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
      99+
      2024-04-02
    • javascript的变量需不需要声明
      这篇文章主要介绍“javascript的变量需不需要声明”,在日常操作中,相信很多人在javascript的变量需不需要声明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ja...
      99+
      2024-04-02
    • 如何在JavaScript中声明全局变量
      如何在JavaScript中声明全局变量?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2....
      99+
      2023-06-14
    • JavaScript如何简写变量声明
      小编给大家分享一下JavaScript如何简写变量声明,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简写变量声明在定义函数的时候...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作