JavaScript中为什么null==0为false而null大于=0为true(个人研究)
生活中我们在不停的编写代码,写着JavaScript,很少有时间进行概念上的研究。我呢,今天闲来没啥事,研究了一下有关“null”和“0”的关系。希望大家看完了能有所收获。
代码如下:
alert(null>=0)
上面的代码会弹出什么来呢?False?True?其实是true。那么是为什么呢?为什么"null>=0"为true呢?null>=0的时候,强转为数字类型。在进行null>=0比较时,它是通过比较null<0得到的答案,如果a=b 为false,如果a=b 为true,即0<0为false,也就是null<0为false,那么null>0为true。所以 null>=0为true。
alert(null==0)
上面的代码会弹出什么来呢?False?True?其实是false。"null==0"的时候是特殊处理,不会转为数字类型,不会转化为数值,但如果左面是字符串右面是数值就会被转化。“null”是对象(空对象, 没有任何属性和方法)。而“0”是数字。前面说过“==”并不转换类型,只是比较。所以,为false。
为什么"null==0"为false,但是"null>=0"为true?这个小问题就分析到这里了。在分析的过程中我也学习到了很多东西,我想大家再看的时候也有一定的收获吧。以上全是个人观点,若有啥理解不到位的,欢迎提出来,大家一起学习哈。
相关推荐
-
老生常谈js中0到底是 true 还是 false
想到一个好玩的,运行如下 javascript : if ('0') alert("'0' is true"); if ('0' == false) alert("'0' is false"); 结果是,两次都 alert 了!那么 '0' 到底是 true 还是 false 呢? 答案是:在js做比较的时候,有这样的三条规则: • 如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1 • 如果比较的双方中有一方为number一方
-
javascript 使用正则test( )第一次是 true,第二次是false
1.前言 今天朋友问我一个问题,我现在需要多次匹配同一个内容,但是为什么我第一次匹配,直接是 true,而第二次匹配确实 false 呢? var s1 = "MRLP"; var s2 = "MRLP"; var reg = /mrlp/ig; console.log(reg.test(s1)); console.log(reg.test(s2)); 这时候你会发现,我们在连续使用一个正则匹配其他字符串的时候,第一次匹配是 true,而第二次匹配则是 false.
-
js中各种类型的变量在if条件中是true还是false
js的弱类型让人感觉很多东西都比较迷惑,例如变量在if条件中到底是true还是false,如果在强类型语言中将一个非boolean类型的变量放在if条件中时,是需要进行类型转换的,但是js不需要,下面来进行测试,测试常见的变量类型在if条件中的表现 !function test1(){ <span style="color:#ff0000;">var a,b=-1,c= 1,d= 0,e=null,f=undefined,g='',h="";</s
-
javascript中return,return true,return false三者的用法及区别
1.语法及返回方式 ①返回控制与函数结果 语法为:return 表达式; 语句结果函数的执行,返回调用函数,而且把表达式的值作为函数结果返回出去 ②返回控制无函数结果 语法为:return; 在大多数情况下,为事件处理函数如果让其返回false,可以防止默认的事件行为.例如,默认情况下,点击一个<a>标签元素,页面会跳转到该元素href属性指定的页. 而return false就相当于终止符,return true就相当于执行符. 在js中return false的作用一般是用来取消默认动作的
-
JS中的==运算: [''] == false —>true
计算下面表达式的值: [''] == false 首先,两个操作数分别是对象类型.布尔类型.根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为: [''] == 0 两个操作数变成了对象类型.数字类型.根据图1,需要将对象类型转为原始类型: 首先调用[].valueOf(),由于数组的valueOf()方法返回自身,所以结果不是原始类型,继续调用[].toString(). 对于数组来说,toString()方法的算法,是将每个元素都转为字符串类型,然后用逗号'
-
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
生活中我们在不停的编写代码,写着JavaScript,很少有时间进行概念上的研究.我呢,今天闲来没啥事,研究了一下有关"null"和"0"的关系.希望大家看完了能有所收获. 复制代码 代码如下: alert(null>=0) 复制代码 代码如下: 上面的代码会弹出什么来呢?False?True?其实是true.那么是为什么呢?为什么"null>=0"为true呢?null>=0的时候,强转为数字类型.在进行null>=0比
-
JavaScript中Null与Undefined的区别解析
在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. 复制代码 代码如下: var oValue; alert(oValue ==
-
JavaScript中的数学运算介绍
JavaScript中,数学运算可藉由两种操作来实现: 1.+.-.*./.%等操作符. 2.使用Math对象的计算函数.比如,用Math.pow(2,3)来计算2的3次方. 与Java不同,JavaScript中的数学运算不会抛出任何错误.计算结果的溢出.除以0.对负数进行开方这些操作都是合法的,其结果为JavaScript中的特殊值:正负Infinity(无限).正负0.NaN(非数): 1.正负Infinity.当计算结果比JavaScript所能表示的最大数(Number.MAX_VAL
-
详细总结Javascript中的焦点管理
焦点元素 到底哪些元素可以获得焦点呢?默认情况下,只有表单元素可以获得焦点.因为只有表单元素可以交互 <input type="text" value="223"> 让非表单元素获得焦点也是有办法的,先将tabIndex属性设置为-1,再调用focus()方法 <div id="test" style="height:30px;width:100px;background:lightgreen">div
-
JavaScript中的数据类型介绍
一.基本数据类型(原始值类型) 基本类型:字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symbol. 基本类型的变量是存放在栈内存(Stack)里,栈内存中保存了变量标识符和指向堆内存中该对象的指针. 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值. JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: var x; // x 为 undefined var x = 5; /
-
javascript中类型判断的最佳方式
javascript有8种数据类型 值类型 Number Null Undefined String Symbol Boolean BigInt 引用类型 Object Array Function 判断数据类型有以下4种判断方法 第一种方式: typeof typeof null ---> "object" typeof undefined ---> "undefined" typeof true | false ---> 'boolean'
-
javaScript中一些常见的数据类型检查校验
目录 前言 常见的几种数据校验方式 typeof操作符 instanceof constructor call && apply Object.prototype.toString结合Function.prototype.call && apply 其他校验数据类型的方法: 总结 源码地址 前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean
-
在JavaScript中使用JSON数据
JSON 是 JavaScript 原生格式,这意味着 在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包. JSON语法 JSON建构于两种结构: 对象--名称/值对的集合.不同的语言中,它被理解为对象,纪录,结构,字典,哈希表,有键列表(keyed list),或者关联数组.一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"'名称/值' 对
-
javascript中全局对象的isNaN()方法使用介绍
复制代码 代码如下: <html> <head> <title>全局对象的isNaN()方法</title> <script> /* isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字. 当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况. */ document.write(isNaN(123) + "<br/>"
-
区分JS中的undefined,null,"",0和false
在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,boolean类型的假值false等等.在JavaScript中也有很多种的"空值"和"假值",那么它们都有什么共同点和不同点呢? 其实标题里面我已经列出了JavaScript中所有的"空值"和"假值",除了boolean
随机推荐
- 精通 JavaScript中的正则表达式手机整理 推荐
- AngularJs Javascript MVC 框架
- asp下替换非数字为空的正则
- iOS开发之离线地图核心代码
- JavaScript使用Prototype实现面向对象的方法
- php smarty模版引擎中变量操作符及使用方法
- Yii2中关联查询简单用法示例
- Python中使用不同编码读写txt文件详解
- Python实现在Linux系统下更改当前进程运行用户
- 解析javascript中鼠标滚轮事件
- 原生JS和jQuery操作DOM对比总结
- 关于c++ 智能指针及 循环引用的问题
- 在JSP下如何计算时间差
- 在Nginx服务器中启用SSL的配置方法
- Java Calendar类常用示例_动力节点Java学院整理
- Android自定义view实现电影票在线选座功能
- Tunnel的具体配置
- JavaScript框架Angular和React深度对比
- C#实现状态栏提示信息功能的示例
- Python Opencv任意形状目标检测并绘制框图