【粉笔刷题】第二回

news2024/11/23 7:18:14
在JavaScript中下面选项,关于this描述正确的是()
A在使用new实例化对象时, this指向这个实例对象
B当对象调用函数或者方法时,this指向这个对象。
C在函数定义时,this指向全局变量
D在浏览器下的全局范围内,this指向全局对象

this表示当前对象,this的指向是根据调用的上下文环境来决定的,默认指向window对象。

A选项,使用 new 实例化对象,在构造函数中的this指向实例化对象。所以A正确。

B选项,当对象函数调用,哪个对象调用就指向哪个对象。所以B不正确。

C选项,函数的定义位置不影响其this指向,this指向只和调用函数的对象有关。所以C不正确。

D选项,这个要分情况而定,例如对象函数调用某个对象的函数, 它指向当前对象。所以D不正确。

在这里插入图片描述

已知a为不为空的数组,且变量b===a. 
以下哪些方式可以清空数组, 使得a.length 与 b.length 都为 0; ()
A  b.len(0)
B  a = []
C  a.splice(0, a.length)
D  a = a.slice(a.length)

选项A,数组不存在len方法

选项B,数组为引用类型,仅仅修改a为空数组,那么b原来的引用不变,此时a和b的分别指向不同的数组。

选项C,splice的作用是删除数组的元素,通过a.splice(0, a.length)可以删除数组的全部元素,a和b的引用相同,所以最终的length都为0.

选项D,a.slice的作用是截取一个新的数组,虽然a.slice(a.length)截取出来的数组为空数组,但是,赋值该a后,相当于构造了一个新的空数组,并没有影响之前数组a与b之间的关系,b还是原来的数组。而splice方法是在a数组中进行元素的删除,而b数组与a数组此时相当于双向的绑定,无论a,b数组进行什么操作,都会影响到两个数组。
在这里插入图片描述

正则表达式 /a+(bab)?(caac)*/ ,下列选项中是该正则表达式的子集是
A  /(bab)(caca)/
B  /a(bab){2}(caac)*/
C  /a{2}/
D  /a+(bab){0,1}(ca)+(ca)/
E  /a(^bab)+(caac){1,}/
F  /a+(babc){2,}(acc){1,}

第一步:理解题目。

题目中的 a+ 代表 字符“a” 出现1次或者若干次,(bab)? 代表 字符 “bab” 出现一次或者0次,(caac)* 表示重复了“0或者若干次”的字符“caac”,即 字符“caac”出现0次或者若干次 。

若改题目为/李+太?白*/,可匹配:李、李太、李白、李太白、李李、李李太、李李白白、李李太白白等。

第二步:理解选项,选出子集。

A选项 /(bab)(caca)/ :匹配含有 “babcaca” 的字符串,不是题目中的 “babcaac”, 就好比是在找 “太星” 而不是"太白",而且没有a,所以该正则匹配的结果不可能出现在题目匹配的结果中,错误。

B选项 /a(bab){2}(caac)*/ :其中(bab){2} 表示 字符串“bab”必须出现2次,与题干正则显然不同,错误。

C选项 /a{2}/ :其中(a){2} 表示 字符“a”必须出现2次,就好比 “李李” ,属于题目匹配结果的子集,正确。

D 选项/a+(bab){0,1}(ca)+(ca)/ :前半部分正确,后半部分(ca)+(ca)明显错误。

E 选项/a(bab)+(caac){1,}/:正则本身有误,(bab)匹配以"bab"开头的字符串,但前面还有a,也就是匹配以a开头的字符串,两者矛盾。

F选项 /a+(babc){2,}(acc){1,}/:分组和区间值都不正确。
在这里插入图片描述

将数组 var a=[1,2,3] 变成数组 [ 4,3,2,1] 下面的方式正确的是? 
A  a.reverse().unshift(4)
B  a.push(4).reverse()
C  a.push(4); a.reverse()
D  a.splice(3,1,4).reverse()

js中:

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。

A选项,a.reverse()后返回值即数组a变成[3,2,1],再使用unshift()方法在数组开头添加一个4,a数组就变成了[4,3,2,1]。注,unshift()返回新数组的长度,此处为4。正确。

B选项,push()方法返回新数组的长度,是一个number类型,不是数组,所以不能再用“.”操作符继续执行reverse()方法。错误。

C选项,正确。

D选项,splice()语法:arrayObject.splice(index,howmany,item1,…,itemX)。

由于a.splice(3,1,4)中的index为3,超过了数组a的下标,所以3后面的1也不会起作用。a.splice(3,1,4)会将4插入到数组a末尾。但splice()返回值是被删除项目的新数组,由于a.splice(3,1,4)并没有删除元素,所以返回的新数组为空,对空数组reverse()还是空。错误。
在这里插入图片描述

在ES6中提供了ArrayBuffer,TypeArray,DataView用于二进制的操作。

ArrayBuffer对象:代表原始的二进制数据。

TypedArray视图:用来读写简单类型的二进制数据。

DataView视图:用来读写复杂类型的二进制数据。
在这里插入图片描述

使用 for in 循环数组中的元素会枚举原型链上的所有属性,过滤这些属性的方式是使用**hasOwnPropert**y函数

for in可以获取object的所有属性,包括自定义属性以及原型链属性,hasOwnProperty只能获取自定义属性,无法获取原型链属性

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

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

相关文章

Django高级扩展之中间件

中间件是Django请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出。每个中间件组件负责实现一些特定的功能。例如,Django包含一个中间件组件AuthenticationMiddleware,它使用会话将…

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型及程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910311 模型简介: 建议使用MATLAB21b及以上版本打开! 光伏阵列表面被局部遮挡时会产生热斑效应。为了防止太阳电池因热…

如何在Microsoft Excel中使用TRUNC函数

Excel 中有多种删除小数点和缩短数值的方法。在本文中,我们将解释如何使用 TRUNC 函数,以及它与其他技术的不同之处。 TRUNC函数 什么是 TRUNC 功能如何使用 TRUNC 函数从日期时间戳中删除时间什么是 TRUNC 功能 TRUNC 函数将数字截断为指定的小数位数。使 TRUNC 不同于其他…

windows编译ffmpeg,并开启png的编解码器

废话不多说了,先上下载链接 ffmpeg官方网站:http://ffmpeg.org/download.html ffmpeg源码下载链接:https://ffmpeg.org/releases/ffmpeg-3.4.13.tar.gz 如果需要其他版本,修改版本号即可,适用于3.4全系列,如https:/…

Vue中如何进行网页截图与截屏?

Vue中如何进行网页截图与截屏? 在Web开发中,有时候需要对网页进行截图或截屏。Vue作为一个流行的JavaScript框架,提供了一些工具和库,可以方便地实现网页截图和截屏功能。本文将介绍如何在Vue中进行网页截图和截屏。 网页截图 网…

2023年CPSM-3中级项目管理专业人员认证有啥用?

CPSM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处)联合中国国际人才交流基金会,面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才…

Linux操作系统学习——启动

概要 Linux操作系统内核是服务端学习的根基,也是提高编程能力、源码阅读能力和进阶知识学习能力的重要部分,本文开始将记录Linux操作系统中的各个部分源码学习历程。 1. 理解代码的组织结构 以Linux源码举例,首先你得知道操作系统分为哪几个部…

电脑怎么录屏?推荐2款录制电脑屏幕的软件!

案例:我经常需要把电脑上的内容分享给别人,一般通过手机拍摄的方式。这就导致视频十分模糊,给人的观感不太好,有没有什么方法可以实现在电脑上直接录屏? 【我想录制我的电脑屏幕上的内容分享给别人,但是我…

常用JVM命令

top 展示 进程运行的完整命令行的话可以用 top -c ,当命令行较长无法分辨是哪个程序,可使用键盘右键将窗口不断滑动至右侧查看。 uptime jps 查看当前正在运行的java进程 执行结果: pid 运行文件 [roottest1 ~]# jps 24001 rs-medical-rp…

第六期:链表回文旋转的秘密

文章目录 1. 反转链表2. 回文链表代码1. 反转链表2. 回文链表 PS:每道题解题方法不唯一,欢迎讨论!每道题后都有解析帮助你分析做题,答案在最下面,关注博主每天持续更新。 1. 反转链表 题目描述: 给你单链表…

九、会话控制——cookie、session、token

文章目录 前言一、cookie1.1 cookie 是什么1.2 cookie 的特点1.3 cookie 的运行流程1.4 express 框架中设置cookie1.5 express 框架中删除cookie1.6 express 框架中获取cookie 二、session2.1 session 是什么2.2 session 的作用2.3 session 的运行流程2.4 session 和 cookie 的…

vue框架一

目录 友情提醒第一章、vue框架是前端js框架1.1)介绍vue1.2)vue设计思想1.3)vue引入 第二章、实现的步骤2.1)创建步骤2.2)基本语法2.3) 第三章、遇到的问题3.1)3.2)3.3) 第…

python grpc状态码用法

测试代码 新建demo.proto文件定义协议缓冲区,写入以下内容: syntax "proto3"; package server;service Demo {rpc ping(Request) returns (Response) {} }message Request {string msg 1;} message Response {string msg 1;}使用gRPC的工…

百兆网和千兆网怎么接线

一、认识网线 网线:橙色和白橙交织在一起,绿色和白绿交织在一起,棕色和白棕交织在一起,蓝色和白蓝交织在一起。在传输电信号时,相互之间辐射出的电磁波会相互抵消,可以消除相互之间的干扰,所以…

shell脚本进阶1——精读ansible+shell脚本

文章目录 一、脚本规划思路二、主控机shell脚本2.1 脚本输出字体特效2.2 生成菜单栏对话框2.3 配置本地yum源仓库2.4 配置受控机yum源2.5 关闭防火墙和selinux2.6 把docker安装包给受控机2.7 安装docker-compose2.8 安装docker2.9 安装ansible2.10 安装pip2.11 主控本机免密登录…

JAVA并发十二连招

1、HashMap 面试第一题必问的 HashMap,挺考验Javaer的基础功底的,别问为啥放在这,因为重要!HashMap具有如下特性: HashMap 的存取是没有顺序的。 KV 均允许为 NULL。 多线程情况下该类安全,可以考虑用 Ha…

JavaFx Shape形状

JavaFx Shape形状 1、相关子类2、屏幕坐标系3、JavaFx SVG矢量图4、Polygon箭头形状 javafx.scene.shape.Shape 1、相关子类 javafx.scene.shape.Linew3cschool JavaFX 线javafx.scene.shape.Rectanglew3cschool JavaFX 矩形椭圆javafx.scene.shape.Ellipsejavafx.scene.shap…

开源办公套件 ONLYOFFICE文档7.4新功能

随着现代办公的信息化发展,我们处理文档时,对在线协作的需求也越来越大。选择一款简单高效、免费又无广告弹窗的办公套件便非常重要。除了昂贵的微软Office,太多广告的WPS,你还有另一个选择:ONLYOFFICE。 什么是 ONLY…

论程序员提问的艺术

最近工作比较忙,加上空闲时间大部分都是在维护开发【云狗AI】,所以也有一段时间没更新视频了,有不懂的,也可以问一下【云狗AI】以后我也会花更多的时间在维护这个项目中。争取给大家带来更好的体验。 主要是因为最近没发现什么特…

播放WebRTC开源库回调出来的视频码流时遇到的内存越界问题排查

目录 1、执行memset操作时遇到了内存访问违例,导致程序崩溃 2、查看崩溃时的函数调用堆栈,初步怀疑是memset时有内存越界 3、存放YUV数据的buffer在执行若干操作后出现内存越界 4、加载系统库的pdb之后,看到了更多的函数调用堆栈&…