变量与常量
JavaScript变量与常量
以下为学习过程中的极简提炼笔记,以供重温巩固学习
变量与常量学习准备
准备工作
- 已完成html5标签学习
- 已完成css的选择器、技巧与特性、元素属性学习,已熟悉css语法键值
- 已熟悉使用编译器:vscode
学习目的
掌握JavaScript的变量与常量,初步认识数组
变量
- 变量是存储数据的“容器”,变量不是数据本身,是一个用于存储数值的容器
- html标签 就是一种变量
- 变量使用 let 或 var 声明
JavaScript 变量的使用
声明变量
let 变量名
let num
- 声明(定义)变量有两部分构成:声明关键字、变量名(标识)
- let 即关键字,所谓关键字是系统提供的专门用来声明(定义)变量的词语
- num 即变量名,变量的名称,也叫标识符
变量赋值
定义变量后,在变量名后,使用=
,输入数值,即把数值赋值给变量
let num
num = 666
// 变量 = 字面量
变量的赋值:使用等号,右边赋值给左边,=
就是赋值运算符
变量初始化
声明变量的时候,同时直接完成赋值操作,称为 变量初始化
let num = 666
通过变量名来获得变量里面的数据
语法格式案例
<body>
<script>
// 1. 声明(定义)变量有两部分构成:声明关键字、变量名(标识)
// let 即关键字,所谓关键字是系统提供的专门用来声明(定义)变量的词语
// age 即变量的名称,也叫标识符
let age
// 2. 赋值,将 18 这个数据存入了 age 这个“容器”中
age = 18
// console.log(age)
// 3. 声明的同时直接赋值 变量的初始化
// let age = 18
// 4. 声明多个变量
// let age = 18, uname = 'pink老师'
// 小案例
let num = 20
let uname = 'pink老师'
console.log(num)
console.log(uname)
</script>
</body>
变量更新
变量名 = 新值
注意:let 不允许多次声明一个变量
语法格式案例
<body>
<script>
// 1 声明的同时直接赋值 变量的初始化
let age = 18
// 2 更新变量,变量的数据变为19
age = 19
console.log(age)
// 不允许在已经声明的情况下,再次声明变量
// X同时出现两次赋值这种写法是错的X let age = 19 X同时出现两次赋值这种写法是错的X
//
// 2. 声明多个变量
// let age = 18, uname = '迪丽热巴'
// console.log(age, uname)
// 提倡声明的方式
let age = 19
let uname = '迪丽热巴'
console.log(age, uname)
</script>
</body>
变量案例-交换变量的值
核心思路:使用一个 临时变量 用来做中间存储
步骤:
- 声明一个临时变量 temp
- 把num1的值赋值给 temp
- 把num2的值赋值给 num1
- 把temp的值给 num2
- 临时变量不用自动销毁
语法格式案例
<body>
<script>
let num1 = 'pink老师'
let num2 = '戚薇'
let temp
// 都是把右边给左边
temp = num1
num1 = num2
num2 = temp
console.log(num1, num2)
</script>
</body>
变量的本质
内存:计算机中存储数据的地方,相当于一个空间
变量本质:是程序在内存中申请的一块用来存放数据的小空间
变量命名规则与规范
- 规则:
- 不能用关键字
- 关键字:即有特殊含义的字符,JavaScript 内部已占用于单词(关键字或保留字)不允许使用:let、var、if、for等
- 只能用下划线、字母、数字、$组成,且数字不能开头
- 字母严格区分大小写,如 Age 和 age 是不同的变量
- 规范:
- 起名要有意义,尽量保证变量具有一定的语义,见字知义
- 遵守小驼峰命名法
- 第一个单词首字母小写,后面每个单词首字母大写。例:userName
注:所谓关键字是指 JavaScript 内部使用的词语,如 let
和var
,保留字是指 JavaScript 内部目前没有使用的词语,但是将来可能会使用词语
语法格式案例
<body>
<script>
// let if = 10
let num1$_ = 11
// let nav-bar = 11
// let 1num = 10
let pink = '老师'
let Pink = '演员'
console.log(pink, Pink)
// 案例,数入信息并返回弹出
let uname = prompt('请输入姓名')
let age = prompt('请输入年龄')
let gender = prompt('请输入性别')
document.write(uname, age, gender)
let age = 18 // 正确
let age1 = 18 // 正确
let _age = 18 // 正确
// let 1age = 18; // 错误,不可以数字开头
let $age = 18 // 正确
let Age = 24 // 正确,它与小写的 age 是不同的变量
// let let = 18; // 错误,let 是关键字
let int = 123 // 不推荐,int 是保留字
</script>
</body>
变量let和var的区别
在较旧的JavaScript,使用关键字 var 来声明变量 ,而不是 let
var 现在开发中一般不再使用它,只是我们可能再老版程序中看到它
var 声明的特点:
- 可以先使用 在声明 (不合理)
- var 声明过的变量可以重复声明(不合理)
- 比如变量提升、全局变量、没有块级作用域等等
以下是使用 let
时的注意事项:
- 允许声明和赋值同时进行
- 不允许重复声明
- 允许同时声明多个变量并赋值
- JavaScript 中内置的一些关键字不能被当做变量名
以下是使用 var
时的注意事项:
- 允许声明和赋值同时进行
- 允许重复声明
- 允许同时声明多个变量并赋值
大部分情况使用 let
和 var
区别不大,但是 let
相较 var
更严谨,因此推荐使用 let
数组
为了使变量能存储多个数据,可以将数组赋值给变量
数组 (Array) —— 一种将 一组数据按顺序 存储在单个变量名下 的优雅方式
数组声明与特征
数组声明:
let num = ['1','2','3','4','5','6']
// let 数组名 = [数据1,数据2,数据3,数据4,数据5,数据6]
// let 变量 = [数组字面量]
数组特征:
- 数组是按顺序保存,所以每个数据都有自己的编号
- 编号从0开始,数据1的编号为0,数据2的编号为1,以此类推
- 在数组中,数据的编号也叫索引或下标
- 数组可以存储任意类型的数据
数组术语与取值
数组术语:
元素:数组中保存的每个数据都叫数组元素 下标:数组中数据的编号 长度:数组中数据的个数,即数组的
length
属性
数组取值语法:
数组名 = [下标]
数组取值特征:
- 通过下标取数据
- 取出来是什么类型的,就根据这种类型特点来访问
语法格式案例
<body>
<script>
// let arr = [10, 20, 30]
// 1. 声明数组 有序
let arr = ['刘德华', '张学友', '黎明', '郭富城', 'pink老师', 10]
// 2. 使用数组 数组名[索引号] 从0
// console.log(arr)
console.log(arr[0]) // 刘德华
console.log(arr[4])
// 3. 数组长度 = 索引号 + 1
console.log(arr.length) // 6
// let 刘德华 = 10
// console.log(刘德华)
</script>
</body>
常量
- 定义:使用 const 声明的变量称为“常量”
- 使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明
- 命名规范:和变量一致
- 不需要重新赋值的数据使用const声明,通过声明方式,来确保数据是不会变的
- 常量不允许重新赋值,声明的时候必须赋值(初始化)
语法格式案例
<body>
<script>
// 声明常量
const G = 9.8
const PI = 3.14159
console.log(G,PI)
</script>
</body>
总结(来自gpt)
特征 | 常量 | 变量 |
---|---|---|
声明方式 | const | let 或 var |
作用域 | 块级作用域 | 块级作用域(let )或函数级作用域(var ) |
可变性 | 不可变 | 可变 |
初始化 | 必须在声明时初始化 | 可在声明后初始化 |
重新赋值 | 无法重新赋值 | 可以重新赋值(let )或重新声明(var ) |
- 常量
使用 const 关键字声明,常量在声明时必须初始化,并且不能在以后重新赋值。常量通常用于存储不会改变的值,例如应用程序的配置信息或数学常数。
- 变量
使用 let 或 var 关键字声明,变量可以在声明后初始化,并且可以重新赋值。let 变量具有块级作用域,这意味着它们只在声明它们的块(例如函数或循环)内可用。var 变量具有函数级作用域,这意味着它们在声明它们的函数内可用,即使它们是在嵌套块中声明的。
- 最佳实践
一般来说,建议使用 const 声明不会改变的值,因为这可以防止意外重新赋值并提高代码的可读性和可维护性。只有在需要时才使用 let 或 var 声明变量。