您现在的位置是:主页 > 叶巷 > 关于null=0为true - 叶巷的博客

http://tallinncar.com/yx/97.html

关于null=0为true - 叶巷的博客

时间:2019-06-27 05:32  来源:未知  阅读次数: 复制分享 我要评论

  我们先从一组 用例说起. 看代码:

  我们今天会商的次要内容,并不是这个成果可能看起来何等奇异. 而是为什么会如许.  之所以出格记一篇漫笔在这里,次要是由于,我在获得了  Brendan Eich 的一些确认后.发觉谜底和我当初的猜测纷歧样. 所以我有反省,本人对ES的一些理解上,是不是有些偏客观.

  起头前,我们先拿ES3,ES5的相关定义说起:

  注2 : 下面这些内容,你只需要简单留意下,我标红的部门,其他部门其实可有可无. 我会对这些内容,在后面的部门有个大要的注释.

  ES3 关于 内部关系运算的算法实现 :

  ES3 关于 内部相等性运算的算法实现 :

  以上内容,我们该当关怀的部门,也是我之前阅读时忽略的很主要的部门:

  1. 关系运算符 和 相等运算符 并不是一个类此外.

  2. 关系运算符,在设想上,老是需要运算元测验考试转为一个number . 而相等运算符在设想上,则没有这方面的考虑.

  所以,我们反过来对待这个问题.

  我小我在之前的阅读中,并没无意识到这些问题.而导致,我愚笨的认为,  = 的成果是设想上的失误.  缘由是,我简单的认为 :

  怀着如许的设法,我给es-discuss 写了信,用不暖和的口气.质疑这个问题.  欣喜的是, Brendan Eich 竟然关心了这个问题.并立即做出了答复.  悲剧的是,我在频频阅读该回信内容时,仍然没有从底子上理解到这个问题.直到今天早上.我从头翻阅了ES3,5.相关章节. 才恍然大悟.

  到此,我的反省竣事. 同时也感激 BE 的当真,及时的答复. 作为一个CTO,任然如斯关怀并积极参与手艺社区的成长,其实让人钦佩.

  接着是吐槽的时候了:

  虽然前面的例子,我catch到了BE当初的设想思惟. 可是从全局的角度来看. 从关系运算符到相等运算符,特别是相等运算符的设想上. 真的十分紊乱不胜. BE在信中提到,他对 == 的现状也很无法. 以至用愚笨这个词来描述本人当初的实现(当然他还提到,当初只是为了在10天内设想出js,并跑过qa的测试用例). 即便如斯, 可是他仍然暗示 null == 0 这个成果是他想要的.

  好吧,到了这里,我也有种无力感. 我认为纵观javascript,对关系运算和相等运算的设想.除了紊乱,我想不出还有什么词来描述它们更得当. 这一点从,我们出产情况代码中,大量的类型查抄,和防御性代码的的具有,就能够证明这一点.

  别的一个要吐槽的处所是ES规范本身. 好比前面让我深深曲解的处所 ,即 a = b 即 对 a b 的成果取反. 这一点上,就属于不明白表述. 我们想想一个典型的js的例子

  所以写代码,写规范,都该当明白表述. 即便表述的很罗嗦,但不会惹起歧义或思疑. 这才是一份好的尺度.文档,代码. 而避免歧义,和各类紊乱不胜的法则,是一门言语最应恪守的设想准绳.

  本来:点击打开链接

  仍是时间啊,这个问题3年前,以至更早,就有人阐发过了,此刻我只是在追逐别人。。。转行晚啊,少壮不勤奋,老迈徒伤悲啊,真是深有感到此刻把本人弄懂得,记实下来,放在这里,网站不倒,至多本人的工具就不会消逝...博文来自:timy&&大白&&多多

  今天在做项目标时候发此刻thinkPHP的模板标签eq中,对于0、null、false的判断是一样的,也就是说若是变量是这三个值的话就无法区分了,搞的我很烦恼,翻了下官方手册没找到,想想不应当呀,又翻...博文来自:明礼馨德的博客

  相信不少开辟人员对收集上的00nullfalse的比力司空见惯了,但我相信总有你忽略的细节,或者从变量布局角度出发,该若何注释。那么看看下边的验证吧。echophp版本:.PHP_VERS...博文来自:hann的专栏

  一、BOOL、bool1、类型分歧BOOL为int型,bool为博文来自:一个苦逼的法式员

  Boolean表达式一个值为true或者false的表达式。若是需要,非Boolean表达式也能够被转换为Boolean值,可是要遵照下列法则:所有的对象都被看成true。当且仅当字符串为空时,该字符...博文来自:lay的博客

  都选不出成果博文来自:Wewon_real的博客

  开辟中有时会碰到判断0,‘’,null和false几个值相互能否相等的问题。以下内容纯属转载。也就是说,在C和PHP等言语里,能够间接拿0暗示false,1或非0暗示true,可是,弥补一句,对于Ja...博文来自:糊口不止面前的苟且

  由于在其他书上看到undefined,null,空字符串都能看成false用在if语句判断,所以不断认为undefined,null,空字符串,false之间是相等的关系;前段时间在写代码时偶尔发觉n...博文来自:难

  博文来自:的博客

  转自判断缺失值一般采用 isnull(),生成的是所无数据的t...博文来自:xiaoxiaosuwy的博客

  起首来注释malloc(0)的问题,这个语法是对的,并且确实也分派了内存,可是内存空间是0,就是说前往给你的指针是不克不及用的,感受奇异吧?可是从操作系统的道理来注释就不奇异了,这要涉及操作系统维护内存的...博文来自:harhy的专栏

  if(),括号中能够是任何表达式,当然这个表达式的成果不必然是布尔值,ECMAScript会主动挪用Boolean()函数将这个表达式成果转换为布尔值。Boolean()函数对各类数据类型的转换成果为...博文来自:xiongzhengxiang的专栏

  这个问题,很成心思,出格奇异-若是你用null来判断null==false以及null==true,你会发觉前往的成果都是false,这个成果是不是让你感觉很奇异。-然后你能够再尝尝undefined...博文来自:的博客

  blank只是在填写表单的时候可认为空,而在数据库上存储的是一个空字符串;null是在数据库上表示NULL,而不是一个空字符串;需要留意的是,日期型(DateField、TimeField、DateT...博文来自:pygodnet的博客

  blank只是在填写表单的时候可认为空,而在数据库上存储的是一个空字符串;null是在数据库上表示NULL,而不是一个空字符串;  需要留意的是,日期型(DateField、TimeField、Dat...博文来自:d_hyacinth的博客

  ![]==[]//成果为truewhy?起首由于在js中;==会进行隐式类型转换;![]会转换为布尔类型false;在javascript的判断法则中:若是一方为布尔类型会先转换为数字;则右边转换为数...博文来自:tang的博客

  局部变量的默认值的问题今天看了几道Java认证工程师的试题,有一道题如下。局部变量boolean的默认值为A、false B、true C、null D、无默认值,必初始化 准确的谜底是D,其时我的答...博文来自:Thinkblog

  今天呈现了个奇葩的问题~、   Integer类型的值判断失败,好比我两个Integer参数,值都是9797,判断能否相等的时候,前往的都是不相等,为什么呢? Integer是对象,我们晓得==比力的...博文来自:luohao_的博客

  PHP对数组的操作曾经一套很是完整的函数,此中就包罗过滤空值。要过滤数组中的所有值为空的元素,可间接用array_filter()函数。例如:$entry=array(0=foo,1=&g...博文来自:豆先生的博客

  在编程言语中,逻辑表达式的值只要两种:TRUE和FALSE,而在数据库中却并非如斯。今天在MYSQL手艺黑幕一书中发觉了相关的学问:“关系数据库中起逻辑表达式感化的并非只要两种,还有一种称为三值逻...博文来自:吕纬甫

  区别:长度为0的数组称之为“空数组”,可是空数组也是一个对象,只是里面包含元素的个数是0;NULL数组是一个数据类型的空援用;留意:假设一个方式前往一个数组,若是它前往null,则挪用方式必需先判断是...博文来自:的博客

  在碰到多张表查询时,很可能查一个联系关系数值时,并没有这条联系关系记实,所以查询到的成果是null,凡是需要把这个成果处置成0或者其他。这时候就用isNULL(字段,0)如:selectcar_repair....博文来自:格乄子

  在web开辟中,经常会碰到一个需求是,判断变量为空(null)或者空字符串(),从而影响页面的展现逻辑,velocity中有响应的方式能够判断。当然也能够在java后端转化到无效值再判断。以下是本...博文来自:Code-lovers Learning Notes

  IAP升级功能编写初期的一些迷惑与疑问---完成功能后的总结 一,网上下载的例程,跳转部门的代码有差别,特别是用的汇编那句 二,关于跳转部门的代码的理解(转) 三,关于跳转时可否不消按键,用软件标记位...博文来自:Super_Demo的专栏

  此刻的Win7系统中安装的一般都是32位的Office,由于微软保举利用32位的Office,兼容性更强,不变性更好。在利用Access作为数据库的时候,C#操作Access,若是Access是acc...博文来自:写代码的蜗牛

  转载请说明出处:     在上一篇blog中引见过POI检索的利用,本篇blog次要引见公交消息检索和线路规划的内容。 公交消息检索     现实上,公交消息检索与POI检索、在线建议检索很是类似,也...

  Java中的ThreadLocal类答应我们建立只能被统一个线程读写的变量。因而,若是一段代码含有一个ThreadLocal变量的援用,即便两个线程同时施行这段代码,它们也无法拜候到对方的Thread...

  u011860731的专栏C#实现开辟windows办事实现主动从FTP办事器下载文件(自行设置分/时施行)

  比来在做一个每天定点从FTP主动下载节目.xml并更新到数据库的功能。起首想到用 FileSystemWatcher来监控下载到某个目次中的文件能否发生改变,若是改变就施行响应的操作,然后用timer...

  摘要 比来要发论文了,被知乎里人保举利用论文编译软件(CTex、LaTex和Overleaf之类),霎时感受本人用Word几乎Out了(书读少)。 学校里也传闻过LaTex,不外由于其时没怎样写过...

  rickypc的专栏vsftpd匿名用户上传和下载的设置装备摆设

  看到良多伴侣设置装备摆设vsftpd时不克不及利用匿名用户上传和下载(建立目次或删除、重定名文件夹),本文次要处理vsftpd的匿名用户权限配制问题。...

  flysharkym的专栏高斯夹杂模子(GMM)及其EM算法的理解

  一个例子高斯夹杂模子(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM能够拟合出肆意类型的分布,凡是用于处理统一调集下的数据包含多个分歧的分布的环境(或者是统一...

  小平子的专栏linux上安装Docker(很是简单的安装方式)

  比来比力有空,大四出来练习几个月了,作为练习狗的我,被叫去研究Docker了,汗汗! Docker的三大焦点概念:镜像、容器、仓库 镜像:雷同虚拟机的镜像、用俗话说就是安装文件。 容器:雷同一个轻量...

  我走巷子的博客将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化

  本篇文章是按照我的上篇博客,给出的改良版,因为时间无限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱愧,这个链接地址没有在这篇...

  Http和谈的主要性相信不消我多说了,HttpClient比拟保守JDK自带的URLConnection,添加了易用性和矫捷性(具体区别,日后我们再会商),它不只是客户端发送Http请求变得容易,并且...

  鹏霄万里展雄飞Android圆形图片--自定义控件

  klkxxy的博客三菱FX系列PLC与PC通信的实现之专有和谈(计较机连接)的法式设想之一

  阅读内容为:FX系列微型可编程节制器用户手册(通信篇)入彀算机链接功能章节。 采用本方式通信,pc端的实现,其实就是,把操作按照和谈(2种)翻译成响应的字符串,通过串口发送给plc。 编写一使用程...

  强连通分量及缩点tarjan算法解析

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   利用tarjan算法 在嵌套的多个环中优先获得最大环( 最小环就是每个孤立点)   定义: int Ti...

  九野的博客数据布局尝试:栈实现计较器(表达式计较)

  u013268685的专栏(有一种幸福叫AC,有一种等候叫AK)简单linux字符设备驱动法式与编程小技巧(上)

  这几天起头研究linux下的驱动法式编写了,碰到的问题也挺多的,好在linux是开源的,良多高人编写的技巧和思绪城市在他们的源代码中表现,我也在他们的源码中学到了良多好工具,我归纳了下贴出来,但愿本人...

  关于SpringBoot bean无法注入的问题(与文件包位置相关)

  开辟漫笔苹果充值常见的刷单手段和防备方式

  苹果充值的刷单现象在游戏行业很是遍及,良多团队挖空心思寻找缝隙以不法获利。常见的手段次要有以下六种: 伪造充值根据(receipt)以小额根据骗取大额商品 根据反复利用 根据反复利用信用卡黑卡/...

  分享学问、分享前进jquery/js实现一个网页同时挪用多个倒计时(最新的)

  jquery/js实现一个网页同时挪用多个倒计时(最新的) 比来需要网页添加多个倒计时. 查阅收集,根基上都是千遍一律的欠好用. 本人按需写了个.但愿对大师有用. 有用请赞一个哦! //js ...

  天命王子的博客.NET和java的RSA互通,仅此罢了

  lubiaopan的专栏Java设想模式进修06——静态代办署理与动态代办署理

  一、代办署理模式为某个对象供给一个代办署理,从而节制这个代办署理的拜候。代办署理类和委托类具有配合的父类或父接口,如许在任何利用委托类对象的处所都能够利用代办署理类对象替代。代办署理类担任请求的预处置、过滤、将请求分派给委托...

  小小本科生成长之路蜂窝小区最短距离的坐标系解法

  如下图所示,蜂窝小区,以1为核心,顺时针编号,编号最大限制为100000。求肆意两编号之间的最短距离。两个相邻小区的距离为1 示例:19到30的最短距离为5 实现如下三个接口: /**********...

  NYS001的专栏魔兽争霸3冰封王座1.24e 多开联机补丁 消息发布与收集点

  在MATLAB中,能够正文一段法式。 利用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 典范方式是用 if 0,但错误谬误是不敷直观,正文掉的内容仍然连结代码的颜色。此刻能够用 ...