【JS面试题 - 打印结果】++[[]][+[]] + [+[]]

现有一段代码,说出打印结果

++[[]][+[]] + [+[]]

这道题考验的是运算符的基础知识,下面来逐步分析:

先把表达式按照优先级最低的运算符(+)进行分割,得到两部分:
++[[]][+[]] 和 [+[]]

++[[]][+[]]

表达式中++运算符优先级最低,所以先对 [[]][+[]] 进行运算:

这个表达式的目的是:取数组 [[]] 的第 [+[]] 项。
[[]]:表示数组中有一个元素为[]。
[+[]]:+[]会将[]转为Number类型,由于[]是对象类型,所以转换后得到:0,结果为[0]。具体流程为:由于+运算符会将数据转为Number类型,首先查看[].valueOf是否为Number,结果是[],并不是Number。所以需要toString,[].toString()得到 “”。最终把字符""转为数字,即0。隐式转换详情可看另一篇文章:隐式类型转换详解。

所以[[]][+[]]结果为:[[]][0]也就是[]

那么++[]的结果为1

结果: 1。

[+[]]

通过上述流程可知,[+[]] 的结果为[0]。

最终运算

经过上述步骤,此时表达式已经转换为:1 + [0]

由于+运算符右侧为非原始类型(复杂类型<对象>),所以需要尝试将其转为原始类型。

流程如下:

  1. [0].valueOf 得到 [0],所以继续转换。
  2. [0].toString 得到字符 “0”,此时数据已为原始类型,停止转换。
  3. 至此,表达式变为:1 + “0”,所以答案为"10"

结果

“10”

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

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

相关文章

Redis 不再“开源”,对中国的影响及应对方案

Redis 不再“开源”&#xff0c;使用双许可证 3 月 20 号&#xff0c;Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示&#xff0c;今后 Redis 的所有新版本都将使用开源代码可用的许可证&#xff0c;不再使用 BSD 协议&#xff0c;而是采用…

这些流行的银行木马,你都了解吗?

银行木马是一款对针对金融客户为目标&#xff0c;通过各种方式窃取客户网上银行凭证信息的恶意软件&#xff0c;最近几年一些银行木马不仅仅传播自己&#xff0c;还充当勒索病毒的分销商&#xff0c;传播勒索病毒&#xff0c;笔者今天给大家介绍一些比较流行的银行木马家族。 …

面试算法-85-删除有序数组中的重复项 II

题目 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说…

【Web】记录巅峰极客2023 BabyURL题目复现——Jackson原生链

目录 前言 分析 EXP SignedObject打二次反序列化 打TemplatesImpl加载恶意字节码 前文&#xff1a;【Web】浅聊Jackson序列化getter的利用——POJONode 前言 题目环境:2023巅峰极客 BabyURL 之前AliyunCTF Bypassit I这题考查了这样一条链子&#xff1a; BadAttributeV…

通过rmi实现远程rpc(可以认为java自带Dubbo RPC)

背景&#xff1a; 发现公司几个运行10年的游戏&#xff0c;用的竟然是rmi&#xff0c;而我只听说过dubbo 和 基于netty的rpc&#xff0c;于是就补充了下rmi。 其次&#xff0c;是最近对于跨服的思考&#xff0c;如何避免回调也需要用同步写法&#xff0c;rmi比较适合。 1)api…

408学习笔记-16-C-动态内存管理

1、为什么要有动态内存分配 常规定义出来的变量&#xff0c;它们的大小都是已经规定好的&#xff0c;即在内存中开辟的内存空间都是固定的&#xff1b;且空间大小不可调整&#xff0c;可能会造成内存空间的浪费。 于是C语言引入了动态内存开辟功能&#xff0c;让程序员自己可…

IDEA/Android Studio格式化代码快捷键失效的解决

问题描述 用AS写一个项目的时候&#xff0c;发现CtrlAltL的格式化快捷键并不生效&#xff0c;按下之后没有任何反应。而格式化文件快捷键CtrlAltShiftL依旧生效&#xff0c;难道是设置出了问题&#xff1f; 打开设置页面发现快捷键设置很正确&#xff0c;并没问题&#xff0c…

综合能源系统多时间尺度优化调度研究综述

1.研究背景 随着全球能源需求的增长以及环境保护的压力&#xff0c;综合能源系统&#xff08;IES&#xff09;成为了实现能源可持续发展的关键方案之一。IES通过集成多种能源资源&#xff0c;优化能源的产、供、存、消过程&#xff0c;提高能源利用效率&#xff0c;减少环境污染…

「JS 基础」异步解决方案入门

前言 为了解决Javascript 语言的执行环境是单线程所带来的问题&#xff0c;Javascript 将任务的执行模式分为两种&#xff1a;同步和异步 同步即为后一个任务等待前一个任务结束再继续执行&#xff0c;程序的执行顺序与任务的排列顺序是一致的 异步则完全不同&#xff0c;每…

鸿蒙一次开发,多端部署(一)简介

背景 随着终端设备形态日益多样化&#xff0c;分布式技术逐渐打破单一硬件边界&#xff0c;一个应用或服务&#xff0c;可以在不同的硬件设备之间随意调用、互助共享&#xff0c;让用户享受无缝的全场景体验。而作为应用开发者&#xff0c;广泛的设备类型也能为应用带来广大的…

trinus 3d打印机安装调试到成功打印2-堵头处理挤出机喷头不出料

使用弹簧钢板而不是美文纸&#xff0c;由于这款打印机没有热床功能&#xff0c;所以为了加大附着需要将喷头距离设低一些&#xff0c;否则模型极容易打着中途脱落。 但是由于不能自动调平&#xff0c;而且不支持手动调整4个角的高度&#xff0c;在喷头距离设置不当的情况下&am…

面试题2.0

目录 css 动画 深拷贝和浅拷贝 ES6新特性 事件循环 vue-router原理 flex布局 session和local storage分别是用来干嘛的&#xff1f; http状态码 原型链 虚拟dom vuex的五个属性 vue路由跳转的四种方式 vue生命周期 link和import的区别 GET 与 POST 的区别 fle…

使用platformIO进行arduino,esp8266,esp32编程的性能改进和一些优化

目录 多环境配置 性能优化 多环境配置 平常的一些platformio的配置是这样的&#xff1a; [env:esp32dev] platform espressif32 board nodemcu-32s framework arduino monitor_speed 115200 upload_speed 921600 lib_deps ; painlessmesh/painlessMesh^1.5.0bodmer/TF…

python 实现把内层文件夹的文件,复制/剪切到外层文件夹

文章目录 如下图所示&#xff0c;收集了很多省市的文件&#xff0c;结果发现市一级的文件与区县一级的文件混在一起了。 接下来使用代码实现&#xff1a; 根据关键词识别出 市一级的文件&#xff1b;把市一级的文件&#xff0c;移动或者复制到省文件夹下&#xff1b;给出了py…

STM32-Flash闪存

简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程。 读写Flash的用途 1.利用程序存储器的剩余空间来保存掉电不丢失的用户数据。 2.通过在程序中…

2024 年 AI 辅助研发趋势将更加强调智能化、自动化和个性化

目录 前言 AI辅助研发的技术进展 行业应用案例 医药行业 汽车行业 电子行业 面临的挑战与机遇 技术挑战 伦理问题 数据安全 机遇和解决方案 未来趋势预测 1. 深度融合AI与研发流程 2. 智能研发平台的崛起 3. 强化AI与人类智慧的融合 前言 当谈到人工智能&#xff…

Oracle 写丢失保护/影子表空间(Lost Write Protection with Shadow Tablespace)

写丢失是Oracle数据库与独立I/O子系统交互时一种错误场景。假如Oracle发出的写磁盘命令&#xff0c;I/O子系统也返回成功写磁盘的消息&#xff08;但数据此时可能依然在I/O系统缓存中&#xff09;&#xff0c;如果在I/O系统实际写盘之前Oracle再次读取该数据&#xff0c;则I/O系…

JavaScript 权威指南第七版(GPT 重译)(五)

第十二章&#xff1a;迭代器和生成器 可迭代对象及其相关的迭代器是 ES6 的一个特性&#xff0c;在本书中我们已经多次见到。数组&#xff08;包括 TypedArrays&#xff09;、字符串以及 Set 和 Map 对象都是可迭代的。这意味着这些数据结构的内容可以被迭代——使用for/of循环…

ARM中断实验

key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI-…

jQuery 事件

文章目录 1. jQuery 事件注册单个事件注册 2. jQuery 事件处理2.1 on() 绑定事件(1) on() 方法优势1(2) on() 方法优势2(3) on() 方法优势3*案例--发布微博 2.2 off() 解绑事件2.3 one() 只触发事件一次2.4 自动触发事件 3. jQuery 事件对象 1. jQuery 事件注册 单个事件注册 …