JavaScript的变量、常量和基本数据类型

本文深入解析JavaScript中的关键概念,包括let、const和var的区别,基本类型与引用类型的存储方式,类型转换机制,以及null与undefined的差异。同时,详细阐述了变量作用域的规则,帮助读者全面理解JavaScript的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. let,const和var

var存在变量提升,作用域是函数作用域,没有块的概念,可以跨块访问,不可以跨函数访问。
let,用于创建变量,不存在变量提升,只能在块级作用域(即最近的两个{})中访问,不可以跨块访问,不可以跨函数访问。
const,用于创建常量,只能在块级作用域中访问,使用时必须赋值且只能赋值一次,赋值后不可更改。

2. 基本类型和引用类型

基本类型:Number、String、Boolean、Null、Undefined
引用类型:Object(包括函数、数组、对象)
存储方式
基本类型存放在栈中,直接存放变量的值。
引用类型存放在堆中,存放的的是变量的引用(也就是指针,指向存储对象的位置)。
原因:基本类型所占存储空间较小,可以直接存放在栈中。引用类型存放多个值,所占空间大,且直接存放在栈中易造成混乱。

3. 类型转换

JavaScript是一种弱类型的语言,即不必声明变量的类型,一个变量可以拥有多个类型。变量的类型随着它的使用场景不同发生变化。
这里就涉及到等于和严格等于的问题。等于(==),当等式两边的变量值相等时(变量类型会自动转换)即为true。严格等于,需要等式两边的变量的值和类型都相同,才为true。

4. null和undefined

null 对象不存在
undefined 变量已创建,但未赋值

console.log(null == undefined) //true
console.log(null === undefined) //false

5.变量的作用域

分为全局作用域函数作用域
(1)每调用一次函数,就会创建一个新的作用域,函数执行完毕,作用域销毁。
(2)函数作用域可以访问到全局作用域的变量,全局作用域不可以访问到函数作用域的变量。
(3)在函数作用域中访问某变量时,会先在本作用域寻找,如果找不到,再向外面一层的作用域寻找…直到在全局作用域中寻找。
【es6中引入了块级作用域,以{}为标志,之后会针对这一块再专门写一篇文章】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值