App 软件开发《单选2》试卷及答案解析(订正)
注:本文章部分答案及解析来自 ChatGPT 的回答,正确性请自行甄辨。(这玩意儿经常一本正经的胡说八道)
文章目录
- App 软件开发《单选2》试卷及答案解析(订正)
- 一、订正
- 4. B -> D
- 10. B -> D
- 13. D -> B
- 14. B -> A
- 20. D -> B
- 29. D -> C
- 二、单选题(共计0分)
- 1.AngularJS中,ng-repeat指令可以遍历哪些内容(`B`)
- 2.AngularJS中,使用ng-repeat指令时,模板实例的索引是指(`C`)
- 3.下列选项中,有关AngularJS自定义指令的参数的说法错误的是(`D`)
- 4.AngularJS自定义指令的约束中,restrict参数取值为M时,指令以那种方式被使用(`D`)
- 5.下列选项中,有关AngularJS指令作用域说法错误的是(`D`)
- 6.与MVC相比,AngularJS的架构模式更接近于(`D`)
- 7.在AngularJS中,哪两个部分实现了双向绑定(`A`)
- 8.AngularJS的启动流程中,\$injector的作用是(`A`)
- 9.AngularJS的启动流程中,路由服务的Provider会在哪个阶段初始化(`C`)
- 10.下列选项中,说法正确的是(`D`)
- 11.下列选项中,用于为脏检查机制注册监听器的是(`C`)
- 12.下列选项中,有关依赖注入的说法错误的是(`A`)
- 13.下列选项中,不属于AngularJS依赖注入方式的是(`B`)
- 14.下列选项中,哪种方式是最推荐的AngularJS依赖注入方式的是(`A`)
- 15.下列选项中,有关AngularJS服务说法错误的是(`C`)
- 16.下列选项中,使用一个对象工厂函数定义服务的方式是(`B`)
- 17.下列选项中,支持配置的AngularJS服务创建方式是(`A`)
- 18.下列选项中,使用一个具有\$get()的构造函数定义服务的方式是(`A`)
- 19.如果AngularJS中定义的服务为myService,那么该服务的提供者名称为(`C`)
- 20.在AngularJS服务里面当我们仅仅需要的是一个函数和数据的集合,而不需要处理复杂的业务逻辑的时候应使用哪种方式创建服务(`B`)
- 21.下列选项中,使用一个类构造函数定义服务,通过new关键字创建服务实例的方式是(`C`)
- 22.下列选项中,有关AngularJS中value()函数的说法错误的是(`D`)
- 23.下列选项中,用于注入原生JavaScript代码中的document文档对象的服务是(`B`)
- 24.\$location服务中用于获取当前完整的URL路径的函数是(`B`)
- 25.\$location服务中用于获取URL中的主机域名或者IP地址的函数是(`A`)
- 26.\$location服务中用于获取当前URL路径(包括参数和哈希值)的函数是(`C`)
- 27.\$location服务中用于获取当前URL的参数的序列化JSON对象的函数是(`A`)
- 28.\$location服务中用于获取当前路径的端口号的函数是(`B`)
- 29.AngularJS中用来定义路由规则的服务是(`C`)
- 30.AngularJS中用来配置路由规则的函数是(`B`)
一、订正
4. B -> D
10. B -> D
13. D -> B
14. B -> A
20. D -> B
29. D -> C
二、单选题(共计0分)
1.AngularJS中,ng-repeat指令可以遍历哪些内容(B
)
- A、数值
- B、数组
- C、字符串
- D、以上都不对
答案:B、数组
解释:ng-repeat指令用于遍历数组,并在每个元素上重复一个HTML模板。
2.AngularJS中,使用ng-repeat指令时,模板实例的索引是指(C
)
- A、index属性
- B、first属性
- C、$index属性
- D、$first属性
答案:C、$index属性
解释:在ng-repeat中,可以使用$index属性来获取当前模板实例的索引值。
3.下列选项中,有关AngularJS自定义指令的参数的说法错误的是(D
)
- A、template取值为String类型时,template可以是一段HTML。
- B、template的值可以是一个函数。
- C、templateUrl取值为String类型时,该值为一个模板的URL。
- D、templateUrl不能取值为函数。
答案:D、templateUrl不能取值为函数。
解释:templateUrl可以取值为一个字符串类型的URL,也可以取值为一个返回URL的函数。
4.AngularJS自定义指令的约束中,restrict参数取值为M时,指令以那种方式被使用(D
)
- A、<my-directive></my-directive>
- B、<div my-directive=“expression”></div>
- C、<div class=“my-directive:expression;”></div>
- D、 <–directive:my-directive expression–>
restrict 值可以是以下几种:
- E 作为元素名使用
- A 作为属性使用
- C 作为类名使用
- M 作为注释使用
restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。
5.下列选项中,有关AngularJS指令作用域说法错误的是(D
)
- A、每个AngularJS指令都有自己的作用域。
- B、自定义指令可以通过在return返回的对象中添加参数scope来实现作用域的设置。
- C、scope:true代表指令在有其他作用域的情况也会创建一个新的作用域。
- D、scope:true代表独立作用域。
答案:D、scope:true代表独立作用域。
解释:scope:true代表指令创建一个新的作用域,但该作用域仍与父作用域共享一些属性。
6.与MVC相比,AngularJS的架构模式更接近于(D
)
- A、MVP
- B、MVV
- C、MVM
- D、MVVM
答案:D、MVVM
解释:AngularJS的架构模式更接近于MVVM(Model-View-ViewModel)。
7.在AngularJS中,哪两个部分实现了双向绑定(A
)
- A、Model和ViewModel
- B、Model和View
- C、Model和Controller
- D、Controller和$scope
答案:A、Model和ViewModel
解释:双向绑定是通过将Model和ViewModel进行绑定来实现的。
8.AngularJS的启动流程中,$injector的作用是(A
)
- A、$injector是注入器,AngularJS对象都需要依赖$injector才能被其他代码使用。
- B、$injector是启动事件。
- C、$injector用于渲染页面。
- D、$injector用于确定程序边界。
答案:A、injector是注入器,AngularJS对象都需要依赖injector才能被其他代码使用。
解释:$injector是AngularJS的注入器,用于管理和提供依赖注入。
9.AngularJS的启动流程中,路由服务的Provider会在哪个阶段初始化(C
)
- A、加载angular.js文件。
- B、启动AngularJS代码。
- C、配置$injector(注入器)。
- D、渲染页面。
答案:C、配置$injector(注入器)。
解释:路由服务的Provider在配置$injector(注入器)阶段进行初始化。
10.下列选项中,说法正确的是(D
)
- A、Event Queue中的事件被触发后,事件的回调函数会通过$scope.$apply(fn)函数进入到AngularJS Context中”。
- B、$scope.$apply(fn)函数的参数fn代表要在AngularJS Context中执行的事件回调函数或者表达式。
- C、AngularJS中,fn()函数被执行后,将调用$digest()函数进入$digest Loop中。
- D、处在javaScript Context中的操作能使用AngularJS的data-binding(数据绑定)。
11.下列选项中,用于为脏检查机制注册监听器的是(C
)
- A、$digest
- B、$apply()
- C、$watch
- D、$scope
答案:C、$watch
解释:$watch用于注册监听器,以便在脏检查期间跟踪模型的变化。
12.下列选项中,有关依赖注入的说法错误的是(A
)
- A、依赖注入仅仅是一种设计思想。
- B、依赖注入能够有效解决模块间依赖的问题。
- C、依赖注入是控制反转的一种实现形式。
- D、依赖注入可以解决代码耦合的问题。
答案:A、依赖注入仅仅是一种设计思想。
解释:依赖注入不仅是一种设计思想,也是一种具体的实现方式。
13.下列选项中,不属于AngularJS依赖注入方式的是(B
)
- A、行内式注入声明
- B、行外式注入声明
- C、显式注入声明
- D、推断式注入声明
依赖注入有三种方式进行注入:推断式注入声明,显式注入声明,行内注入声明:
推断式注入声明:如果没有明确的声明, AngularJS会假定参数名称就是依赖的名称。请注意,这个过程只适用于未经过压缩和混淆的代码,因为AngularJS需要原始未经压缩的参数列表来进行解析。当AngularJS实例化这个模块时,会查找greeter并自然而然地把对它的引用传递进去.
显式注入声明 ($inject):AngularJS提供了显式的方法来明确定义一个函数在被调用时需要用到的依赖关系。通过这种方法声明依赖,即使在源代码被压缩、参数名称发生改变的情况下依然能够正常工作。
行内注入声明:AngularJS提供的注入声明的最后一种方式,是可以随时使用的行内注入声明。允许我们在函数定义时从行内将参数传入。此外,它可以避免在定义过程中使用临时变量。它同前面提到的通过$inject属性进行注入声明的原理是完全一样的
14.下列选项中,哪种方式是最推荐的AngularJS依赖注入方式的是(A
)
- A、行内式注入声明
- B、行外式注入声明
- C、显式注入声明
- D、推断式注入声明
15.下列选项中,有关AngularJS服务说法错误的是(C
)
- A、多个控制器中出现了相同的代码,那么便可以把它提取出来,封装成一个服务。
- B、服务可以通过依赖注入的方式被使用。
- C、服务可以在module()函数的参数中被注入。
- D、使用服务可以达到代码复用的目的。
答案:C、服务可以在module()函数的参数中被注入。
解释:服务不是在module()函数的参数中注入的,而是在控制器或其他服务中通过依赖注入的方式使用。
16.下列选项中,使用一个对象工厂函数定义服务的方式是(B
)
- A、使用provider()函数创建服务。
- B、 使用factory()函数创建服务
- C、使用 apply()函数创建服务。
- D、使用value()函数创建服务。
答案:B、使用factory()函数创建服务
解释:使用factory()函数可以创建一个对象工厂函数定义的服务。
17.下列选项中,支持配置的AngularJS服务创建方式是(A
)
- A、使用provider()函数创建服务。
- B、使用factory()函数创建服务
- C、使用service()函数创建服务。
- D、使用value()函数创建服务。
答案:A、使用provider()函数创建服务。
解释:使用provider()函数可以创建一个支持配置的AngularJS服务。
18.下列选项中,使用一个具有$get()的构造函数定义服务的方式是(A
)
- A、使用provider()函数创建服务。
- B、使用factory()函数创建服务
- C、使用apply()函数创建服务。
- D、使用value()函数创建服务。
答案:A、使用provider()函数创建服务。
解释:使用provider()函数可以创建一个具有$get()构造函数的服务。
19.如果AngularJS中定义的服务为myService,那么该服务的提供者名称为(C
)
- A、myService
- B、$myService
- C、myServiceProvider
- D、serviceProvider
答案:C、myServiceProvider
解释:AngularJS中的服务提供者名称通常为服务名称加上"Provider"后缀。
20.在AngularJS服务里面当我们仅仅需要的是一个函数和数据的集合,而不需要处理复杂的业务逻辑的时候应使用哪种方式创建服务(B
)
- A、使用provider()函数创建服务。
- B、使用factory()函数创建服务
- C、使用service()函数创建服务。
- D、使用value()函数创建服务。
在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。
AngularJS 内建了30 多个服务。
有个 $location 服务,它可以返回当前页面的 URL 地址。
21.下列选项中,使用一个类构造函数定义服务,通过new关键字创建服务实例的方式是(C
)
- A、使用provider()函数创建服务。
- B、使用factory()函数创建服务
- C、使用service()函数创建服务。
- D、使用value()函数创建服务。
答案:C、使用service()函数创建服务。
解释:使用service()函数可以创建一个类构造函数定义的服务。
22.下列选项中,有关AngularJS中value()函数的说法错误的是(D
)
- A、使用value()函数可以创建一个AngularJS服务。
- B、value()函数的第1个参数表示服务名称。
- C、value()函数的第2个参数表示需要注册的变量值或对象。
- D、value()函数的第3个参数表示要注入到该服务的内容。
答案:D、value()函数的第3个参数表示要注入到该服务的内容。
解释:value()函数的第3个参数并不表示要注入到该服务的内容。
23.下列选项中,用于注入原生JavaScript代码中的document文档对象的服务是(B
)
- A、document
- B、 $document
- C、 $$document
- D、 $$$document
答案:B、$document
解释:$document是AngularJS中用于注入原生JavaScript代码中的document文档对象的服务。
24.$location服务中用于获取当前完整的URL路径的函数是(B
)
- A、allUrl()
- B、 absUrl()
- C、url()
- D、 path()
答案:B、absUrl()
解释:absUrl()函数用于获取当前完整的URL路径。
25.$location服务中用于获取URL中的主机域名或者IP地址的函数是(A
)
- A、host()
- B、 port()
- C、url()
- D、 path()
答案:A、host()
解释:host()函数用于获取URL中的主机域名或者IP地址。
26.$location服务中用于获取当前URL路径(包括参数和哈希值)的函数是(C
)
- A、allUrl()
- B、 absUrl()
- C、url()
- D、 path()
答案:C、url()
解释:url()函数用于获取当前URL路径(包括参数和哈希值)。
27.$location服务中用于获取当前URL的参数的序列化JSON对象的函数是(A
)
- A、search()
- B、 protocol()
- C、url()
- D、 path()
答案:A、search()
解释:search()函数用于获取当前URL的参数的序列化JSON对象。
28.$location服务中用于获取当前路径的端口号的函数是(B
)
- A、host()
- B、 port()
- C、url()
- D、 path()
答案:B、port()
解释:port()函数用于获取当前路径的端口号。
29.AngularJS中用来定义路由规则的服务是(C
)
- A、$window
- B、$location
- C、$routeProvider
- D、$locationProvider
$window对象可以用来获取浏览器窗口各项属性(如窗口高度宽度、浏览器版本等等)
$location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的内容。在地址栏中更改URL,会响应到$location服务中,而在$location中修改URL,也会响应到地址栏中。
【参考】$routeProvider.when 函数的第一个参数是 URL 或者 URL 正则规则,第二个参数为路由配置对象。
路由配置对象语法规则如下:$routeProvider.when(url, {template: string,templateUrl: string,controller: string, function 或 array,controllerAs: string,redirectTo: string, function,resolve: object<key, function> });
- $locationProvider 略
30.AngularJS中用来配置路由规则的函数是(B
)
- A、$apply()
- B、config()
- C、$disgest
- D、$watch()
答案:B、config()
解释:config()函数用来配置路由规则。