javascript中=、==、===区别详解
javascript中=、==、===区别详解
今天在项目开发过中发现在一个小问题。在判断n==""结果当n=0时 n==""结果也返回了true。虽然是个小问题,却有着大影响,所以决定深入分析下。
1、= 赋值运算符
//例:
var n=1;
console.log(n);//
n=n+1;
console.log(n);//
2、== 值比较运算符
值比较运算符在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较.
//例:
var a="1";
var b=1;
console.log(a==b);//true
//例:
var a="";
var b=0;
console.log(a==b);//true;
说明:由于==只是对值进行比较,并不会进行数据类型比较,当两边表达式不一致时,会隐式转换成相同的数据类型,然后进行比较,
所以
0 是逻辑的 false
1 是逻辑的 true
空字符串是逻辑的 false
var a="";//解析为了false
var b=0;//解析为了false
所以a==b false=false 结果true
3、=== 值类型比较运算符
===表达式不仅进行值比较,还要进行数据类型进行比较。当类型不同时不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型, 它是恒等运算符。
//例:
var a="1";
var b=1;
console.log(a===b);//false
//例:
var a="";
var b=0;
console.log(a===b);//false;
console.log(false===0);//false;
console.log("1" === 1);//false;
4、==与===区别
4.1在相同数据类型比较时==和===是有区别的。
4.2不同类型间比较,==会将两边表达式转化成同一类型后进行比较是否相等,===如果类型不同,不进行转换,结果就是不等。
javascript中=、==、===区别详解的更多相关文章
- JavaScript中this详解
这里的主题是 this ,不扯远了.this 本身原本很简单,总是指向类的当前实例,this 不能赋值.这前提是说 this 不能脱离 类/对象 来说,也就是说 this 是面向对象语言里常见的一个关 ...
- JavaScript中this 详解
涵义 this 关键字是一个非常重要的语法点.毫不夸张地说,不理解它的含义,大部分开发任务都无法完成. 首先, this 总是返回一个对象,简单说,就是返回属性或方法“当前”所在的对象. this.p ...
- javascript 中this详解
this是每一个想要深入学习Javascript的人必过的一关,我为this看过很多书查过很多资料,虽然对this有了一定的了解并且也经常使用this,但是如果有人问我 this是什么呀? 我依旧不 ...
- Javascript中DOM详解与学习
DOM(文档对象模型)是针对html和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次化的节点树,允许开发人员添加,移除和修改页面的某一部分.下面将从这几个层次来学习. 一.节点层次 ...
- JavaScript中typeof详解
[范围]typeof返回值范围: typeof返回值对应 类型 结果 String "string" Number "number" Boolean " ...
- Android中Intent传值与Bundle传值的区别详解
Android中Intent传值与Bundle传值的区别详解 举个例子我现在要从A界面跳转到B界面或者C界面 这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两 ...
- 基于python中staticmethod和classmethod的区别(详解)
例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 class A(object): def foo(self,x): print "executing foo ...
- DOS批处理中%cd%与%~dp0的区别详解
转载:https://www.jb51.net/article/105325.htm DOS批处理中%cd%与%~dp0的区别详解 Windows下批处理中%cd%和%~dp0都能用来表示当前 ...
- 命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解:
7.stat命令 stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称". stat命令可以用于查看文件的存储信息和时间等信息,命令stat anacon ...
随机推荐
- code manager tools svn服务安装配置
svn server 安装配置: 下载地址:http://www.visualsvn.com/server/download/ 然后安装图一步一步前进: 1.点击download now: 2.点击N ...
- Go语言学习笔记一(语法篇)
国庆节七天假期,这段时间刚好项目那边催的不是很紧,基本上每天都是白天重构一下项目代码,晚上自己学习.(大概是因为容总那边的人都去度假了把项目进度放慢了吧.这两天“彩虹”姐姐也来凑热闹,据说还是直接从澳 ...
- 《c程序设计语言》读书笔记-字符型0-9转为数字0-9
#include <stdio.h> #define Num 10 int atoi(char s[]); int main() { int c,i = 0; char s[Num]; i ...
- MTK android flash配置
关于6573集成MCP nandflash的方法,driver_allinone 和Memory Customer Document pdf的说明里面漏了很多细节.在此补上. 1.首先确认flash型 ...
- dotfuscator初步
从此链接下载的http://www.uzzf.com/soft/85836.html 1.安装之前,先去控制面板将VS自带的dotfuscator卸载掉 2.关闭360安全卫士 3.安装下载的程序 安 ...
- 线段树总结 (转载 里面有扫描线类 还有NotOnlySuccess线段树大神的地址)
转载自:http://blog.csdn.net/shiqi_614/article/details/8228102 之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnl ...
- CSS选择符类型
一.标签选择符:针对某一类标签,可以以标签作为选择符 <style type="text/css"> p{color:#F00; font-size:36px;} &l ...
- EASYUI+MVC4通用权限管理平台--前言
经过多年的管理信息系统的开发工作,吸取了工作中遇到的一些问题,经过自己的总结,形成了一套比较完整的管理信息系统的通用权限管理基础开发平台. 在软件的开发过程中我们首先需要解决的是UI问题,其次是浏览器 ...
- 编译器错误消息: CS0016: 未能写入输出文件
“/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入输出文件“c ...
- Servlet的页面跳转
Servlet的跳转 内部跳转 req.getRequestDispatcher() Server--->AServlet--->BServlet 两个S ...