鸿蒙OS试题

44.want参数的entities匹配规则错误的是

A.调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities为空,则entities匹配成功。

B.调用方传入的want参数的entities为空,待匹配应用组件的skills配置中的entities不为空,则entities匹配失败。

C.调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities为空,则entities

匹配失败。

D.调用方传入的want参数的entities不为空,待匹配应用组件的skills配置中的entities不为空且包含调

用方传入的want参数的entities,则entities匹配成功。

45.从桌面冷启动如下应用,点击change按钮5次整个过程中,代码中的2条log依次出现的次数,最初和最后画面上显示【num=?】的数字是

A.2,4,1,2

B.0,6,16

C.2,4,1,6

D.1,5,1,6

46.Harmony0S提供了多种包结构,每种包编译后的产物都不同,下面说法错误的是

A.hsp包编译后的产物是.hsp文件。

B.hap包编译后的产物是.hap文件

C.har包编译后的产物是.har文件。

D.app包编译后的产物是.app文件

47.某业务团队发现用户对他们App的某个特性使用率并不高,为了节省用户首次下载安装包的体积,考虑将该特性做成按需加载,那么推荐该特性使用的工程模块类型是?

  1. hap
  2. B. hsp
  3. C. app
  4. D. har

48.Navigation组件是路由导航的根视图容器 一般作为Page页面的根容器使用,以下关

于Navigation组件说法正确的是()

  1. Navigation的页面显示模式有单页面、分栏和自适应三种显示模式
  2. Navigation子页面的根容器可以采用如Colunm、Row这些容器组件。

C.Navigation的子页面可以来自不同的Module

D.Navigation只能在entry类型的Module中使用

49.在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发。关于 Module,下列选项说法正确的是?

A.Shared Library:动态共享库。HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会

存在一份。

B. entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,可以包含一个或多个entry类型的HAP。

C.Static Library:静态共享库。HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。

D.feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包

含一个或多个feature类型的HAP,也可以不包含。

50.下面关于Node-API数据类型描述正确的是

A. napi_status:是一个枚举数据类型,表示Node-API接口返回的状态信息

B.napi_env:用于表示Node-API执行时的上下文

C. napi_threadsafe_function_release_mode:该枚举类型定义了两个 常量,用于指定线程安全函数的调用模式

D. napi_threadsafe_function_call_mode:该枚举类型定义了两个常量,用于指定在何时释放线程安全函数的回调函数

ArkTS是鸿蒙生态的应用开发语言。下列说法正确的是

A.针对JavaScript(简称JS) /TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强。

B. ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,

使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。

C.TS/JS代码支持import ArkTS代码。

D.ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开

发应用。

51.下面关于ArkTS中export用法,正确的是

A.export{ export1 } from "ets file name";

B.export { export1 as alias1 } from "ets file name";

C.export * from "ets file name"

D.export* as name from "ets file name"

53在ArkTS中,以下哪些属性的声明是正确的。

class c{

value1: number =0;

value2?: number= null;

value3: number | undefined = undefined;

value4?: number;

}

A value2

B value4

C value1

D value3

54.应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入,下面导入场景中适合使用动态import的是

A.当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。

B.当被导入的模块说明符,需要动态构建。

C.当被导入的模块,在加载时并不存在,需要异步获取。

D.当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。

55.下面关于混淆规则描述正确的是

A.-enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆

B. -disable-obfuscation:关闭所有混淆

C.-enable-toplevel-obfuscation:开启属性混淆

D.-enable-property-obfuscation:开启顶层作用域名称混淆

56.ArkTS中不能使用以下哪些类型。

A.tuple type

B. any

C. unknown

D. union type

57某App有A、B、C、D四个团队分别负责ModuleA、ModuleB、ModuleC和ModuleD四个业务模块,随着业务的发展,ModuleA需要跳转到ModuleB、ModuleC的页面ModuleB需要跳转到ModuleC、ModuleD的界面,Modulec需要跳转到ModuleA的界面,ModuleD需要跳转到ModuleB和ModuleC的界面。由于复杂的依赖关系,导致一旦有变化就需要知会各个团队,所以该团队的架构师想要解耦各个业务模块,以下哪些做法是不推荐的()

A. 采用静态import方式引入对应跳转的页面,

B. 采用RouterModule作为中介者并用动态import解耦各个业务模块。

C. 在RouterModule中采用路由表方式解耦各个业务模块。

D.可以采用Navigation作为页面导航根容器,将其放在entry中,其他Module的页面作为Navigation的子页面。

58.以下代码片段哪几个class/interface违反了ArkTS语法规范

class Person {}

class Student extends Person {}

class Instructor implements Person {}

interface Shape {}

interface Circle implements Shape {)

class Square implements Shape {}

A.Circle

B.Square

C.Student

D.Instructor

59.以下关于HAP(Harmony Ability Package).说法正确的是()

  1. HAP是应用安装和运行的基本单位,在DevEo co Studio工程目录中,一个HAP对应一个Module。应用打包时,所有的Module都只能生成.hap文件。
  2. 应用工程编出的app文件中,只能包含一个hap文件。

C.应用工程如果包含多个Module,在应用市场上架时,会将多个.hap文件打包成一个.app文件。

D. DevEco Studio会在编译构建时,不需要对HAP进行一致性校验。

60.以下对系统兼容性的理解正确的是

A系统能力都会保持绝对的兼容性,不能因为任何非非兼容性的修改而导致开发者成本上升

B.已发布的系统能力有可能会发生非兼容性变更,比如新增特性或修改问题导致的行为不兼容,这种情况下应用需要关注changelog并进行适配。

C.安全法律法规等不可控因素会导致系统非兼容性变更,开发者需要积极适配

D.应用不需要关注系统的兼容性变化,那都是系统开开发人员需要关注的事情

61.从桌面冷启动如下应用代码,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数是:

class Data {

num: number

type: string

constructor(num: number,type:string)

{this.num = num;

this.type = type;}

}

@Reusable

@Component

struct Item {

@State data: Data |undefined = undefined;

aboutToAppear(): void {

console.log("Demo log1")

}

aboutToReuse(params: ESObject): void {

console.log("Demo log2");

this.data=params.data

}

build() {

Text("num="+this.data?.num+",type="+this.data?.type)

}

}

@Entry

@Component

struct Test1Page {

data1:Data=new Data(1,"type1")

data2:Data=new Data(2,"type2")

@State data:Data=this.data1

build() {

Column(){

if (this.data.type=="type1"){

Item({data:this.data}).reuseId(this.data.type)

}else {

Item({data:this.data}).reuseId(this.data.type)

}

Button('Change').onClick(()=>{

if (this.data===this.data1) {

this.data=this.data2

}else{

this.data=this.data1

}

})

}

}

}

A.2,4

B.6,0

C1,5

D1,0

62.根据上面代码,以下解释正确的是

@State title: string ="";

@State mode: Mode = Mode.fullScreen;

isShownTitle(): boolean {

if (this.mode == Mode.fullScreen) {

this.title = "Title";

return true;

} else {

this.title = "section";

return false;

}

}

build(){

Column(){

if (this.isShownTitle()){

Text(`${this.title}`)

}

}

}

}

struct changeMode {

@Prop mode: Mode;

build(){

Row({space: 20}) {

Button('full screen').onClick(() => {

this.mode = Mode.fullScreen;

})

Button('half screen').onClick(() => {

this.mode = Mode.halfScreen;

})

}

}

A.为了避免@Prop的拷贝,可以优化使用@Link,在该例子中行为和@Prop一样。

B.在自定义组件Page的build方法里改变状态变量是非法操作,可能导致未定义的异常UI行为。

C.本例子可以运行起来,所以代码没有问题。

)D.在ChangeMode里改变mode的值,会触发其父组件Page的Title内容的切换

63.以下关于ArkUI NavDestination组件的生命周期执行顺序中正确的是

A.onWilappear->onWillShow->onShow->onAppear->onWillHide->onHidden->onWillDisappear->onDisappear

B.onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear

C.onWillappear->onAppear->onWillShow->onShow->onWillDisappear->onWillHide->onHidden->onDisappear

O D.

onWillappear->onAppear->onWillShow->onShow->onWillHide->onWillDisappear->onHidden->onDisappear

64.用户购买商品后,你需要及时发放相关权益。但实际应用场景中,若出现异常将导致应用无法知道用户实际是否支付成功,从而无法及时发放权益,即出现掉单情况。为了确保权益发放,你需要在以下哪些场景检查用户是否存在已购未发货的商品:

A. 应用启动时

B.createPurchase请求返回1001860051-由于已经拥有该商品,购买失败时

C.createPurchase请求返回1001860001-内部错误时

D.finishPurchase请求返回1001860052-由于未拥有该商品,发货失败时

65.在ArkTS中,以下代码片段正确的是

A.

function fn(x: string | number): void {

console.log('value: ' + x);

}

type funcType = (ns: string | number) => string;

let func: funcType = fn;

B.

function fn(x: string): string {

return x;

}

type funcType = (ns: string | number) => string;

let func: funcType = fn;

C.

function fn(x: string | number): string {

return 'value: ' + x;

}

type funcType = (ns: string) => string;

let func: funcType = fn;

D.

function fn(x: string | number): string {

return 'value: ' + x;

}

type funcType = (ns: string | number) => string;

let func: funcType = fn;

66.为了加快构建速度,提高开发效率,可以如何调整hvigor配置,从而优化构建速度

A.启用hvigor的incremental,在增量场景下检查任务是否可以跳过

B.启动hvigor的daemon模式,在增量场景下复用缓存

C.启用hvigor的parallel,在增量场景下进行并行编译处理

D.启用hvigor的typeCheck,在增量场景下进行对hvigorfile.ts进行类型检查

使用如下的代码去启动一个ability时,哪种skills定义的组件能够被匹配到:

let want = {

"uri" : "https://www.test.com:8080/query/books",

"type" : "text/plain"

}

context.startAbility(want).then((data))=> {

console.log(TAG + "startAbility success");

}).catch((err))=> {

console.log(TAG + "startAbility failed.");

}

A.

"skills": [

{

"uris":[

{

"scheme": "https",

"type" : "text/*"

}

]

}

]

B.

"skills": [

{

"uris":[

{

"scheme": "https",

"host": "www.test.com",

"type" : "text/plain"

}

]

}

]

C.

"skills": [

{

"uris":[

{

"scheme": "https",

"host": "www.test.com",

"pathStartWith" : "query/books",

"type" : "text/*"

}

]

}

]

D.

"skills": [

{

"uris":[

{

"scheme": "https",

"host": "www.test.com",

"pathStartWith" : "query/books",

"type" : "text/plain"

}

]

}

]

一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,下面关于Module的说法正确的是

A.Ability类型的Module,用于实现应用的功能和特性,有两种类型,分别为entry和feature。

B.entry类型的Module,是应用的主模块,一个应用只能包含唯一一个entry类型的HAP。

C.feature类型的Module,应用的动态特性模块,一个应用中可以包含一个或多个feature类型的模块,也可以不包

D.Library类型的Module,用于实现代码和资源的共享,有两种类型,分别为Static Library和Shared Library两种类型。

当使用状态变量进行ArkUI组件间数据通信的时候,如果两个组件间没有直接的套关系(非父子和祖孙关系组件),但是他们又属于同一页面,最佳的装饰器应该选用哪个?

A. LocalStorage

B. AppStorage

C.@State+@Link

D.@Provide+@Consume

hiAppEvent提供的Watcher接口,()属性不配置,会导致编译报错,产生"ArkTSCompiler Error".

A. onReceive

B. triggerCondition

C. onTrigger

D.name

在ArkTs中以下哪些属性的声明是错误的

class c {}

let value1: number = null;

let value2: string lnull = null;

let value3:string undefined = null;

let value4:c= null

A. value4

B. value1

c. value3

D. value2

相关推荐
坚定信念,勇往无前13 分钟前
vue,javascript 可选链
前端·javascript·vue.js
一个处女座的程序猿O(∩_∩)O26 分钟前
Vue 项目打包部署总结
前端·javascript·vue.js
Kika写代码1 小时前
【微信小程序】4|搜索框-历史搜索 | 我的咖啡店-综合实训
前端·微信小程序·小程序·notepad++
egekm_sefg3 小时前
一个基于Rust适用于 Web、桌面、移动设备等的全栈应用程序框架
开发语言·前端·rust
冴羽3 小时前
Solid.js 最新官方文档翻译(13)—— Context(上下文)
前端·javascript·react.js
ObjectX前端实验室3 小时前
交互式md文档渲染实现
前端·github·markdown
励志成为大佬的小杨4 小时前
c语言中的枚举类型
java·c语言·前端
前端熊猫4 小时前
Element Plus 日期时间选择器大于当天时间置灰
前端·javascript·vue.js
傻小胖4 小时前
React 组件通信完整指南 以及 自定义事件发布订阅系统
前端·javascript·react.js
JaxNext4 小时前
开发 AI 应用的无敌配方,半小时手搓学英语利器
前端·javascript·aigc