Js的定义变量再复习一遍

250 阅读2分钟

今天的背景图就放噗酱吧~

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」。

在js中三种定义变量的方式以及区别

  1. const定义变量不可修改,并且必须要初始化
const a = wanzi 正确定义
//const a 错误定义,没有初始化参数 ❌
console.log(a) 有输出值 输出wanzi
//a = WANZI
//console.log(a) 没有输出值 
  1. 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
  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变量修改
  1. 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定义的对象里面,只保存了对象的指针,所以当改变对象的值的时候,指针并不会改变,只要指针不发生改变,其他的都可以改变。

好啦,今天学习一点点🤏🏻,下期再见