【cocos creator】【TS】ts入门,cocos creator基础知识

TS入门

记录常用的
系统学习可参考:菜鸟教程

1、语法规范:

以换行分割语句,
可省略末尾分号,同一行需要使用分号来分隔

2.打印log

console.log("Hello World!")//白色,一般提示
console.warn("Hello World!")//黄色,警告
console.error("Hello World!")//红色,报错

3、注释

//单行注释/*** 多行注释* */

4、对象object,类class,方法function

面向对象和面向过程
ts文件基本包含

//className类名
class className {
//方法,函数main() {//调用函数this.functionA()}functionA() {//变量let a = 1;console.log(a);}
}

5、基础类型

any 任意类型
number 数字,包含小数,整数
string 字符串
boolean,
array,
enum
void.
object 对象{a:1}
数组,对象,字符串详解

6、创建变量,方法,类

变量命名规范
const


//const 创建常数,创建以后不可改变
//也可以用来创建object,可改变里面内容
const b = 1;
const obj = { a: 1, b: 2 }
obj.a = 2;
//输出 obj
"obj = { a: 2, b: 2 }"
obj = null;
//输出 obj,失败,会报错

let


//类型为小数,整数,二进制等用number
let a2_1: number = 1.1;
let a2_2: number = 1;
//类型为字符串用string
let a3_1: string = "a";
let a3_2: string = 'a';
let a3_3: string = `a`;//推荐这种写法
let a3_4: string = `a${a2_1}`;//可和表达式混写,结果为 `a1.1`
//类型为true,false用boolean
let a4_1: boolean = true;
//定义数组
let a5_1: number[] = [1, 2, 3]
//定义对象,自定义类型
type test_obj = {name: string,id: number
}
let a6_1: test_obj = null
let a6_2: test_obj = { name: "aaa", id: 666 }
//以上所有类型都可以用any,写any则编辑器不校验类型,为了规范不建议用
let a7_1: any = 1;
a7_1 = "";//类型为any不报错
//不写类型会按第一个赋值的内容推断类型
let a8_1 = 1;
a8_1 = "";//类型推断number,编辑器会报错//类和函数
class classNameTest {//无返回值用voidfunctionA(): void {}//返回number类型,可用类型同上方functionB(): number {return 1}
}//含有多种类型
let a9_1: number | string = 1
a9_1 = "aaa"//不会报错//问号以及默认值使用
function functionC(a: string, b?) { }
function functionD(a: string, b = 1) { }
functionC("111")//类型后标记问号,可不传
functionC("111")//类型后有默认值,可不传

7、运算符+,-,*,/,%,++,–,+=,-=,!,||,&&

+,-,*,/,%

加 减 乘 除

%求余

5%2=1
结果为5除以2的余数

++,–,+=,-=

自增,自减
a++ 等于 a=a+1

// a++和++1a=1;b=a++b=a;a++b=1;a=2a=1;b=++aa=a+1;b=aa=2;b=2;a+=1
a=a+1,也可以简写成a++

! 非,&&且 ||或
&& 运算符只有在左右两个表达式都为 true 时才返回 true。
|| 运算符只要其中一个表达式为 true ,则返回 true。


//!表示非,返回true,false
let a4_2: boolean = !1;//返回false
let a4_3: boolean = !!1;//返回true

8、条件语句

if…else

if(A){}
else if(B){}
else{}//只有if判断可省略{}
if(a==1)a=2;

判断字段为空

//判断字段不为空
if(a){
funA()
}else{
funB()
}
a为0"",null,undefined会走funB
a为[],{},NAN会走funA//cocos creator里,判断字段不为undefined,null可用
if (cc.isValid(test))
//cocos creator里,判断字段不为undefined,null且不为NAN可用
if (cc.isValid(test) && !isNaN(test))let test_number = parseInt("aaa")
//把非数字字符串转换可能出现类型为NAN的情况,需要额外用isNaN判断判断[]为空
let arr=[]
if(!arr.length)
注意:
arr==[]返回的是false,不能借此判断判断{}为空对象
let obj={}
if(Object.keys(obj).length == 0);
注意:
obj=={}返回的是false,不能借此判断

简写判断 Test ? expr1 : expr2

let b=1
let a = b==1 ? 1 : 2
//等同于
let a;
if(b==1){
a=1
}
else{
a=2
}

switch…case

let i = 1
switch (i) {case 1://i==1时走这里break;//跳出switch语句case 2://i==2时走这里case 3://i==2或i==3时都会走这里break;default://其余情况break;
}

9、循环

for循环,遍历数组,或字符串每个元素
continue,break,return使用


//遍历数组,字符串每个元素
let array = [1, 2, 3, 4]
for (let i = 0; i < array.length; i++) {const element = array[i];if (element == 1) {continue;//继续下一个循环}if (element > 3) {break;//跳出当前for循环}if (element == 2) {return;//不走下面分代码,直接结束当前方法}
}let str="hello"
for (let i = 0; i < str.length; i++) {const element = str[i];console.log(element)
}
//依次输出 h e l l o//倒序遍历
for (let i = array.length - 1; i >= 0; i--)//遍历数组//forEach会把所有元素遍历一遍,不会中途停止array.forEach(element => {if (element == 1) return//转到下一层遍历//continue无效});

for in循环,遍历数组或对象

//遍历数组或对象
let obj = { a: 1, b: 2 }
for (const key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {const element = obj[key];//类似for,可以用break,continue,return}
}
// while 循环
// while 语句在给定条件为 true 时,重复执行语句或语句组。循环主体执行之前会先测试条件。
let a = 1
while (1) {//一直执行a++if (a == 10) return//直到此处返回,递归会用到
}

10、函数

class testClass {a = 1;fun() {//箭头函数let fun2 = () => {// 执行代码console.log(this.a)//输出1,this默认指向当前类}}
}

cocos creator基础知识

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

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

相关文章

如何用AI交互数字人一体机,打造政务服务新名片?

如今&#xff0c;将“高效办成一件事”作为优化政务服务、提升行政效能的重要抓手&#xff0c;各地方为了促进政务服务由传统模式向数字化、智能化方向转变&#xff0c;纷纷在政务服务场景融合了AI交互数字人&#xff0c;实现“无人化、智慧化”导办、帮办、代办等模式&#xf…

9、Redis之哨兵

Redis之哨兵 1、什么是哨兵 ​ 对于Master宕机后的冷处理方式是无法实现高可用的。Redis从2.6版本开始提供了高可用的解决方案–Sentinel哨兵机制。在集群中再引入一个节点&#xff0c;该节点充当Sentinel哨兵&#xff0c;用于监视Master的运行状态&#xff0c;并在Master宕机…

Gemma的简单理解;Vertex AI的简单理解,与chatGpt区别

目录 Gemma的简单理解 Vertex AI的简单理解 Gemma Vertex AI Gemma Vertex AI和chatcpt区别 一、定义与功能 二、技术特点 三、应用场景 四、获取与部署 Gemma的简单理解 定义与功能: Gemma是谷歌开源的一款大语言模型,它采用了Gemini架构,并提供了20亿(2B)和7…

Apache AGE的MATCH子句

MATCH子句允许您在数据库中指定查询将搜索的模式。这是检索数据以在查询中使用的主要方法。 通常在MATCH子句之后会跟随一个WHERE子句&#xff0c;以添加用户定义的限制条件到匹配的模式中&#xff0c;以操纵返回的数据集。谓词是模式描述的一部分&#xff0c;不应被视为仅在匹…

3D问界—在MAYA中使用Python脚本进行批量轴居中

问题提出&#xff1a;MAYA中如何使用Python脚本 今天不是一篇纯理论&#xff0c;主要讲一下MAYA中如何使用Python脚本&#xff0c;并解决一个实际问题&#xff0c;文章会放上我自己的代码&#xff0c;若感兴趣欢迎尝试&#xff0c;当然&#xff0c;若有问题可以见文章末尾渠道&…

分布式IO系统2通道串口通信模块M602x

现场总线耦合器本身包含一个电源模块&#xff0c;它有 2 个串口通道&#xff0c;通过 Modbus RTU&#xff08;Master&#xff09;协议连接外部串行设备&#xff0c;实现耦合器与外部串行设备通信&#xff0c;现以连接设备的示例带大家了解我们钡铼的2 通道串口通信模块 M602x。…

【BUG】已解决:Uncaught SyntaxError: Unexpected token ‘<‘

已解决&#xff1a;Could not install packages due to an EnvironmentError: [Errno 13] Permission denied 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 …

深入解析Apache Hive架构

目录 引言Hive简介 什么是HiveHive的特性Hive的优势 Hive架构概述 Hive的核心组件Hive的工作原理 Hive的核心组件详解 HiveQLMetaStoreDriverCompilerOptimizerExecutorStorage Hive的工作流程 查询处理流程数据加载和存储流程 Hive的使用场景Hive的优缺点总结 引言 随着大数…

【INTEL(ALTERA)】使用 F-Tile DisplayPort FPGA IP 设计示例时为何模拟失败?

目录 说明 解决方法 说明 由于 Quartus Prime Pro Edition 软件版本 24.1 存在一个问题&#xff0c;F-Tile DisplayPort FPGA IP 设计示例的模拟将运行超过 24 小时&#xff0c;然后失败&#xff0c;并显示消息“Simulation Hanged”。 解决方法 要解决此问题&#xff0c;…

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题解决

一、系统环境变量中添加tomcatjdk的环境变量声明 1、右击此电脑->属性->高级系统设置 可复制粘贴下面的变量名 CATALINA_HOME 点击path->编辑->新建 可将下面值粘入 %CATALINA_HOME%\bin 2、配置jdk的系统变量 系统变量->新建->如图 可将下面变量名粘入 J…

Python兴趣编程百例:使用Python实现一个Json与Excel互转小工具

在日常数据处理中,JSON 和 Excel 是两种常见的数据格式。为了方便在这两种格式之间进行转换,我们决定使用 Python 的 pandas 库来实现 JSON 与 Excel 的互相转换工具,并用 PyQt 实现一个图形界面。本项目将包含详细的设计思路、类设计说明、实现步骤和完整代码。 1.设计思路…

Flutter热更新技术探索

一&#xff0c;需求背景&#xff1a; APP 发布到市场后&#xff0c;难免会遇到严重的 BUG 阻碍用户使用&#xff0c;因此有在不发布新版本 APP 的情况下使用热更新技术立即修复 BUG 需求。原生 APP&#xff08;例如&#xff1a;Android & IOS&#xff09;的热更新需求已经…

c++写一个查询工作站服务器中每个用户的空间使用量

工作中有一个小需求&#xff0c;需要统计用户空间使用量 统计空间的主函数&#xff1a; #include <iostream> #include <fstream> #include <sstream> #include <map> #include <string> #include <cstdlib> #include <sys/types.h&g…

LabVIEW 与 PLC 通讯方式

在工业自动化中&#xff0c;LabVIEW 与 PLC&#xff08;可编程逻辑控制器&#xff09;的通信至关重要&#xff0c;常见的通信方式包括 OPC、Modbus、EtherNet/IP、Profibus/Profinet 和 Serial&#xff08;RS232/RS485&#xff09;。这些通信协议各有特点和应用场景&#xff0c…

从零手写实现 nginx-31-load balance 负载均衡介绍

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

@google/model-viewer 导入 改纹理 (http-serve)

导入模型 改纹理 效果图 <template><div><h1>鞋模型</h1><model-viewerstyle"width: 300px; height: 300px"id"my-replace-people"src"/imgApi/Astronaut.glb"auto-rotatecamera-controls></model-viewer>&…

C++STL---priority_queue知识总结及模拟实现

前言 和stack与queue一样&#xff0c;priority_queue也是一种容器适配器。 他的本质其实是堆&#xff0c;作优先级队列的底层需要能够通过随机迭代器访问&#xff0c;所以他的底层是可以由vector和queue实例化&#xff0c;默认情况下priority_queue默认是用vector作为底层实例…

智慧博物馆的“眼睛”:视频智能监控技术守护文物安全与智能化管理

近日&#xff0c;位于四川德阳的三星堆博物馆迎来了参观热潮。据新闻报道&#xff0c;三星堆博物馆的日均参观量达1.5万人次。随着暑假旅游高峰期的到来&#xff0c;博物馆作为重要的文化场所&#xff0c;也迎来了大量游客。博物馆作为文化和历史的重要载体&#xff0c;其安全保…

关于vue实现导出excel表,以及导出的excel后的图片超过单元格的问题

实现导出带图标片的excel的方法&#xff0c; 首先&#xff1a; import table2excel from js-table2excel // 导出表格 按钮点击后触发事件 const onBatchExport () > {const column [//数据表单{title: "ID", //表头名称titlekey: "id", //数据ty…

通用图形处理器设计GPGPU基础与架构(四)

一、前言 本文将介绍GPGPU中线程束的调度方案、记分牌方案和线程块的分配与调度方案。 二、线程束调度 在计算机中有很多资源&#xff0c;既可以是虚拟的计算资源&#xff0c;如线程、进程或数据流&#xff0c;也可以是硬件资源&#xff0c;如处理器、网络连接或 ALU 单元。调…