2.1 变量声明关键字
-
var
-
let
-
const
2.1.1 变量存储
变量是对字面量的存储,当我们想要反复使用某个字面量时,可以使用变量存储,下次直接使用变量名即可,不需要再去创建一个新的字面量。
如果我们要弹出三次的Hello JavaScript
字符,那么我们就需要使用以下代码
alert("Hello JavaScript") alert("Hello JavaScript") alert("Hello JavaScript")
如果使用变量,我们就变成了下面的写法
var str = "Hello JavaScript" alert(str) alert(str) alert(str)
2.1.2 变量声明
变量可以单独声明,就像我们单独做了一个箱子,但没有往箱子中放任何东西
var 变量名 // 单独声明变量不赋值
2.1.3 变量赋值
变量赋值是一个把值存放在变量中的过程,这个过程需要用赋值运算符 =
来进行。
var 变量名 变量名 = 值
这是一种先声明再赋值的过程,一般情况下,我们可以将变量声明及赋值放在一起
var 变量名 = 值
2.1.4 变量提升问题
使用var
声明的变量存在变量提升的问题,那么什么是变量提升。变量提升一个客观事实,表现为,当我们先使用变量,后声明变量时,没办法得到正常的结果,看下面效果。
console.log(str) // 如果是其他编程语言,这个地方是会报错的,告诉我们变量str找不到。但是在js中不会这样,js会直接输出undefined,一个没有学过的值 var str = "Hello World"
在JavaScript中,上面的代码其实相当于下面的代码
var str console.log(str) // 输出一个还没有学过的值undefined str = "Hello World"
2.2 数据类型
字面量其实有不同的类型,在写JS代码时,在不同的情况,我们也需要使用不同的类型值,前期我们不清楚什么时候使用不同的类型,那么我们就需要先学习类型都有那些。
JS中的值都是存储在内存中的
2.2.1 String
在JS中,所有的用引号包裹的内容都是字符串
"字符串" '字符串' "123" "3.14" "true"
字符串包裹不限双引号和单引号
2.2.2 Number
在JS中直接写的数字没有被引号包裹的叫Number
1 10 10.11
2.2.2 NaN
NaN是一个特殊的数字,全称“Not a Number(不是一个数字)”因为在JS中很多操作都可能把一些值转换为数字,但是有些值,如特殊字符串等无法被转换为现存的数字类型
2.2.3 Boolean
在JavaScript中,有一个值掌管对错,那就是布尔值(Boolean),布尔值只有两个值 true
和 false
true false
2.2.4 Undefined
-
定义了一个变量但没有为该变量赋值,使用了一个并未赋值的变量
-
使用了一个不存在的对象的属性时
Undefined类型下只有undefined
一个值,这个值在很多地方都会出现,先做了解。变量声明未赋值时就是 undefined
var str console.log(str) // undefined
2.2.5 Null
-
null表示一个空值
-
null不等于空字符串""、''或0
-
null和undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值
2.2.6 Array(数组)
2.2.6.1 创建数组
数组的写法很简单,我们可以使用 []
来表示数组
创建数组时我们可以在数组中存放值,值的写法是统一的
数组中的值类型不作限制,设置我们可以直接存放一个新的数组都可以
var arr = [] var arr = [1, "字符串", true, undefined, null, []]
2.2.6.2索引值
在数组中,值是有顺序的,从0开始到最终结束。
[1,2,3,4,5]
这个数组的顺序就是0、1、2、3、4,而这些值就是这个数组的索引值,也叫下标
2.2.6.3 数组取值
如果我们想要使用数组中的某个值,则需要使用变量名[索引值]
let arr = ["第一个值", "第二个值", "第三个值", "第四个值"] console.log(arr[0]) // 第一个值 console.log(arr[1]) // 第二个值 console.log(arr[2]) // 第三个值 console.log(arr[3]) // 第四个值
2.2.7 Object 对象
一切切对象
数组可以存储多个值,但是无法得知每个值的作用是什么,如果我们想要给每个值有对应的特性,可以使用对象,对象以 key: value
形式存在。在 {}
中包裹
{ key: value, key: value, key: value, 自定义属性名: "属性值" }
比如,如果我们想要表示一个学生的“姓名”, “年龄”, “性别”,使用数组表示为下面的形式
let stu = ['张三', 18, '男'] // 虽然每个值都有,但是在有些时候,我们不知道那个值对应的是什么,这个时候就可以使用对象
使用对象则会更加清晰明了
let stu = { name: "张三", age: 18, sex: "男" }