类型转换的小乐趣
作者:怿飞 来源:怿飞blog 发布时间:2010-11-30 21:37:00
标签:类型,转换
在 玉伯 的文章 《一道大题目,嘿嘿》 中有这样一段代码:
[] == ![]
也许很多同学迷惑:咦,这个如何转换呢?
首先,我们了解下逻辑 NOT(!)运算与等号(==)运算的一些基本规则:
逻辑 NOT 运算中,如果运算数是对象,返回 fasle;
等号运算中,如果一个运算数是 Boolean 值,在运算前,会将其转换成数字:false -> 0,true -> 1;
等号运算中,如果一个运算数是对象,另一个是数字,在运算前,会将对象转换成数字。
2010年11月2日补充:对象不能直接转换成数字型,可以将其转换成字符型,再将字符型转换成数字型。
根据上面的一些规则,我们再来看看原来的表达式如何演变:
Step01: [] == ![] // 由于[]是对象,则 ![] 返回fasle,演变为 Step02。
Step02: [] == fasle // 由于 fasle 是 Boolean 值,则转换成数字 0,演变为 Step03。
Step03: [] == 0 // 由于 0是数字,[]是对象,[] 转换成数字 Number([]) -> 0,[] 转换成字符型 [].toString() -> "","" 再转换成数字型 -> 0 ,演变为 Step04。
Step04: 0 == 0 // 返回最终结果:true
思考题:
{} == ! {}; //返回什么值?
[] == [] //返回什么值?
PS:如果你对玉伯的题目很感兴趣,推荐阅读:
0
投稿
猜你喜欢
- 代码如下:--Begin Index(索引) 分析优化的相关 Sql -- 返回当前数据库所有碎片率大于25%的索引 -- 运行
- 版本一:按分隔符进行比较 算法思路:按分隔符截取搜索字符串循环与待搜索字符进行比较 USE [Fly] GO --参数:@inStr 待搜索
- ISNULL 使用指定的替换值替换 NULL。 &nb
- 最近发现一个很有意思的画图的python库,叫做turtle,这里先说下用turtle这个库来实现用正方形画圆的思路。每次都用乌龟(turt
- 模板在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成 * 页,golang提供了html/tem
- 一个很简单的画像素画的小工具,有意思的地方在于可以把画的图案保存成数组,以方便之后快速还原出原图..<!DOCTYPE html PU
- 前言:python 中协程概念是从 3.4 版本增加的,但 3.4 版本采用是生成器实现,为了将协程和生成器的使用场景进行区分,使语义更加明
- 本文实例讲述了python实现读取excel文件中所有sheet操作。分享给大家供大家参考,具体如下:表格是这样的 实现把此文件所
- 1.数据集分割通过datasets可以直接分别获取训练集和测试集。通常我们会将训练集进行分割,通过torch.utils.data.rand
- MySQL DATE_FORMAT函数简介要将日期值格式化为特定格式,请使用DATE_FORMAT函数。 DATE_FORMAT函数的语法如
- List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作)
- replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法:string.replace(sub
- 本文介绍了django实现前后台交互实例,分享给大家,希望对大家有所帮助准备工作:前端框架:AngularJS+bootstap数据库:sq
- 连续活跃登陆的用户指至少连续2天都活跃登录的用户解决类似场景的问题创建数据CREATE TABLE test5active(dt strin
- 本文实例讲述了JavaScript点击按钮后弹出透明浮动层的方法。分享给大家供大家参考。具体分析如下:这里实现点击后页面变灰色,并用JS弹出
- 我就废话不多说了,大家还是直接看代码吧~'''Created on 2018-4-16'''
- 概论在讨论ECMAScript闭包之前,先来介绍下函数式编程(与ECMA-262-3 标准无关)中一些基本定义。 然而,为了更好的解释这些定
- 当我们想更新一张动态表的时候(即:表中的数据不断的添加),也许我们会用数据库代理,通过写作业,然后让他定时查询动态表中最新添加的数据,然后更
- 共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hes
- Python 风格规范(Google)本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。如果你关注的是 Google