专项练习21

news2024/11/19 13:33:29

目录

一、选择题

    1、下列逻辑表达式的结果为false的是()

    2、请问以下JS代码输出的结果是什么?

    3、以下哪些对象是Javascript内置的可迭代对象?

二、编程题

    1、找到数组参数中的最大值并返回。注意:数组中只包含数字


一、选择题

1、下列逻辑表达式的结果为false的是()

A、NaN == NaN

B、null == undefined

C、'' == 0

D、true == 1

正确答案:A

解析:

(1)选项解释

A选项:NaN 无论与谁比较,包括它自己,结果都是 false。判断两个NaN相等要用Object.is(NaN,NaN)

B选项:null 与 undefined 比较,结果为 true,除此之外undefined 和 null 与谁比较,结果都为 false

C选项:String 与 Number 比较,String Number 类型,再比较,转为 Number 类型的字符串结果为0==0,结果为 true

D选项:Boolean 与其他类型比较,Boolean 先转Number 类型,true 转为 Number 类型的值为 1,故 true==1 的结果为 true

(2)实例

Object.is('foo', 'foo');     // true
Object.is(window, window);   // true

Object.is('foo', 'bar');     // false
Object.is([], []);           // false

var foo = { a: 1 };
var bar = { a: 1 };
Object.is(foo, foo);         // true
Object.is(foo, bar);         // false

Object.is(null, null);       // true

// 特例
Object.is(0, -0);            // false
Object.is(0, +0);            // true
Object.is(-0, -0);           // true
Object.is(NaN, 0/0);         // true

2、请问以下JS代码输出的结果是什么?
let obj = {
  num1: 117
}
let res = obj;
obj.child = obj = { num2: 935 };
var x = y = res.child.num2;
console.log(obj.child);
console.log(res.num1);
console.log(y);

A、117、117、undefined

B、117、117、935

C、undefined、117、935

D、undefined、117、undefined

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

解析:

(1)let obj = { num1: 117 }  

把obj放在栈里,把 { num1:117} 放在堆里,让obj指向堆里的 { num1:117 }

(2)let res = obj;

把res放在栈里,把res也指向堆里的 { num1:117 }

(3) obj.child  =  obj  =  { num2: 935 }; 

①重点:赋值操作先定义变量(从左到右),进行赋值从右到左

②定义变量:obj.child,给堆里的 { num1:117 } 加一个child属性,得 {num1:117,child:undefined}

③定义变量:obj,之前在栈里的obj

定义变量

④赋值:obj = { num2: 935 },把 { num2: 935 } 放在堆里,把栈里的obj指向堆里的 { num2: 935 } 

obj赋新的值

⑤赋值:obj.child = obj,把堆里的 {num1:117,child:undefined} 的child指向  {num2: 935}

obj.child赋到新值里

⑥总结

obj = { num2: 935 } 

res = { num1: 117,child:{ num2: 935 }  }

(4)var x = y = res.child.num2;

同第(3)步的①原理,最后赋值从右到左,y = res.child.num2 即 y = 935,x = y 即 x = 935


3、以下哪些对象是Javascript内置的可迭代对象?

A、Array

B、Map

C、String

D、Object

正确答案:ABC        你的答案:ABCD

解析:

(1)String、Array、TypedArray、Map 和 Set 都是内置可迭代对象,因为它们的原型对象都拥有一个 Symbol.iterator 方法

(2)MDN参考文档

迭代器和生成器 - JavaScript | MDN


二、编程题

1、找到数组参数中的最大值并返回。注意:数组中只包含数字

解析:

(1)Math.max() 方法求最大,注意方法不能接受数组作为参数,需要解构赋值将数组解构

<script>
    let array = [23,65,12,5,34]
    function _max(array){
        return Math.max(...array)
    }
    console.log(_max(array));
</script>

(2)for() 依次循环数组值,找到最大值

<script>
    let array = [23,65,12,5,34]
    function _max(array){
        let max = array[0]
        for(let i =0;i<array.length;i++){
            if(max<array[i]){
                max = array[i]
            }
        }
        return max
    }
    console.log(_max(array));
</script>

(3)sort() 方法对新数组从大到小排序,shift() 返回新数组排序第一个值

<script>
    let array = [23,65,12,5,34]
    function _max(array){
        const newArr = array
        newArr.sort((a,b)=>{
            return b-a
        })
        return newArr.shift()
    }
    console.log(_max(array));
</script>

(4)sort() 方法对新数组排序从小到大,pop() 返回新数组排序最后一个值

<script>
    let array = [23,65,12,5,34]
    function _max(array){
        const newArr = array
        newArr.sort((a,b)=>{
            return a-b
        })
        return newArr.pop()
    }
    console.log(_max(array));
</script>

(5)reduce() 方法遍历数组元素,并返回max值

<script>
    let array = [23,65,12,5,34]
    function _max(array){
        let max = array.reduce((max,cur)=>{
            return max>cur?max:cur
        })
        return max
    }
    console.log(_max(array));
</script>

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

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

相关文章

16 直线识别拟合角平分线(matlab程序)

1.简述 直线检测是数字图像处理的重要内容,在道路识别,建筑物识别,医学图像分析等领域都有十分重要的应用。通过对已经获得的图像进行边缘检测,然后用Hough变换对边缘检测进行直线检测。该方法简单,受直线中的间隙和噪声影响较小。在Matlab环境下对该方法进行了仿真实验,并对图…

【LLM】Windows本地CPU部署民间版中文羊驼模型(Chinese-LLaMA-Alpaca)踩坑记录

目录 前言 准备工作 Git Python3.9 Cmake 下载模型 合并模型 部署模型 前言 想必有小伙伴也想跟我一样体验下部署大语言模型, 但碍于经济实力, 不过民间上出现了大量的量化模型, 我们平民也能体验体验啦~, 该模型可以在笔记本电脑上部署, 确保你电脑至少有16G运行…

1.4 计算机网络性能

1.4 计算机网络性能 速率带宽延迟/时延(delay或latency)四种分组延迟排队延迟 时延带宽积分组丢失&#xff08;丢包&#xff09;吞吐量/率&#xff08;Throughput&#xff09; 速率 速率即数据率(data rate)或称数据传输速率或比特率(bit rate) 单位时间&#xff08;秒&#x…

为什么我心中TOP1的编程语言是Java?我为什么选择Java?

文章目录 前言优点跨平台性面向对象编程&#xff08;OOP&#xff09;强大的类库和工具支持广泛的应用领域 缺点速度相对较慢内存消耗较大较高的学习曲线 Java 学习路线总结前置知识Web前端基础 后端基础1. Java基础2. 数据库技术3. Web开发技术4. 框架技术5. 服务器部署 其他技…

KKT条件

有两种情况&#xff1a; 原问题是非凸函数原问题是凸函数 &#xff08;1&#xff09;非凸函数 KKT是强对偶的必要条件&#xff0c;而不是充分条件&#xff0c;即KKT不能推出强对偶。 &#xff08;2&#xff09;凸函数 KKT与强对偶互为充要条件。 下面给出具体的KKT条件&a…

数据结构--二叉树的先中后序遍历

数据结构–二叉树的先中后序遍历 二叉树的遍历 层次遍历 层次遍历:基于树的层次特性确定的次序规则 二叉树的递归特性: ①要么是个空二叉树 ②要么就是由“根节点左子树右子树”组成的二叉树 先 \color{red}先 先序遍历&#xff1a; 根 \color{red}根 根左右&#xff08; N \…

springboot 集成log4j日志,需要自定义json格式内容输出方便ES采集

背景 公司需要将服务迁移到K8S环境上&#xff0c;由于目前服务输出的格式不符合ES进行采集的日志格式&#xff0c;所有需要将日志输出的格式进行调整为JSON格式&#xff0c;方便ES采集 遇到的坑 之前是直接配置的输出格式的message为"message": %msg"&#x…

记录一下,linux安装环境步骤。

前文 鉴于之前都是下载压缩包方式安装环境&#xff0c;学习了docker之后&#xff0c;决定将服务器初始化&#xff0c;重新用docker安装相应环境 条件&#xff1a;自己买的阿里云centos系统。单核系统&#xff0c;仅学习使用。 初始化云盘 初始化云盘步骤&#xff1a; 1&…

Perfetto 命令行工具(Android 10 及更高版本)

Perfetto 命令行工具&#xff08;Android 10 及更高版本&#xff09; 1、快速入门1.1 启动跟踪服务1.2 记录跟踪1.2.1 通过 Perfetto UI 记录跟踪1.2.2 通过 cmdline 记录跟踪1.2.3 System Tracing 的系统级应用抓取 2、perfetto 工具2.1 数据源选择2.2 语法参数2.2.1 轻量模式…

数据结构--树和二叉树

目录 1.树的结构及概念1.1树的概念1.2树的相关概念1.3树的表示1.4树在实际中的运用&#xff08;表示文件系统的目录结构&#xff09; 2.二叉树的相关概念2.1概念2.2现实版的二叉树2.3特殊的二叉树2.4二叉树的性质2.5二叉树的存储结构 3.与二叉树有关的习题总结 1.树的结构及概念…

RabbitMQ系列(14)--Topics交换机的简介与实现

1、Topics交换机的介绍 Topics交换机能让消息只发送往绑定了指定routingkey的队列中去&#xff0c;不同于Direct交换机的是&#xff0c;Topics能把一个消息往多个不同的队列发送&#xff1b;Topics交换机的routingkey不能随意写&#xff0c;必须是一个单词列表&#xff0c;并以…

leetcode极速复习版-第三章哈希表

目录 哈希表 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 哈希表 哈希表理论基础 那么哈希表能解决什么问题呢&#xff0c;一般哈希表都是用来快速判断一个元素是否出…

机器人制作开源方案 | 卧式车床模型概述

1. 功能说明 本文示例将通过程序控制模拟车床的运动效果--模拟车床进行加工时各个结构的运动方式。车床的主要运动包括夹持工件主轴的旋转运动、刀具进给运动、刀具的换刀旋转运动、溜板的平动、尾座上顶针的进给运动。 2. 结构说明 该车床主轴旋转运动选择带传动的传动方式&am…

Elasticsearch实战(二十四)---ES数据建模一对多模型Nested结构

Elasticsearch实战—ES数据建模一对多模型Nested结构 文章目录 Elasticsearch实战---ES数据建模一对多模型Nested结构1.ES 一对多模型Nested 结构模型实战2.ES字段查询2.1 非Nested 错误结构及错误查询2.2 Nested结构&#xff0c;正确查询 3.Nested结构原理 我们如何把Mysql的模…

vue 中使用 vxe-table 制作可编辑表格

项目上有一个表格需要实现在线编辑&#xff0c;开始用了 element 的el-table 实现&#xff0c;单元格内基础情况就是监听了单击单元格切换一个span标签与input标签&#xff0c;复杂点的单元格使用了大量的条件判断来实现对应的编辑操作&#xff0c;比如下拉选&#xff0c;popov…

github Couldn‘t connect to server

Couldnt connect to server 问题描述解决git clone 出错直接访问github没啥问题ping github.com手动指定域名映射关系再次测试git命令 总结参考 问题描述 前一天还是好好的&#xff0c;能git pull和git push&#xff0c;昨天回来之后怎么操作都是Couldnt connect to server。百…

【数据结构】堆的实现(向下调整和向上调整法)和堆排序的实现

目录 一、堆的概念引入 二、小堆的实现 首先&#xff0c;我们会跟线性表一样建立一个动态数组来存堆的数据 ①、堆的初始化--HeapInit ②、小堆的向下调整法的实现 ③、堆排序的实现 ④、堆的插入和向上调整法 ⑤、删除堆顶数据 ⑥、获取堆顶 三、时间复杂度总结&#…

C# PaddleInference OCR识别 学习研究Demo

说明 基于开源项目 https://github.com/sdcb/PaddleSharp VS2022.net4.8 OpenCvSharp4Sdcb.PaddleInference 效果 项目 代码 using Sdcb.PaddleInference.Native; using Sdcb.PaddleInference; using System; using System.Collections.Generic; using OpenCvSharp.Extensi…

15年前的手机并没有jvm虚拟机,为何可以运行Java游戏

2000年代初期&#xff0c;随着移动通信技术的发展&#xff0c;手机逐渐普及。那个时代的手机功能相对比较单一&#xff0c;主要用于打电话和发送短信。但是&#xff0c;随着技术的进步&#xff0c;人们开始在手机上玩游戏&#xff0c;而其中最受欢迎的游戏就是Java游戏。在那个…

ChatLaw,开源了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 最近这段时间&#xff0c;AI 的整体热度有所下降&#xff0c;但是 AI 技术在各行各业的探索脚步&#xff0c;却一直没有停止。 在 ChatGPT 刚发布时&#xff0c;有不少业内人士认为&#x…