专项练习10

news2025/1/16 9:10:46

目录

一、选择题

    1、执行以下程序,下列说法中,正确的是()

    2、下面有关JavaScript中系统方法的描述,错误的是?

    3、以下 JavaScript 代码,在浏览器中运行的结果是

    4、假设DOM结构为

二、编程题

    1、移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组


一、选择题

1、执行以下程序,下列说法中,正确的是()
var arr = new Array(3); ...①

arr[0] = 1;

arr.b  = 0;

console.log(arr.length); ...②

arr.forEach(value=>{

        console.log(value); ...③

})

for(var i in arr){

      console.log(arr[i]); ...④

}

A、①式创建一个长度为3的数组

B、②式输出结果为4

C、③式输出结果为1 0

D、④式输出结果为1

正确答案:A        你的答案:C

解析:

(1)选项解读

①A选项:当new Array()括号内只有一个参数时,该参数表示数组的长度

②B选项:数组的长度仍为3,因为arr.b = 0,实际上是为变量arr赋予属性b,该属性不是数组元素,所以arr.length值不变,仍为3

③C选项:forEach函数遍历数组元素,由于arr数组的数组元素只有1,因此输出结果为1

④D选项:for...in...会遍历数组以及数组的可枚举属性,因此输出结果为1 0

(2)步骤解读

var arr = new Array(3); ...①    //结果是【empty ,empty ,empty  】 

arr[0] = 1;                     //结果是【1,empty ,empty 】 

//通过点操作符(.)添加的属性和length属性处于同一层级,不会影响length的值
arr.b  = 0;                     //结果是【1,empty ,empty ,b:0】   

console.log(arr.length); ...②    //结果是3 

arr.forEach(value=>{ 
    console.log(value); ...③   //结果是1 ,因为此时遍历的是【1,empty ,empty ,b:0】   
})          

//通过点操作符(.)添加的属性可以用for...in...循环遍历,但不能用foreach循环遍历
for(var i in arr){ 
    console.log(arr[i]); ...④    //结果是1,0 ,因为此时遍历的是【1,empty ,empty ,b:0】  
}

 (3)总结

①for in 既能遍历数组,也能遍历对象
②for in 遍历数组时i是下标,遍历对象时i是对象的key
③对于数组来说 arr[i] 是1,对于键值对来说arr[i]是0


2、下面有关JavaScript中系统方法的描述,错误的是?

A、parseFloat方法:该方法将一个字符串转换成对应的小数

B、isNaN方法:该方法用于检测参数是否为数值型,如果是,返回false,否则,返回true。

C、escape方法: 该方法返回对一个字符串编码后的结果字符串

D、eval方法:该方法将某个参数字符串作为一个JavaScript执行

正确答案:B        你的答案:D

解析:

(1)isNaN方法

①NaN:非数值(Not a Number)是一个特殊的数值,表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)

②ECMAScript 定义了 isNaN() 函数,该函数接受一个参数,该参数可以是任何类型,函数会确定这个参数是否“不是数值”

③isNaN() 在接受一个值后,会尝试将这个值转换为数值

④当值不是数值的时候,会直接转换为数值,例如字符串“10”或Boolean值,任何不能被转换为数值的值,该函数则返回true

(2)其他选项

eval:返回字符串表达式中的

unEscape:返回字符串ASCI码

escape:返回字符的编码


3、以下 JavaScript 代码,在浏览器中运行的结果是
function foo(){
    console.log('first');
    setTimeout(function (){
        console.log('second');
    },5);
}
for(var i=0;i< 4399999999;i++) {
    foo();
}

A、first,second,first,second..依次顺序输出

B、首先全部输出first,然后全部输出second

C、first,second无顺序输出

D、首先输出first,超出5ms输出所有second,最后输出余下的first

正确答案:B        你的答案:C

解析:

JavaScript 是单线程的,setTimeout 设置的是异步任务,会放在 macrotask 里面,等待执行栈的代码执行完毕之后才会执行 macrotask 里面的异步任务,所以这里会等待 for 循环执行完毕才会执行定时器设置的任务


4、假设DOM结构为:<div id="a"><div id="b"></div></div>,JS代码为:
document.getElementById('a').addEventListener('click', e => {console.log(1)});
document.getElementById('b').addEventListener('click', e => {e.preventDefault();console.log(2)});

当点击id为b的div时,控制台输出的内容是:

A、1
      2

B、2
      1

C、1

D、2

正确答案:B        你的答案:D

解析:

(1)preventDefault():取消事件默认行为,如阻止点击提交按钮时对表单的提交(本题中click并没有什么默认行为)

(2)拓展

①stopImmediatePropagation()   取消事件冒泡同时阻止当前节点上的事件处理程序被调用,影响当前的事件

②stopPropagation()   取消事件冒泡,不影响事件

③cancelBubbe()     取消事件冒泡

④returnValue()      取消事件默认行为


二、编程题

1、移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组

输入:[1, 2, 3, 4, 2], 2                输出:[1, 3, 4]

解析:

(1)法一:创建新数组,判断不同的数值则push进新数组,输出新数组

<script>
    var arr = [1,2,3,4,2]
    var item = 2
    var newArr = []
    function remove(arr,item){
        arr.forEach(element => {
            if(element != item){
                newArr.push(element)
            }
        });
        return newArr
    }
    remove(arr,item)
    console.log(newArr);
</script>

(2)法二:过滤器filter

<script>
    var arr = [1,2,3,4,2]
    var item = 2
    let s
    function remove(arr,item){
        s = arr.filter(i=>{
            return i != item
        })
        return s
    }
    remove(arr,item)
    console.log(s);
</script>

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

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

相关文章

[ruby on rails] rails中使用graphQL

1. 添加gem gem graphql’是主要提供server的, gem graphiql-rails’是用来生成一个graphiql查询页面IDE,自己用来测试的group :development dogem graphiql-rails endgem graphql2.使用命令生成模板文件 rails g graphql:install在API only中,routes不会自动填充graphiql路…

chatgpt赋能python:Python的下载方法——从官网到第三方渠道

Python的下载方法——从官网到第三方渠道 Python 是一种翻译式、面向对象的、动态数据类型的高级程序设计语言&#xff0c;被广泛应用于数据分析、人工智能、物联网等领域。相信大多数程序员都知道 Python&#xff0c;并且使用它编写程序。那么&#xff0c;如何下载 Python&am…

人工智能(1):机器学习工作流程

1 什么是机器学习 机器学习是从数据中自动分析获得模型&#xff0c;并利用模型对未知数据进行预测。 2 机器学习工作流程 机器学习工作流程总结 1 获取数据 2 数据基本处理 3 特征工程 4 机器学习(模型训练) 5 模型评估 结果达到要求&#xff0c;上线服务没有达到要求&a…

程序编译连接加载过程详解

程序加载过程详解 可重定位的elf文件格式简介 首先我们打开目标文件看一下 上面的图就是目标文件的格式了&#xff0c;这里使用的是010editer&#xff0c;这个二进制编辑器很好用 可以看到大致分为三部分&#xff0c;首先是header&#xff0c;然后是sectionheader&#xff0…

MIT 6.S081 (BOOK-RISCV-REV1)教材第四章内容 -- Trap -- 下

MIT 6.S081 教材第四章内容 -- Trap -- 下 引言从内核空间陷入页面错误异常Page Fault BasicsLazy page allocationZero Fill On DemandCopy On Write ForkDemand PagingMemory Mapped Files 真实世界 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第四章教材内容翻译…

Windows编译OpenSSL Win10系统 vs2010

近期因为项目需要&#xff0c;需要用到openssl动态库&#xff0c;现在将编译的过程记录一下&#xff1b; 操作系统&#xff1a;Win10 64位 编译器&#xff1a;VS2010 编译步骤如下&#xff1a; 1、下载openssl版本&#xff08;下载地址&#xff1a;​http://www.openssl.or…

chatgpt赋能python:Python分割——字符串处理中的必备技能

Python分割——字符串处理中的必备技能 如果你曾经遇到过需要将一个字符串根据一定规则切割成多个子串的情况&#xff0c;那么你一定会发现&#xff0c;Python中的分割功能能够让这个任务变得非常简单。 什么是Python分割&#xff1f; Python中的分割是指将一个字符串根据特…

端午节安康,佬们都了解端午节的哪些知识呢(附粽子大作战小游戏)

前言&#xff1a; 端午节假期&#xff0c;首先祝各位小伙伴儿们端午节安康。参考了一些资料&#xff0c;本篇文章将和大家分享关于端午节的由来&#xff0c;习俗&#xff0c;以及关于端午节的一个代码小游戏–粽子大作战。 希望大家看完此篇文章能对端午节有收获&#xff0c;也…

如何在gitee上托管项目

1、如果想要将一个项目托管到gitee上,第一步找到gitee官网&#xff1a; https://gitee.com/?utm_sourcebaidu&utm_mediumsem&utm_termgitee%CB%BD%D3%D0%B2%BF%CA%F0&utm_campaignenterprise&utm_contentcompetition&wl_kwid260644677393&wl_creativ…

chatgpt赋能python:用Python绘制区域图,探索数据背后的故事

用Python绘制区域图&#xff0c;探索数据背后的故事 随着大数据时代的到来&#xff0c;数据可视化变得越来越受到重视。而区域图&#xff08;Area chart&#xff09;是一种常用的数据可视化图表类型之一。它可以说明一个数量随着时间的变化而发生的趋势&#xff0c;以及各类数…

chatgpt赋能python:Python的不确定尾数:如何处理和解决?

Python的不确定尾数&#xff1a;如何处理和解决&#xff1f; Python是一种流行的编程语言&#xff0c;被广泛用于开发Web应用程序、数据分析、人工智能、机器学习等领域。但是&#xff0c;Python在处理浮点数时可能存在精度问题&#xff0c;尤其是当尾数不确定时&#xff0c;会…

简单几步写出第一个C++程序

编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 创建项目 ​ Visual Studio是我们用来编写C程序的主要工具&#xff0c;我们先将它打开 创建文件 右键源文件&#xff0c;选择添加->新建项 给C文件起个名称&#xff0c;然后点击添加即可。 编写代码 #i…

使用shedlock实现分布式定时任务锁【防止task定时任务重复执行】

第一步&#xff1a;引入shedlock相关依赖 <!--集成shedlock解决定时任务重复执行的问题--><dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>2.2.1</version></d…

Nginx网站服务二

目录 编译安装Nginx服务 2.安装依赖包 3.创建运行用户、组&#xff08;Nginx 服务程序默认以 nobody 身份运行&#xff0c;建议为其创建专门的用户账号&#xff0c;以便更准确地控制其访问权限&#xff09; 4.编译安装Nginx 5.检查、启动、重启、停止 nginx服务 6.添加 N…

前端Vue自定义tabbar底部tabbar凸起tabbar兼容苹果刘海屏小程序和APP

前端Vue自定义tabbar底部tabbar凸起tabbar兼容苹果刘海屏小程序和APP&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13167 效果图如下&#xff1a; # cc-myTabbar #### 使用方法 使用方法 <!-- tabBarShow&#…

Flutter Dart函数(方法)异常

目录 函数(方法) 可选命名参数 「required」 可选位置参数 默认参数值 匿名方法 函数是一等对象 异常 函数(方法) Dart 是一个真正的面向对象语言&#xff0c;方法也是对象并且具有一种 类型 Function。 这意味着&#xff0c;方法可以赋值给变量&#xff0c;也可以当做…

读发布!设计与部署稳定的分布式系统(第2版)笔记10_自动化和缓慢的响应

1. 工业机器人 1.1. 具有多层防护措施&#xff0c;防止对人员、机器和设施造成损害 1.2. 防护措施能限制机器人的动作和传感器的感知 1.3. 机械臂的旋转范围会远远小于它可以达到的全部运动范围 2. 自动化 2.1. 它更像是工业机器人 2.1.1. 掌握控制层感知系统的当前状态 …

chatgpt赋能python:Python的分割函数:split的介绍和使用方法

Python的分割函数&#xff1a;split的介绍和使用方法 在Python编程中&#xff0c;我们经常需要对字符串进行操作。其中&#xff0c;分割字符串是一项常见的任务。Python中的split()函数可以用于将字符串按照指定的分隔符进行拆分。本文将介绍split()函数的使用方法以及注意事项…

0019-TIPS-2019-tokyowesterns-gnote : switch(jump-table) Doubule Fetch

漏洞源码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/fs.h> #include <linux/proc_fs.h> #include <linux/string.h> #include <linux/slab.h> #include <asm/uaccess.h>…

python:并发编程(二十)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇二&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…