ArkTS语法介绍
第三课:ArkTS语法介绍
依旧是先看习题。
判断题
- ArkTS中使用const声明常量。
- 正确(True)
- 错误(False)
只要ArkTs不是像JavaScript蹭Java一样蹭Ts,虽然有改动,但不至于这种也改吧,选正确,拿下!
- 允许在容器组件内使用if/else条件渲染语句构建不同的子组件。
- 正确(True)
- 错误(False)
还能有什么办法渲染不同的子组件?vue啥的也是这种方式。正确!拿下!
- @Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中可以使用多个@Entry装饰不同自定义组件。
- 正确(True)
- 错误(False)
之前看过了Entry是修饰页面的入口组件,其他的组件应该用Component修饰,题目中这样描述就没有必要区分页面和组件了。选错误,拿下!
单选题:
- 下面属于ArkTS中正确使用变量声明的语句是?
- A. int a = 10;
- B. var a = 10;
- C. let a: number = 10;
- D. number a = 10;
Typescript基本语法,选C。
- 下面属于ArkTS函数声明的语句的是?
- A. func printInfo(){};
- B. def printInfo();
- C. void printInfo(){};
- D. function printInfo() {};
Typescript基本语法,选D。很明显不是类似go、rust,或者python,或者Java。
- 下列关于ForEach循环渲染语法中参数说法错误的是?
- A. arr表示数据源,为Array类型的数组,为必选参数
- B. arr可以设置为空数组,此时不会创建子组件
- C. itemGenerator为数组中的每个元素创建对应的组件,为必选参数
- D. keyGenerator为数据源arr的每个数组项生成唯一且持久的键值,为必选参数
很明显D的意思需要自己写类似Java中的hashcode函数,不合理,应该会有默认的生成方式,应该为非必填参数。
- 下列关于if/else条件渲染说法错误的是?
- A. if、else if后跟随的条件语句不可以使用状态变量
- B. 允许在容器组件内使用,通过条件渲染语句构建不同的子组件
- C. 当父组件和子组件之间存在一个或多个if语句时,必须遵守父组件关于子组件使用的规则
- D. 支持if、else和else if语句
A明显不符合逻辑,哪怕只能使用表达式,最终表达式执行后返回的仍然是布尔值;C选型类比vue中使用v-if的规则,应该是合理的,想不到除了这种方式的更优解。
多选题:
- 下面示例中会导致编译报错的有?
- A. let x: number = null;
- B. let x: number | null = null;
- C. let y: string = null;
- D. let y: string = 100;
先不看TypeScript的基本语法,假设可以赋空值,那么只有D选型会报错,那么就是ACD,拿下!
- 下面属于ArkTS基础类型的是?
- A. string
- B. boolean
- C. number
- D. Object
Object不是基础类型
- 下面哪些属于属性方法?
- A. fontSize()
- B. onClick()
- C. width()
- D. height()
很明显其中B是点击事件,不是属性,其他都是属性,选B,拿下!
回顾
再次裸考满分拿下,发现习题中都是TypeScript中相当基础的部分,并且没有啥不同的地方,这不符合官方描述,因此需要看看官方中描述ArkTs与TypeScript不同的部分。并且对UI部分仍然了解甚少,也需要补上UI部分知识。
重点记录
总的来说ArkTs的基本语法与TypeScript并无太多区别,而是在其基础上拓展了声明式UI,这应该也是ArkTs的重点部分,并且内置响应式数据绑定,无需像vue使用ref,改为使用@State注解。