广告
返回顶部
首页 > 资讯 > 精选 >javascript声明变量的方法有哪些
  • 729
分享到

javascript声明变量的方法有哪些

2023-06-14 09:06:22 729人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关javascript声明变量的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript声明变量的4种方法:1、使用“var”声明变量,例“var a;”;2

这篇文章将为大家详细讲解有关javascript声明变量的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

javascript声明变量的4种方法:1、使用“var”声明变量,例“var a;”;2、使用“function”声明变量,例“function Fun (num) {}”;3、使用“let”声明变量;4、使用“const”声明变量。

声明变量的方式

JavaScript 变量声明的方式有下面几种:

  • es6之前是 var 和 function

  • ES6中新增 let 和 const

function 是一种声明变量的方式?

我们来验证一下

验证方法一:

    function repeatFun (num) {      return num;    }    repeatFun(10); // 10    var repeatFun = 1;    repeatFun(2); // Uncaught TypeError: repeatFun is not a function

这种方法是利用 var可以重复声明变量,但是会后者覆盖会覆盖前者的特点

我们来看看这里发生来什么事:

  • 首先是声明了一个函数,他的名字是 repeatFun

  • 紧接调用一次,得到结果为10

  • 之后用 var 又声明了一次 repeatFun , 并初始化为 1

  • 最后调用一次 repeatFun 这个函数

  • 结果就是报错 ,内容: repeatFun 不是一个函数

根据执行结果我们可以推断出在浏览器的内存中存在一个 repeatFun 变量,之前是一个函数,后来被一个 var 关键字重新声明并初识化为 1。

验证方法二:

    {      let repeatFun = 1;      function repeatFun (num) {        return num      }    }    // Uncaught SyntaxError: Identifier 'repeatFun' has already been declared

第二种方法我是利用

ES6的一个语法:利用 let 不能重复声明的特性来证明 function 也是一种声明变量的方式


var ,let , const 的不同点:

  • 变量声明提升

    • var 有变量声明提升的功能,可以先使用然后再声明,反之也成立

    • let 和 const 则没有变量声明提升的功能,必须要先声明才能使用

  • 重复声明

    • var 能重复声明,后者覆盖前者

    • let 和 const 则不能重复声明

  • 作用域的范围

    • var 的作用域是以函数为界限

    • let 和 const 是块作用域

    • var 可以定义全局变量和局部变量,let 和 const 只能定义局部变量

  • const 的特殊之处

    • 声明之后不能被修改(引用类型和基本类型的表现有些地方不一样)


变量声明提升
  • var 是有变量声明提升的功能,可以先使用然后再声明

  • let 和 const 则没有变量声明提升的功能,必须要先声明才能使用

例子一,验证 var 变量提升:

var b = a + 1; // b: NaN var a = 1; // a: 1

首先是先声明来一个变量 b 并进行初识化,初始化的值为 a + 1(a 的值是多少?)
然后紧接是声明了一个变量 a ,初识化为 1
这是代码表面上就是做着这些事,实际上做的事情是这样:

  • 在每次声明一个变量的时候,他们的声明都是放在代码的最上面,并且他们都是要进行一次初始化,值为:undefined,但是赋值的位置是不会改变,

  • 然后再进行其他的操作

下面写法同样可以实现一样的效果

var b;var a;b = a +1; // b: NaN a = 1; // a: 1

let 和 const 则与 var 的表现则不同

例子二,验证 let 是否存在变量提升:

let b = a + 1; // Uncaught ReferenceError: a is not definedlet a = 1;

在运行的时候直接抛出范围错误,若这样改一下,就没有错误:

let a = 1; // a: 1let b = a + 1; // b: 2

const 和 let在变量提升方面的表现是一致


重复声明

  • var 能重复声明,后者覆盖前者

  • let 和 const 则不能重复声明

    例子一,验证 var 的重复声明:

    var a = 1;var a = 2;var b = a + 1; // 3

    例子二,验证 let 的重复声明:

    let a = 1;let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared
    var a = 1;let a = 2; //Uncaught SyntaxError: Identifier 'a' has already been declared
    • 很显然在同一个执行环境中使用 let 进行声明的变量是不能重复声明,否则会抛出错误
      const 和 let 在重复声明方面的表现是一致

    • 首先是声明变量 a ,初始化为1

    • 紧接再次声明变量 a, 初始化为2

    • 最后声明变量 b , 它初始化值是 a + 1


作用域的范围

  • var 的作用域是以函数为界限

  • let 和 const 是块作用域

  • var 可以定义全局变量和局部变量,let 和 const 只能定义局部变量

封装一个阶乘函数来举例,没有使用尾递归,就是使用 for 和 if 的搭配实现
例子一,阶乘函数验证作用域域范围:

  var num = 5;  function factorial(num) {      var result = 1,resultValue = 0;      for (let i = num - 1; i >= 1; i--) {        if (i === num - 1) {          resultValue = num * i;        }else{          resultValue = num * i / num;        }        result *= resultValue;      }      // i 是用 let 进行定义它的作用域仅仅被限制在 for 循环的区域内      // i++;// Uncaught ReferenceError: i is not defined      return result;  }  // result 是用 var 进行定义,他的活动区域在 factorial 函数内  // result++; // var的作用域.html:34 Uncaught ReferenceError: result is not defined  factorial(num); // 120

const 和 let 在作用域的范围的表现也是一样

例子二,验证 const 的作用域:

  {    const NUM_1 = 10;  }  let b = NUM_1 + 1;  // Uncaught ReferenceError: NUM_1 is not defined

例子三,验证 var 可以定义全局变量,let 和 const 只能定义局部变量

  // 可以挂载到全局作用域上  // var name = 'window scoped';  let name = 'let scoped'; //是不挂载到全局作用域中  let obj = {    name: 'myName',    sayName () {       return function () {        console.log(this.name); // 打印出来为空      };    }  }  obj.sayName()();  console.log(window); //name 这个属性的值没有,如下图

javascript声明变量的方法有哪些

若这样改一下就可以得到我们想要的值:

  • 把用 var 定义的 name 的代码取消注释,把用 let 定义的 name 的代码注释。

这个同时也涉及到新问题 this 的指向。后面的文章再详细举例验证


const 的特殊之处

const 与 let , var 其实还是有些地方不一样的

例子1:验证 const 的特殊之处(一)

const NUM = 100;  NUM = 1000; // Uncaught TypeError: Assignment to constant variable
  • 经过 const 方式进行声明,之后赋值完毕,则不可以进行改变,否则会报错

但是也有例外

例子二:验证 const 的特殊之处(二)

  const obj = {    name: 'xiaoMing',    sayName () {      return this.name    }  };  obj.sayName(); // xiaoMing  obj.name = 'xiaoHong';  obj.sayName(); // xiaoHong
  • 使用 const 首先声明一个变量 obj , 并且这个变量指向我们在内存中创建的对象,你会发现我们改变里面的属性是没有任何问题

若这样改一下:
例子三:验证 const 的特殊之处(三)

  const obj = {    name:'xiaoMing',    sayName(){      return this.name    }  };  obj = {}; // Uncaught TypeError: Assignment to constant variable
  • 若改变该变量的指向的对象,则就会报错。这种错误和 「 验证 const 的特殊之处(一)」的错误是一样的

关于“javascript声明变量的方法有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: javascript声明变量的方法有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • javascript声明变量的方法有哪些
    这篇文章将为大家详细讲解有关javascript声明变量的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript声明变量的4种方法:1、使用“var”声明变量,例“var a;”;2...
    99+
    2023-06-14
  • javascript声明变量不用var的方法有哪些
    本篇内容主要讲解“javascript声明变量不用var的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript声明变量不用var的方法有...
    99+
    2022-10-19
  • es6声明变量的方法有哪些
    这篇“es6声明变量的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“es6声明变...
    99+
    2022-10-19
  • linux声明变量的方法有哪些
    在Linux中,声明变量的方法有以下几种:1. 使用等号(=)进行赋值:```bashvariable=value```2. 使用l...
    99+
    2023-09-08
    linux
  • JavaScript局部变量声明的方法
    今天小编给大家分享一下JavaScript局部变量声明的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2022-10-19
  • 数据库声明变量并赋值的方法有哪些
    在数据库中声明变量并赋值的方法取决于所使用的数据库管理系统。以下是几种常见数据库系统的方法:1. MySQL:```sqlSET @...
    99+
    2023-08-08
    数据库
  • python声明变量的规则有哪些
    在Python中,声明变量的规则如下:1. 变量名必须是以字母或下划线开头,后面可以是字母、数字或下划线的组合。2. 变量名区分大小写,例如"myVariable"和"myvariable"是两个不同的变量。3. 变量名不能是Pytho...
    99+
    2023-08-11
    python
  • javascript中声明变量的方法是什么
    这篇文章主要介绍“javascript中声明变量的方法是什么”,在日常操作中,相信很多人在javascript中声明变量的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • javascript中使用let声明变量的优势有哪些
    这篇文章主要介绍了javascript中使用let声明变量的优势有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript中使用let声明变量的优势有哪些文章都会...
    99+
    2022-10-19
  • JavaScript声明变量的简写方法是什么
    这篇文章主要介绍了JavaScript声明变量的简写方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。声明变量简写方法简写方法:JavaScript有什么特点1、js属...
    99+
    2023-06-27
  • java中char变量声明规则有哪些
    在Java中,char变量的声明规则有以下几点:1. char变量必须使用单引号(')来声明,例如:char c = 'a';2. ...
    99+
    2023-09-14
    java
  • JavaScript块作用域、重新声明变量的方法
    这篇文章主要介绍了JavaScript块作用域、重新声明变量的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript块作用域、重新声明变量的方法文章都会有所收获...
    99+
    2022-10-19
  • JavaScript中声明常量的方法
    小编给大家分享一下JavaScript中声明常量的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在js中,可以使用const关键字声明常量,语法格式为“con...
    99+
    2023-06-15
  • PHP常量的声明方式有哪些
    在PHP中声明常量的方法有以下几种使用const函数声明常量class CL{ //定义常量 const CLS = '常量值'; function a(){ //调用常量方法 echo self::CLS; } } (new CL)->a...
    99+
    2022-10-08
  • javascript声明变量用哪个关键字
    javascript声明变量用哪个关键字?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在js中,可以使用var、let和const关键字声明。var声明的变量可...
    99+
    2023-06-15
  • c++声明类的方法有哪些
    在C++中,声明类的方法有以下几种方式:1. 在类的声明中定义方法:在类的声明中,可以直接定义类的成员函数。这种方式适用于方法的实现...
    99+
    2023-08-16
    c++
  • php声明字符串变量有几种方法
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php声明字符串变量1、利用双引号语法:$变量名="字符串内容";示例:<php $str="hello"; var_du...
    99+
    2018-01-13
    php 声明字符串变量
  • javascript的变量需不需要声明
    这篇文章主要介绍“javascript的变量需不需要声明”,在日常操作中,相信很多人在javascript的变量需不需要声明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ja...
    99+
    2022-10-19
  • javascript中用哪个关键字声明变量
    这期内容当中小编将会给大家带来有关javascript中用哪个关键字声明变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。javascript中声明变量的关键字是var、let和const。var声明的变...
    99+
    2023-06-15
  • php声明对象的方法有哪些
    在PHP中,声明对象的方法有以下几种:1. 使用new关键字创建对象实例,然后调用类的构造函数来初始化对象的属性和状态。例如:```...
    99+
    2023-08-14
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作