从零开始学习typescript——变量

就像我们在学校学习语文、英文时候一样,最开始学习的是语法,要知道基础的结构。
在这里插入图片描述
图片中包含 变量、标识符、数据类型、运算符、字面量、表达式、控制语句等语法

变量

变量是使用给定的符号名在内存中申请存储地址,并且可以容纳某个值。
语法是:
变量 变量名:数据类型 = 变量值(字面量)

let h_w : string ="hello world"

存储位置
在定义中,我们说变量是存储在内存中,那么内存是什么呢?
内存是计算机用来存储数据和指令的硬件设备。它提供了计算机用来执行程序和处理数据的空间。

在ts中,我们更关心,栈(stack) 和 堆(Heap)的作用;
栈(Stack)
定义: 栈是一种线性结构,存储在内存中,用于存放方法调用、局部变量、函数参数以及程序执行期间的临时数据。
特点: 栈是一种后进先出(LIFO,Last In First Out)的数据结构,最后进入的数据被最先取出。
用途: 主要用于跟踪程序的执行过程、方法的调用和返回以及保存临时数据。
管理方式: 栈的管理由编译器自动处理,它在程序运行时分配和释放内存,因此存储在栈中的变量的生命周期与其作用域紧密相关。
存储内容: 局部变量(函数内部定义的变量)、方法的参数、方法调用和返回信息。
分配方式: 分配和释放内存速度较快,但是栈的大小通常比较有限,受限于系统设置。
堆(Heap)
定义: 堆是一种动态分配的内存区域,用于存储程序运行时需要动态分配的数据。
特点: 堆是一种自由存储的内存区域,由程序员手动管理内存的分配和释放。
用途: 主要用于存储动态分配的数据,比如对象、数组等。
管理方式: 堆的管理由程序员手动操作,需要手动分配和释放内存,如果没有适当地释放堆中的内存,可能会导致内存泄漏。
存储内容: 动态分配的对象和数据,比如由 new 关键字创建的对象。
分配方式: 分配和释放内存速度相对较慢,堆的大小受限于系统的虚拟内存大小和操作系统的内存管理。

基本类型的变量(如 number, boolean, string 等)在 JavaScript 引擎中通常被存储在栈内存中
对象类型的变量(如对象、数组等)在 JavaScript 引擎中通常存储在堆内存中。当你创建一个对象时,它的大小是不固定的,因此它们被存储在堆上,并且变量名(在栈上)只是一个指向堆内存地址的引用

  1. 变量关键字
  • var
    在声明变量时,可以为变量赋予一个初始值。若变量未出实话,则其默认值为undefined
  • let
    在声明变量时,可以为变量赋予一个初始值。若变量未出实话,则其默认值为undefined
  • const
    声明用于定义一个常量,定义时必须设置一个初始值
const PI = 3.14

区别
var 是es5中传统声明变量的方式;具有函数作用域;这意味着 var 声明的变量在声明它的函数内部是可见的。不管是在那个块的内部声明;可以多次声明相同的变量而不会引发错误。

var x =1; 
if(true){
  var x=10
}

let 引入了块级作用域,只在声明它的块级作用域有效;不允许重复声明同一变量;存在暂时性死区(Temporal Dead Zone,TDZ),即在变量声明之前访问变量会抛出错误。

const 声明一个常量,其值在声明后无法被重新赋值。但是对于对象或数组这样的引用类型,其指向的内容是可以修改的

  1. 变量名
    变量名也称为标识符,标识符指变量、函数、参数、类、属性等的名字。其实简单理解可以把它看成 变量值的 一个称号,就像人的姓名一样
    变量名需要满足以下规则:
  • 允许包含字母、数字、下划线和$符号
  • 允许包含unicode转义序列,如“\u0069”
  • 仅允许使用字母、unicode转义序列、下划线和$作为第一个字符,不允许使用数字作为第一个字符
  • 标识符区分大小写
  • 不允许使用保留字作为标识符;下图中是部分保留字
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

layman0528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值