今天的背景图就放噗酱吧~
「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」。
在js中三种定义变量的方式以及区别
const定义变量不可修改,并且必须要初始化
const a = wanzi 正确定义
//const a 错误定义,没有初始化参数 ❌
console.log(a) 有输出值 输出wanzi
//a = WANZI
//console.log(a) 没有输出值
let是块级别作用域,在函数内使用let对函数外没有影响
let b = 1
console.log(b) 在函数外定义输入1
function fn(){
let b = 2
console.log(b) 在函数内部定义输入2
}
fn()
console.log(b) 执行了fn函数,但是第一次在函数外定义的b变量并不会因执行fn函数而改变 输入1
var定义的变量可以修改,但是如果不初始化定义会输入undefined,不会报错
var c = 1
//var c 不会报错
console.log(c) 在函数外定义输入1
function fn(){
c = 2
console.log(c) 在函数内部定义输入2
}
fn()
console.log(c) 执行fn函数,c变量修改
const对象的属性可以修改吗? 答:可以
const obj = { //此时obj是一个对象
name: 丸子,
age: 21
}
obj.age = 22
console.log(obj) // {name: 丸子, age: 22}可以修改obj里面的age
obj = {
name: 'abc',
age: 21
}
console.log(obj) // 会赋值错误
const定义的对象,可以修改对象里面的属性,但不支持整个赋值原对象
这里要了解 基本数据类型 和 引用数据类型
基本数据类型:Number、String、Null、Undefined、Boolean、Symbol、Bigint
基本数据类型的变量是保存在栈内存中,值也是在栈内存中修改的,相互之间是独立的,修改其中一个变量不会影响其他的变量
引用数据类型:Object
引用数据类型的存储是同时运用了栈和堆,栈里面存的是相应堆内存的地址,堆里面是我们的变量
| 栈 | 堆 |
|---|---|
| obj1的堆内存地址 | Object1 |
| obj2的堆内存地址 | Object2 |
在引用数据类型const定义的对象里面,只保存了对象的指针,所以当改变对象的值的时候,指针并不会改变,只要指针不发生改变,其他的都可以改变。
好啦,今天学习一点点🤏🏻,下期再见