🚀从零开始学习JS基础3️⃣🚀

举报
XiaoLin_Java 发表于 2022/02/22 15:42:25 2022/02/22
【摘要】 四、变量    变量简单来说就是一个装东西的盒子,专业来说变量是用于存放数据的容器。 我们通过 变量名 获取数据,甚至数据可以修改。 4.1、变量在内存中的存储    变量是程序在内存中申请的一块用来存放数据的空间。类似我们酒店的房间,一个房间就可以看做是一个变量。 4.2、声明变量var name; // 声明一个 名称为age 的变量     let是一个 JavaScript关...

四、变量

    变量简单来说就是一个装东西的盒子,专业来说变量是用于存放数据的容器。 我们通过 变量名 获取数据,甚至数据可以修改。

在这里插入图片描述

4.1、变量在内存中的存储

    变量是程序在内存中申请的一块用来存放数据的空间。类似我们酒店的房间,一个房间就可以看做是一个变量。

在这里插入图片描述

4.2、声明变量

var name; //  声明一个 名称为age 的变量   

    let是一个 JavaScript关键字,用来声明变量( 以前是var )。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管,name是程序员定义的变量名,我们要通过变量名来访问内存中分配的空间。

4.3、赋值

name = XiaoLin; // 给name这个变量赋值为XiaoLin     

    = 用来把右边的值赋给左边的变量空间中,此处代表赋值的意思。变量值是程序员保存到变量空间里的值

4.4、变量的初始化

var age  = 18;  // 声明变量同时赋值为声明一个变量并赋值,我们称之为变量的初始化。

4.5、变量语法扩展

更新变量

    一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准。

var age = 18;
age = 81;   // 最后的结果就是81因为18 被覆盖掉了 

同时声明多个变量

同时var多个变量时,只需要写一个 var, 多个变量名之间使用英文逗号隔开。

var age = 10,  name = 'XiaoLin';

声明变量特殊情况

情况 说明 结果
var age ; console.log (age); 只声明 不赋值 undefined
console.log(age) 不声明 不赋值 直接使用 报错
age = 10; console.log (age); 不声明 只赋值 10

4.6、变量命名规范

    变量的命名遵循以下规则:

  • 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成,如:usrAge, num01, _name
  • 严格区分大小写。例如var app; 和 var App; 是两个变量
  • 不能 以数字开头。例如18age 是错误的
  • 不能 是关键字、保留字。例如:var、for、while
  • 变量名必须有意义。
  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:myFirstName。

在这里插入图片描述

4.7、let和var的区别

    在ES6以后,JavaScript新增了一个let语法,作用和var基本类似。我们主要来探讨一下他们俩的区别。

4.7.1、作用域不同

    先说结论:var是函数作用域,let是块作用域

    在函数中声明了var,整个函数内都是有效的,比如说在for循环内定义的一个var变量,实际上其在for循环以外也是可以访问的,而let由于是块作用域,所以如果在块作用域内定义的变量,比如说在for循环内,在其外面是不可被访问的,所以for循环推荐用let。

<script>
    for(var i=0;i<2;i++){
        console.log(i)
    }
    console.log(i+"=======>")

    for(let j=0;j<2;j++){
        console.log(j)
    }
    console.log(j+"=======>")
</script>

在这里插入图片描述

4.7.2、能否在定义之前访问该变量

    先说结论:let不能在定义之前访问该变量,但是var可以

    let必须先声明,在使用。而var先使用后声明也行,只不过直接使用但没有定义的时候,其值是undefined。var有一个变量提升的过程,当整个函数作用域被创建的时候,实际上var定义的变量都会被创建,并且如果此时没有初始化的话,则默认为初始化一个undefined。

 console.log('var_name='+var_name)
    var var_name = XiaoLin

    console.log('let_name='+let_name)
    let let_name = XiaoLin

在这里插入图片描述

4.7.3、能否被重新定义

    先说结论:let不能被重新定义,但是var是可以的

   var var_name = "123"
   var var_name = "XiaoLin"
   console.log(var_name)

    let let_name = "456"
    let let_name = "XiaoLin"
   console.log(let_name)

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。