JavaScript奇怪的比较——隐式类型转换
作者:Fdream 来源:Fdream博客 发布时间:2009-02-15 13:06:00
标签:类型转换,JavaScript,运算符
我们先看一下JavaScript中关系运算符的类型转换规则:
关系运算符(<、>、<=、>=)
试图将 expression1 和 expression2 都转换为数字。
如果两表达式均为字符串,则按字典序进行字符串比较。
如果其中一个表达式为 NaN,返回 false。
负零等于正零。
负无穷小于包括其本身在内的任何数。
正无穷大于包括其本身在内的任何数。
所以很容易理解下面这样的比较:
1 < NaN: false
1 >= NaN: false
'a' < 1: false
'a' >= 1: false但是下面的就很诡异了:
1 < '2a': false
1 >= '2a': false
'2a' < 1: false
'2a' >= 1: false按照一般的理解,这里的'2a'应该会被转换成2,可是实际上是被转换成了NaN,why?字符串转换为数字,有parseInt()、parseFloat()和Number(),在这里使用的就是Number转换。在用Number()进行转换时,'2a'是不能被转换成数字的。


猜你喜欢
- 前言这节课很重要。。界面整洁美观与否就看布局了。。这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了。。本文主要讲述Qt Desig
- 背景写一个python脚本,实现简单的http服务器功能:1.浏览器中输入网站地址:172.20.52.163:200142.server接
- 如果你想深入了解为什么mysql可以快速的进行检索数据,那么你一定要来了解一下mysql的索引原理思维导图简单理解你可以把索引理解为一本书的
- 要点说明在绘制散点图的时候,通常使用变量作为输入数据的载体。其实,也可以使用字符串作为输入数据的存储载体。下面代码的data = {“a”:
- 1.设置phpMyAdmin Language:Chinese simplified (zh-utf-8)MySQL 字符集:UTF-8 U
- axios库的 * 使用我们知道axios库的 * 的使用方式如下:// 添加一个请求 * axios.interceptors.reque
- 【OpenCV】⚠️高手勿入!⚠️ 半小时学会基本操作 ⚠️ 直方图概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 代码如下:Function splitx(strs1 As String, strs2 A
- 在电子产品的设计中,大家经常提到简洁是设计的重要元素。可是很多产品,不见得简洁就是第一要素。简洁的设计,必须是在对用户需求透彻理解,引导用户
- 一、前提条件安装了Fiddler了(用于抓包分析)谷歌或火狐浏览器如果是谷歌浏览器,还需要给谷歌浏览器安装一个SwitchyOmega插件,
- windows.open()方法详解:window.open(URL,name,features,replace)用于载入指定的URL到新的
- 本文实例为大家分享了javascript实现切割轮播的具体代码,供大家参考,具体内容如下效果代码<!DOCTYPE html>&
- 关于什么是用户权限,最简单的定义可能是,“用户能做什么和不能做什么。”在这里,简单的定义就相当不错了。 用户的权限分为3类: l 登录的权限
- 有人可能会问,为什么9号出现的补丁,到现在才发现问题?大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能
- 样式使用的是vux的cell组件 如下图的官方demo样子上图的样式需要修改一下,把 保护中 修改成一个图片 并且内嵌一个input typ
- MySql5.0以后均支持存储过程,最近有空,研究了一把这个。格式:以下为引用的内容:CREATE PROCEDURE
- Golang中的errorGolang中的 error 就是一个简单的接口类型。只要实现了这个接口,就可以将其视为一种 errortype
- 就是在mysql命令行登录的时候加上: --pager=more 参数可以使用linux下的more来分页,很好用
- 以select为例,如果select写在循环里,触发change事件时可能不只需要传递被选中项的值,还要传递index过去,来改变同一循环中
- 创建项目Location:新项目文件夹GOROOT:go 安装根目录Proxy:https://goproxy.io,direct重要:ht