猜猜 JavaScript 输出:(! + [] + [] + ![]).length
一起猜
最近看到一个很有意思的题,直接来看,下面这段代码的打印结果是什么?
console.log((! + [] + [] + ![]).length)
猜猜看,你的答案是什么,打在评论区。
我的答案是 undefined,正如我的英文名

为什么呢?因为我第一眼看到题目,只想到了 ![] 的结果是 false
而前面! + [] + []的逻辑没想明白,但是我估计得出的应该也是个布尔值
两个布尔值相加,最后还是个布尔值
布尔值取 length,应该是返回undefined
揭晓答案
但是在控制台运行后我人傻了,答案是 9 !!!
看到结果第一时间我还以为是全当字符串拼接起来了,但是一数,全拆开也是8个字符串啊。然后分析了下。
一步一步来看。
首先 + 加法操作符是从左到右计算的,所以不能自己想当然的给公式加上无形的“括号”。
所以应该一个值一个值来加。首先是! + []。
! 是逻辑非操作符。可以用于 js 中的任何值,逻辑非操作符首先会将操作数转化为布尔值,然后在对其取反。
然后我又蒙住了,我知道 !值 的写法可以转 boolean,难道! + 值的写法也能隐式转换成布尔?
但是想不通其中的逻辑。
突然我幡然醒悟,应该把! + []拆解成 !非+ [],把+[]当作值,那+ []是什么呢?
一元正号运算符位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。
任何值前面加上+加号操作符都会隐式转换成数值,如果解析失败,则转换结果为 NaN。
+'123' //123
+'abin' //NaN
+3 //3
+true //1
+false //0
+null //0
+[] //0
+undefined //NaN
+function(){} //NaN
+new Date() //1695781396548 对应的毫秒数
这下是不是就能看通了,+ []的值为 0,
原式就相当于!0 + [] + ![] => true + [] + false,
因为加法操作符如果两边都不是数字/字符串的时候会强制把操作值转换成字符串/数字,优先转换字符串,
所以true + [] + false => 'true' + [].toString() + false
现在题目就很简单了,
[].toString()的结果是空字符串,
所以'true' + [].toString() + false => 'true' + '' + false
最后得出结论
('true' + '' + false).length => 'truefalse'.length
答案是 9 !!!
你猜对了吗😜😜😜
说在最后
这种题目看着很怪,其实你只要不盲目的随意拆解题干,按照正常计算思路往下捋,就能捋出答案(马后炮🤪)
这道题的核心关键点有以下几点:
- 加法运算符一定要从左到右看
- !非运算符单独使用没有效果,所以会将
+[]看作整体 +操作数一元正号加上操作数会将操作数强制转换为数字
相关文章:
猜猜 JavaScript 输出:(! + [] + [] + ![]).length
一起猜 最近看到一个很有意思的题,直接来看,下面这段代码的打印结果是什么? console.log((! [] [] ![]).length) 猜猜看,你的答案是什么,打在评论区。 我的答案是 undefined,正如我的英文名 为什么呢&a…...
MTK Android12静默安装接口
该文档就是在android12系统上提供一个广播接收器,app端发送一个广播,并且带入apk的地址就可以实现安装 1、广播注册 frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java 首先要导入的依赖 import android.app.P…...
基于电容电流前馈与电网电压全前馈的三相LCL并网逆变器谐波抑制Simulink仿真
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Python数据攻略-Pandas与统计数据分析
统计学在数据分析中到底有多重要?在数据分析的世界里,统计学扮演着一角色。想象一下你是《三国志》游戏的数据分析师,任务是找出哪个武将最受玩家欢迎,哪些战役最具挑战性等。 你怎么做呢?这就需要统计学的力量了。 文章目录 基础统计方法描述性统计方差和标准差相关性和…...
【gcc】RtpTransportControllerSend学习笔记 1
本文是大神 https://www.cnblogs.com/ishen 的文章的学习笔记。主要是大神文章: webrtc源码分析(8)-拥塞控制(上)-码率预估 的学习笔记。大神的webrtc源码分析(8)-拥塞控制(上)-码率预估 详尽而具体,堪称神作。因为直接看大神的文章,自己啥也没记住,所以同时跟着看代码。跟…...
若依分离版-前端使用
1 执行 npm install --registryhttps://registry.npm.taobao.org,报错信息如下 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: ktg-mes-ui3.8.2 npm ERR! Found: vue2.6.12 npm ERR! node_modu…...
微信小程序-2
微信开发文档 https://developers.weixin.qq.com/miniprogram/dev/framework/ 一、app.js中的生命周期函数与globalData(全局变量) 指南 - - - 小程序框架 - - - 注册小程序 删除app.js里的东西,输入App回车,调用生命周期 选项 - - - 重新打开此项目…...
卷积神经网络的发展历史-ResNet
ResNet的产生 2015 年,Kaiming He 提出了ResNet(拿到了 2016 年 CVPR Best Paper Award),不仅解决了神经网络中的退化问题还在同年的ILSVRC和COCO 竞赛横扫竞争对手,分别拿下分类、定位、检测、分割任务的第一名。 R…...
基于瞬时无功功率ip-iq的谐波信号检测Simulink仿真
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
node安装,nvm管理器
一、下载nvm,nvm-setup.exe https://github.com/coreybutler/nvm-windows/releases 二、配置NodeJS下载代理镜像(可选) 可以在NVM安装根目录下的setting.txt文件中,配置NodeJS下载代理镜像,解决在线安装NodeJS时速度…...
华为云云耀云服务器L实例评测|Ubuntu云锁防火墙安装搭建使用
华为云云耀云服务器L实例评测|Ubuntu安装云锁防火墙对抗服务器入侵和网络攻击 1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格,满足您对成本、性能及技术创新的诉求。云耀云服务器L…...
C# OpenCvSharp 实现迷宫解密
效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Windows.Forms;namespace OpenCvSharp_实现迷宫解密 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e…...
趣味工具箱小程序源码
趣味工具箱小程序源码,支持功能去水印,精选壁纸,图片压缩,文字生成二维码,图片加水印,模拟来电,手持弹幕,掷骰子…等 使用小工具,一个小程序有几十个功能。 源码下载&am…...
互联网Java工程师面试题·Redis 篇·第二弹
目录 16、Redis 集群方案什么情况下会导致整个集群不可用? 17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个? 18、Jedis 与 Redisson 对比有什么优缺点? 19、Redis 如何设置密码及验证密码? 20、说说 Redis…...
FreeRTOS入门教程(信号量的概念及API函数使用)
文章目录 前言一、什么是信号量二、信号量种类和对比三、信号量和队列的区别四、信号量相关的函数1.创建函数2.删除函数3.获取和释放信号量函数 总结 前言 本篇文章正式带大家开始学习什么是信号量,并且掌握信号量函数的基本使用方法,并且将和队列进行一…...
简易版Pycharm(2023)+Conda开发环境配置教程
困 扰 不知道为什么,自从Pycharm更新了新的版本以后,在Pycharm中为项目工程配置Python解释器环境时,总是不能像以前那么方便的配置。 比如,当前Conda中有十个不同的开发环境,每个环境一个名称,比如&#x…...
深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(二)
前言 在上一篇深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(一)_往事如烟隔多年的博客-CSDN博客 文章中对SpringBoot整合Quartz做了初步的介绍以及提供了一个基本的使用例子,因为实际各自的需求任务不尽相同因此并…...
小谈设计模式(22)—单例模式
小谈设计模式(22)—单例模式 专栏介绍专栏地址专栏介绍 单例模式点睛所在优缺点分析优点确保只有一个实例全局访问点节省资源线程安全 缺点难以扩展对象的生命周期单一职责原则隐藏依赖关系 Java程序实例实例a分析实例b,更安全分析优化 ——“…...
华为OD机考算法题:分班
题目部分 题目分班难度易题目说明幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友是否同班,请你帮忙把同班的小朋友找出来。 小朋友的编号为整数,与前一位小朋友同班用 Y 表示,不同班用 N 表示…...
【gcc】RtpTransportControllerSend学习笔记 3:gcc
本文是大神 https://www.cnblogs.com/ishen 的文章的学习笔记。大神的webrtc源码分析(8)-拥塞控制(上)-码率预估 详尽而具体,堪称神作。本文使用的代码是m79 ,与大神有不同。2.4 Probe只会在一些特殊的时候才会进行探测(链路刚开始时, 码率不正常暴跌时)2.5 : 对发送的吞吐量…...
仅限本周开放|DeepSeek Chat V3.2功能测试黄金 checklist(含17个边界Case+响应时延基线数据)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek Chat V3.2功能测试黄金 checklist 发布说明 DeepSeek Chat V3.2 已正式面向开发者开放灰度测试,本次版本聚焦多模态理解增强、长上下文稳定性优化及企业级安全策略集成。为保障测试…...
ClawForgeAI:基于工作流编排的AIGC创意自动化平台解析
1. 项目概述:从“ClawForgeAI/clawforge”看AI驱动的创意工具新范式最近在GitHub上看到一个挺有意思的项目,叫“ClawForgeAI/clawforge”。光看这个名字,你可能会有点摸不着头脑——“ClawForge”听起来像是个游戏模组工具或者某种机械设计软…...
5分钟搞定Windows包管理器:winget-install终极配置指南
5分钟搞定Windows包管理器:winget-install终极配置指南 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirrors/wi…...
039对称二叉树
对称二叉树 题目链接:https://leetcode.cn/problems/symmetric-tree/description/?envTypestudy-plan-v2&envIdtop-100-liked 我的解答: //方法一:递归 //时间复杂度:O(n) //空间复杂度:O(n) public boolean isSy…...
AI 的能源账单:训练一次模型够一个城市用一年、$440 亿投资涌入、核能成为新基建 — 算力背后的环境代价
Stanford HAI 2026 年 AI Index 报告用一组数字泼了盆冷水:AI 模型正在取得突破性的科学和推理成果,但环境代价高到令人不安。报告披露:一个前沿大模型的单次训练,能耗相当于一个小型城市一天的全部用电量。而 2024-2026 年间&…...
xpull:轻量级声明式文件同步工具的设计原理与K8s实战
1. 项目概述:一个轻量级、高可用的文件同步利器在分布式系统、微服务架构乃至日常的自动化运维中,文件同步是一个看似基础却至关重要的环节。无论是将日志文件从边缘服务器拉取到中心进行分析,还是将配置文件从版本库分发到成百上千个实例&am…...
RMSNorm:均方根归一化总结
RMSNorm:均方根归一化总结 1. RMSNorm 是什么? RMSNorm 的全称是 Root Mean Square Normalization,中文可以叫:均方根归一化它是 Transformer 大模型中常用的一种归一化方法,例如 LLaMA、Qwen、DeepSeek、Gemma 等模型…...
子网掩码实战:从原理到网络规划的深度解析
1. 子网掩码的核心原理 第一次接触子网掩码时,我也被那一串数字搞得晕头转向。直到有次公司网络改造,亲眼看到老工程师用子网划分解决了IP地址不足的问题,才真正明白它的价值。简单来说,子网掩码就像邮局的邮政编码系统 - 它告诉网…...
微软UFO项目:基于视觉大模型的GUI自动化智能体实战解析
1. 项目概述:当“全能”AI助手遇见复杂任务编排 最近在AI应用开发圈里,一个来自微软研究院的项目“UFO”引起了我的注意。这名字听起来挺科幻,全称是“UI-Focused Agent”,直译过来是“专注于用户界面的智能体”。但别被这个直白的…...
如何利用awesome-clothed-human资源构建你自己的虚拟试穿系统?
如何利用awesome-clothed-human资源构建你自己的虚拟试穿系统? 【免费下载链接】awesome-digital-human Digital Human Resource: 2D/3D/4D Human Modeling, Avatar Generation & Animation, Clothed People Digitalization, Virtual Try-On, etc. 项目地址: …...
