二、基本语法

news2024/12/24 19:26:06

一、变量声明

1、语法

<变量名称>: <变量类型> = <变量值>

2、变量类型

字符串:string

数值,整数、浮点数都可以:number

布尔:boolean

任意类型:any

联合类型,指定的多个类型中的一种:string|number|boolean

对象:类似json格式

数组:元素可以是任意其他类型

3、例子

variable1: string = "hello world"
variable2: number = 1
variable3: boolean = true
variable4: any = 'hello'
variable4 = 1
variable4 = true
variable5: string|number = 'world'
variable5 = 2
variable6 = {name: 'YAYA', age: 18}
console.log(variable6.name)
console.log(variable6['name'])
variable7: Array<string> = ['aaa', 'bbb']
variable8: number[] = [18,19]
console.log(variable7[0])
console.log(variable8[0])

4、实际运行效果

二、条件控制

1、if语法

空字符串、数字0、null、undefined

if(<条件>){
    <满足条件时执行的内容>        
}

if(<条件>){
    <满足条件时执行的内容>        
}else{
    <不满足条件时执行的内容>
}

if(<条件1>){
    <满足条件1时执行的内容>
}else if(<条件2>){
    <满足条件2时执行的内容>
}else{
    <不满足条件时执行的内容>
}

2、if语法执行结果

3、switch语法

switch (this.num){
    case 3: {
        this.msga = '合格';
        break;
    }
    case 6: {
        this.msga = '优秀';
        break;
    }
    default: {
        this.msga = '非法输入';
        break;
    }
}

4、switct语法执行结果

三、循环迭代

1、普通for 和 while 语法

// 普通for
for(let i = 0; i < 10; i++){
    //循环内容
}

// while
let i = 0;
while(i < 0){
    //循环内容
}

2、普通for 和 while 执行结果

3、迭代器

(1)、for in

遍历得到数组角标

let nums : string[] = ['10', '11']

for (const i in nums){
    console.log('for in :' + nums[i]);
}

(2)、for of

遍历直接得到元素

let nums : string[] = ['10', '11']

for (const num of nums){
    console.log('for of :' + num);
}

4、迭代器执行结果

四、函数

1、语法

function aa(){
  console.log('调用aa');
}
let bb = () => {
  console.log('调用bb');
}
function showLog(log: string){
  console.log(`显示Log:${log}`);
}
function sum(a: number, b: number): number{
  return a + b;
}
let cc = (a: number, b: number): number => {
  return a + b;
}
function showA(a?: string){
  console.log(`调用showA:${a ? a : '空'}。`)
}
function showB(a: string = "空"){
  console.log(`showB:${a}。`)
}

2、执行结果

五、类、接口、枚举

1、语法

//多态
//调用方式
let a: IA = new ClassA();
a.showLog(Code.Ok);


//声明方式
//定义枚举
enum Code{
  Ok = "200",
  NotOk = "400"
}
//定义接口
interface IA{
  showLog(log: Code): void
}
//实现接口
class ClassA implements IA{
  //构造函数
  constructor(msg: string) {
    console.log(`ClassA被构造了:${msg}`);
  }
  showLog(log: Code): void {
    console.log(`显示Log:${log}`);
  }
}

//继承
//调用方式
let b = new ClassC();
b.showMsg();

//声明方式
class ClassB{
  private msg: string
  constructor(msg: string) {
    this.msg = msg;
  }
  public showMsg(){
    console.log(this.msg);
  }
}
class ClassC extends ClassB{
  constructor() {
    super("这里是ClassC");
  }
}

2、执行结果

六、封装

1、语法

注意使用export导出方法,使用import导入方法

//ts文件 Demo1.ts
export enum Code{
  Ok = "200",
  NotOk = "400"
}
export interface IA{
  showLog(log: Code): void
}
export class ClassA implements IA{
  constructor(msg: string) {
    console.log(`ClassA被构造了:${msg}`);
  }
  showLog(log: Code): void {
    console.log(`显示Log:${log}`);
  }
}
export class ClassB{
  private msg: string
  constructor(msg: string) {
    this.msg = msg;
  }
  public showMsg(){
    console.log(this.msg);
  }
}
export class ClassC extends ClassB{
  constructor() {
    super("这里是ClassC");
  }
}

//方法调用文件
import {Code,IA,ClassA,ClassC} from '../entryability/Demo1'

let a: IA = new ClassA('ClassA');
a.showLog(Code.Ok);

let b = new ClassC();
b.showMsg();

2、执行结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL字符集

目标:了解字符集的概念&#xff0c;掌握MySQL数据库存储数据的字符集逻辑以及设置方式 字符集概念 MySQL字符集关系 解决乱码问题 字符集设置原理 1、字符集概念 目标:了解字符集概念&#xff0c;掌握字符集存储和读取的实现原理 概念 字符集:charset或者character set&am…

Microsoft 365自定义安装软件

如图&#xff0c;在安装类型的步骤的时候&#xff0c;可以勾选自己想要的软件&#xff08;而非一股脑儿的安装一大堆自己不需要的&#xff09;。

冒泡排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?

问题描述&#xff1a;冒泡排序法的名字由来&#xff0c;排序步骤是什么&#xff0c;最坏情况下的排序次数如何计算得来的呢&#xff1f; 问题解答&#xff1a; 冒泡排序法的名字来源于排序过程中较大的元素会像气泡一样逐渐“冒”到序列的顶端&#xff0c;而较小的元素则会逐…

springsecurity+vue前后端分离适配cas认证的跨域问题

0. cas服务搭建参考:CAS 5.3服务器搭建_cas-overlay-CSDN博客 1. 参照springsecurity适配cas的方式, 一直失败, 无奈关闭springssecurity认证 2. 后端服务适配cas: 参考前后端分离项目(springbootvue)接入单点登录cas_前后端分离做cas单点登录-CSDN博客 1) 引入maven依赖 …

【工具】阿莫智能设备之脱机烧录器K202C-1

注意&#xff0c;本文档仅仅是介绍烧录器的资料构成&#xff0c;并非烧录器的说明书&#xff0c;详细请看各对说明书及视频。 1. 资料图解 首先需要下载资料&#xff0c;通常稳定发布版本可以从 www.amomcu.cn 下载&#xff0c; 也可以向我们客服获取最新版本&#xff0c; 获…

多线程读写锁应用

实际场景 大多数情况下&#xff0c;线程只是读取共享变量的值&#xff0c;并不修改&#xff1b;只有少数情况下&#xff0c;线程才真正修改共享变量的值 "读" & "写" 场景下的临界区保护 多个线程同时读取一个共享变量时&#xff0c;并不存在冲突 (无…

基于PID控制器的直流电机位置控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 1. PID控制器原理 2. 位置控制环 5.完整工程文件 1.课题概述 基于PID控制器的直流电机位置控制系统。直流电机位置控制系统是工业自动化领域中的一个重要应用。为了实现精确的位置控制&#xff0c;常采…

第七篇【传奇开心果系列】python的文本和语音相互转换库技术点案例示例:Sphinx自动电话系统(IVR)经典案例

传奇开心果博文系列 系列博文目录python的文本和语音相互转换库技术点案例示例系列 博文目录前言一、雏形示例代码二、扩展思路介绍三、Sphinx多语言支持示例代码四、Sphinx和语音合成库集成示例代码五、Sphinx语音识别前自然语言预处理示例代码六、Sphinx语音识别自动电话系统…

ApexRBp在线粒子传感器在电动汽车电池制造的应用

电动汽车电池的崛起与颗粒污染的挑战 随着电动汽车&#xff08;EV&#xff09;市场的迅速扩张&#xff0c;对高性能锂离子电池的需求也急剧增加。这些电池不仅是EV的心脏&#xff0c;更是推动其前行的核心动力。然而&#xff0c;在电池制造的每一个环节&#xff0c;都需要对多…

Vite+Vue3+Ant Design3.2报错: Cannot read properties of null (reading ‘isCE‘)

最近的ViteVue3Ant Design Vue3.2开发的项目莫名其妙的报错&#xff1a; Uncaught (in promise) TypeError: Cannot read properties of null (reading isCE) 一直找不到原因出在哪&#xff0c;害的我费了好多时间调试 &#xff0c;百度上也找了各个解决方法&#xff0c;有说使…

electron学习和新建窗口

首先我们要先下载electron npm install --save-dev electron 建立入口文件main.js 新建一个入口文件 main.js&#xff0c;然后导入eletron新建一个窗口。 const { app, BrowserWindow, ipcMain } require("electron"); const path require("path");func…

MacBook的nginx出现13: Permission denied 的问题分析和解决办法

同样的项目代码&#xff0c;电脑从Windows更换到了MacBook&#xff0c;发现网站的样式都没有了&#xff0c;直接访问CSS文件 http://crm.ms-test.cc/toolstatic/css/bootstrap.min.css 发现无法访问。查看Nginx错误日志&#xff1a; 说明是nginx没有权限访问这个CSS文件&#…

HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输&#xff0c;所以安全上存在以下三个风险: 窃听风险&#xff0c;比如通信链路上可以获取通信内容&#xff0c;用户号容易没。篡改风险&#xff0c;比如…

防御保护---VPN

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.VPN概述 VPN的基本原理是在原有的公共网络之上&#xff0c;建立一个使用加密技术保护数据传输的私有网络。通过VPN&#xff0c;用户可以在不同的地点之间建立起安全的连接&#xff0c;实现远…

【Crypto | CTF】BUUCTF RSA2

天命&#xff1a;密码学越来越难了&#xff0c;看别人笔记都不知道写啥 天命&#xff1a;莫慌&#xff0c;虽然我不会推演法&#xff0c;但我可以用归纳法 虽然我不知道解题的推演&#xff0c;但我可以背公式啊哈哈哈 虽然我不会这题&#xff0c;但是我也能做出来 公式我不知…

笔试题讲解(C语言进阶)

目录 前言 1、题目 2、答案 3、解析 结语 前言 “纸上得来终觉浅&#xff0c;绝知此事要躬行”。本篇通过对指针实际案例的分析&#xff0c;由浅入深&#xff0c;来加强我们对指针的理解。 1、题目 这是一道难题&#xff0c;小心哦。 #include <stdio.h> int main(…

蓝桥杯C++竞赛常用库函数介绍

文章目录 前言一、二分查找1. 二分查找的前提2.binary_search函数3.lower_bound函数和upper_bound函数4.蓝桥杯例题 二、最值查找1. min和max函数2.min_element和max_element函数3.nth_element函数4.蓝桥杯例题 三、排序1.sort函数2.sort自定义比较函数,或lambda表达式(匿名函数…

企业计算机服务器中了crypt勒索病毒怎么办,crypt勒索病毒解密数据恢复

计算机服务器设备为企业的生产运营提供了极大便利&#xff0c;企业的重要核心数据大多都存储在计算机服务器中&#xff0c;保护企业计算机服务器免遭勒索病毒攻击&#xff0c;是一项艰巨的工作任务。但即便很多企业都做好的了安全运维工作&#xff0c;依旧免不了被勒索病毒攻击…

hexo+gitee免费打造个人网站导航

一、准备工作 本文在win10系统下进行环境搭建 1.可参考官方文档 hexo官方网站 Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown&#xff08;或其他标记语言&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页 2.配置环境 这…

最新版opencv4.9安装介绍,基本图像处理详解

文章目录 一、什么是OpenCV &#xff1f;二. OpenCV 安装1. 下载地址2.安装命令&#xff1a;pip install opencv-python 三、图像基础1. 基本概念2. 坐标系3. 基本操作&#xff08;彩色图片&#xff09;&#xff08;1&#xff09;读取图片&#xff1a;cv2.imread( )&#xff08…