js中==, !==, === ,!=的区别
在讨论比较符的时候我们先要来讨论哈js的类型,这样有助于我们从本质上了解原理。
下面是我找的资料加上个人的总结:
js中有5种数据类型:Undefined、Null、Boolean、Number和String。
还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。
JS里不区分整型和浮点型,
new function(),它不再是函数,而是一个JS对象,数组在JS里也被认为是对象,JSON当然也是对象,我们一般用{}扩起来,
依次来表示它是一个JSON对象,几个JSON对象组件的集合叫做JSON数组,也是使用[]括起,它和普通数组没什么区别,只是元素的类型不同而已。
Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
var i;
alert(i == undefined);//true
var i;与var i = 
undefined;这两句是等价的。
包含Undefined值的变量和未定义的变量是不一样的。
undefined通过==类型转化后会变成false。
即var m;
alert(!m);//true
Null类型也只有一个值:null.null表示一个空对象的指针。
var s=null;
alert(!s);//true
Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。
这个就没什么好说的了。
Number类型:整数和浮点数。
NaN:Not a Number。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。
例如:1/0 
返回的就是NaN。NaN的特点:1、任何涉及NaN的操作都会返回NaN。2、NaN对任何值都不相等,包括自己NaN本身。
针对NaN特性,JS内置了isNaN()函数,来确定数值是不是NaN类型。
现在在ts(完全兼容js)
如果你申明变量
var s=1/0; //infinity(无穷大)
alert(!s);//false
String 类型:
这个我就不讲了,没意思!
最后再说一个typeof操作符:对一个变量进行推断变量的类型
用法:typeof 95; 或者 typeof(95); 会返回"number".
好了我们在进入正题
var num = 1;
var str = '1';var test = 1;test == num   //true 相同类型 相同值 test === num  //true 相同类型 相同值test !== num  //false test与num类型相同,其值也相同, 非运算肯定是falsenum == str   //true  把str转换为数字,检查其是否相等。num != str   //false  == 的 非运算num === str  //false  类型不同,直接返回falsenum !== str  //true   num 与 str类型不同 意味着其两者不等 非运算自然是true哟js中==, !==, === ,!=的区别的更多相关文章
- jquery中read与js中onload区别
		在JavaScript中,onload函数是最经常使用的,几乎涉及到JavaScript的童鞋都少不了要接触它.这个函数的作用就是等待网页完全装载完了以后再去执行代码块内的语句,因为按照文档流的执行顺 ... 
- JS中 == ,===, !=, !==的区别
		一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false. === 判断规则 如果类型不同,就[不相等] 如果两个都是数值,并且是同一个值,那么[相等]:(!例外 ... 
- js中===与==区别
		本文出自:http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html 1.对于string,number等基础类型,==和===是有区别的 ... 
- js中==和===区别
		简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢, 这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换 ... 
- js中“==”与“===”区别
		直接上代码 if(2==='2'){ console.log(true) }else{ console.log(false) } //打印结果 false if(2=='2'){ console.lo ... 
- php和js中数组的总结
		php中数组的表示方法:array()或者[] js中数组的表示方法:new array()或者[] 一.php中初始化命名数组 在PHP中声明数组的方式主要有两种:一是应用array()函数声明 ... 
- js中== 和===中的区别
		<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ... 
- js中的等值运算符(抽象相等==与严格相等===的区别)
		js中的等值运算符 js中的相等分为抽象相等和严格相等,他们有什么区别呢. 在说具体算法前,先提下JS数据类型,JS数据类型分为6类:Undefined Null String Number Bool ... 
- js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)
		js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){ alert(array[i]) } //for ... 
- JS中isPrototypeOf 和hasOwnProperty 的区别          -------          js使用in和hasOwnProperty获取对象属性的区别
		JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ... 
随机推荐
- HDU1063 大数 java
			Exponentiation Time Limit: 2000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ... 
- jquery的validate.js 和 form.js 的使用方法
			在使用 Jquery 的方法的验证并且修改 原Form 表单的提交方式的时候,需要引用的文件有 <script type="text/javascript" src=&quo ... 
- asp.net 中 UEditor 图片和附件上传失败的处理方法
			1.0 找到 net 文件夹下面的 web.config 配置文件,注释掉如下的两句: 2.0 Uploader文件默认属性为编译,将其属性改为内容以后重新运行程序,图片上传成功. 3.0 删除 im ... 
- 数据库---MySQL练习题及答案
			一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ... 
- java环境搭建系列:JDK环境变量详细配置
			学习java语言,编写java程序,运行java程序,都离不开Java环境的支持,最重要的就是安装JDK,JDK给我提供了java程序的开发环境和运行环境.为了让java程序放在电脑的任意位置都可以执 ... 
- jquery 判断时间
			$("#gjlycon1").blur(function () { var v = $(this).val(); v ... 
- jQuery/Javascript 事件停止冒泡
			Demo: <div id='wrap'> <button id='btn'>btn</button> </div> 一般情况下,两个元素分别添加点击事 ... 
- 正则基础之——捕获组(capture group)
			1 概述 1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用.当然,这种引用既可以是在正则表达式内部,也可以是 ... 
- 遍历echsop的region表形成缓存的程序
			header("Content-type: text/html; charset=utf-8"); $con = mysql_connect("localhost&quo ... 
- ExtJs 使用点滴 十三 在FormPanel 嵌入按钮
			Ext.onReady(function () { //初始化标签中的Ext:Qtip属性. Ext.QuickTips.init(); Ext.form.Field.prototype.msgTar ... 
