第四节TypeScript 声明变量

1、typescript变量声明

变量是一种使用方便的占位符,用于引用计算机内存地址。

我们可以把变量看做存储数据的容器。

typescript变量的命名规则:

  • 变量名称可以包含数字和字母。
  • 除了下划线_和美元$符号外,不能包含其它特殊字符,包括空格。
  • 变量名不能以数字开头。

变量使用前必须先声明,我们可以使用var来声明变量。

声明变量的几种方式:

1)、声明变量的类型以及初始值:

     var 变量名: 类型 = 值;

例如:

     var uesrName: string = “李四”;

2)、声明变量的类型,没有初始值,变量值会默认设置为undefined:

     var 变量名: 类型;

例如:

var uesrName: string

3)、声明变量并赋初始值,但不设置类型,该变量可以是任意类型:

     var 变量名= 值;

例如:

var uesrName = “李四”;

4)、声明变量没有设置类型和初始值,类型是任意类型,默认值是undefined

var 变量名;

例如:

     var uesrName;

实例:

var uname:string = "Runoob"; 
var score1:number = 50;
var score2:number = 42.50
var sum = score1 + score2 
console.log("名字: "+uname) 
console.log("第一个科目成绩: "+score1) 
console.log("第二个科目成绩: "+score2) 
console.log("总成绩: "+sum)

执行结果:

名字: Runoob

第一个科目成绩: 50

第二个科目成绩: 42.5

总成绩: 92.5

注意:typescript遵循强类型,如果将不同类型赋值给变量会编译异常。如下:

var num:number = "hello word"     // 这个代码会编译错误

2、变量的作用域

变量的作用域制定了变量定义的位置。

程序中变量的可用性由变量的作用域决定。

变量的作用域有哪几种呢?

1)、全局作用域

     全局变量定义在程序结构的外部它可以在你代码的任意位置使用。

2)、类作用域

     类变量声明在一个类里面,但在类的方法外面,该变量可以通过对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。

3)、局部作用域

     局部变量只能在声明它的一个代码块中使用(如方法)。

以下是三种作用域的使用说明:

var global_num = 12          // 全局变量
class Numbers { num_val = 13;             // 实例变量static sval = 10;         // 静态变量storeNum():void { var local_num = 14;    // 局部变量} 
} 
console.log("全局变量为: "+global_num)  
console.log(Numbers.sval)   // 静态变量
var obj = new Numbers(); 
console.log("实例变量: "+obj.num_val)

以上代码使用tsc命名编译为js代码为:

var global_num = 12; // 全局变量
var Numbers = /** @class */ (function () {function Numbers() {this.num_val = 13; // 实例变量}Numbers.prototype.storeNum = function () {var local_num = 14; // 局部变量};Numbers.sval = 10; // 静态变量return Numbers;
}());
console.log("全局变量为: " + global_num);
console.log(Numbers.sval); // 静态变量
var obj = new Numbers();
console.log("实例变量: " + obj.num_val);

执行结果:

全局变量为: 12

10

实例变量: 13

注意:如果我们在方法外面调用局部变量local_num,会报错的:

error TS2322: Could not find symbol 'local_num'.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/289120.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(备战2024)三天吃透Java面试八股文,面试通过率高达90%

什么样的求职者能够获得面试官的青睐?求职者需要准备哪些内容来面对形形色色的面试官?这两份资料是我在几十场面试中被面试官问到的问题,比其他复制粘贴的面试题强一百倍,堪称全网最强(我不太喜欢“全网最强”这样的字…

2023.12.18 制作py,shell脚本进行数据库操作与定时任务

目录 虚拟机中已有的两个库: bi_db和shopnc_db 1.在pycharm中,使用pymysql,连接数据库进行增删改查操作 1.1 查询 1.2 修改 1.3 删除 1.4 增加 2.使用pandas,操作pycharm对数据库进行操作 2.1 对mysql进行覆盖写入 2.2 对mysql进行追加写入 3.在linux中,进行自动化定…

【坐标系在动态SLAM中究竟有多重要】

文章目录 概要整体架构流程背景表示小结 概要 这篇文章对动态SLAM(Simultaneous Localization and Mapping)的多种解决方案进行了深入分析,并确定了解决该问题的最佳方案。文章的重点在于强调了坐标系在解决动态SLAM问题中的重要性。 动态S…

DC-8靶场

目录 DC-8靶场链接: 首先进行主机发现: sqlmap得到账号密码: 反弹shell: exim4提权: Flag: DC-8靶场链接: https://www.five86.com/downloads/DC-8.zip 下载后解压会有一个DC-8.ova文件…

ADS学习笔记(一)——更新中

在ADS中,信号上升时间为信号从0~100%所用的时间,而实际上定义的上升边均为10%~90%,所以可以认为上升边=0.8*ADS设置上升时间。 一、终端开路及短路的反射信号 1.仿真条…

gitcode邀请协作人员

项目首页 点击项目设置 点击项目成员设置--生成邀请链接 设置权限、是否需要审核、成员有效时间、邀请链接有效时间(不设置时间就是永久有效) 点击创建链接 点击复制分享给别人加入即可

Python---互斥锁

1.互斥锁的概念 互斥锁: 对共享数据进行锁定,保证同一时刻只能有一个线程去操作。 注意: 互斥锁是多个线程一起去抢,抢到锁的线程先执行,没有抢到锁的线程需要等待,等互斥锁使用完释放后,其它等待的线程再去抢这个锁…

netty线程调度定制

1、netty的线程调度问题 在netty的TCP调度中,线程的调度封装在NioEventLoopGroup中,线程执行则封装在NioEventLoop中。 线程调度规则封装在MultithreadEventExecutorGroup的next方法中,这个方法又封装了EventExecutorChooserFactory&#xf…

mysql:查看服务端没有睡眠的线程数量

使用命令show global status like Threads_running;可以查看服务端没有睡眠的线程数量。 例如:

【华为OD机试真题2023CD卷 JAVAJS】加密算法

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 加密算法 知识点DFS搜索 题目描述: 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下: 1. 明文为一段数字串由0~9组成 2. 密码本为数字0~9组成的二维数组 3. 需要…

Swift 周报 第四十期

文章目录 前言新闻和社区53.5亿美元!传苹果今明两年或将采购 2.3 万台 AI 服务器!TestFlight 让管理测试员变得更加简单推送通知控制面板现已推出新交付指标Apple Vision Pro 开发者实验室现已扩展到纽约市和悉尼 提案正在审查的提案 Swift论坛推荐博文话…

vue打包内存问题解决办法<--- Last few GCs ---><--- JS stacktrace --->

**<— Last few GCs —> [18484:0000026763669610] 106760 ms: Mark-sweep 4016.0 <— JS stacktrace —> FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory** 解决办法&#xff1a; set NODE_OPTION…