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中=、==、===区别详解的更多相关文章

  1. JavaScript中this详解

    这里的主题是 this ,不扯远了.this 本身原本很简单,总是指向类的当前实例,this 不能赋值.这前提是说 this 不能脱离 类/对象 来说,也就是说 this 是面向对象语言里常见的一个关 ...

  2. JavaScript中this 详解

    涵义 this 关键字是一个非常重要的语法点.毫不夸张地说,不理解它的含义,大部分开发任务都无法完成. 首先, this 总是返回一个对象,简单说,就是返回属性或方法“当前”所在的对象. this.p ...

  3. javascript 中this详解

    this是每一个想要深入学习Javascript的人必过的一关,我为this看过很多书查过很多资料,虽然对this有了一定的了解并且也经常使用this,但是如果有人问我  this是什么呀? 我依旧不 ...

  4. Javascript中DOM详解与学习

    DOM(文档对象模型)是针对html和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次化的节点树,允许开发人员添加,移除和修改页面的某一部分.下面将从这几个层次来学习. 一.节点层次 ...

  5. JavaScript中typeof详解

    [范围]typeof返回值范围: typeof返回值对应 类型 结果 String "string" Number "number" Boolean " ...

  6. Android中Intent传值与Bundle传值的区别详解

    Android中Intent传值与Bundle传值的区别详解 举个例子我现在要从A界面跳转到B界面或者C界面   这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两 ...

  7. 基于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 ...

  8. DOS批处理中%cd%与%~dp0的区别详解

    转载:https://www.jb51.net/article/105325.htm DOS批处理中%cd%与%~dp0的区别详解     Windows下批处理中%cd%和%~dp0都能用来表示当前 ...

  9. 命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解:

    7.stat命令 stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称". stat命令可以用于查看文件的存储信息和时间等信息,命令stat anacon ...

随机推荐

  1. python抓取百度热词

    #baidu_hotword.py #get baidu hotword in news.baidu.com import urllib2 import os import re def getHtm ...

  2. 破解版sublimeText3重新安装Package Control方法

    我们都知道破解版的sublime是不能安装插件的,甚至连他的控制台都调用不出来,我也不知道这是为什么,但是,后来上网搜了很久,才发现,原来重新安装Package Control之后就可以的了.注意:因 ...

  3. dojo 十 ajax dojo/_base/xhr

    官方教程:Ajax with DojoAjax功能:1.从服务器加载静态数据2.从web服务中访问xml或json类型的数据3.将表单(form)数据发送到服务器4.刷新页面内容....Ajax在RI ...

  4. OpenMp并行提升时间为什么不是线性的?

    最近在研究OpenMp,写了一段代码,如下: #include<time.h> #include<stdio.h> #include<stdlib.h> #incl ...

  5. asp程序调试

    最近一直在开发asp的接口.调试一个很大的工作量.每次都让人疯狂.asp当中的提取方式时,因为没有智能提示能工具,很容易丢掉参数.而且,因为是弱类型,可以直接定义使用,不强制声明,看似很方便.很容易出 ...

  6. Android HTTPS(2)HttpURLConnection.getInputStream异常的原因及解决方案

    Common Problems Verifying Server Certificates InputStream in = urlConnection.getInputStream(); getIn ...

  7. 《OD大数据实战》Flume入门实例

    一.netcat source + memory channel + logger sink 1. 修改配置 1)修改$FLUME_HOME/conf下的flume-env.sh文件,修改内容如下 e ...

  8. 设置Sublime Text2 中代码提示

    打开sublime text的菜单 Preferences -> Package Settings -> GoSublime ->Settings – User  然后输入 { &q ...

  9. android 使用代码实现 RelativeLayout布局

    只需把代码copy进入oncreate方法即可运行 RelativeLayout rl = new RelativeLayout(this); Button btn1 = new Button(thi ...

  10. [ionic开源项目教程] - 第9讲 新闻详情页的实现

    目录 [ionic开源项目教程] 第1讲 前言,技术储备,环境搭建,常用命令 [ionic开源项目教程] 第2讲 新建项目,架构页面,配置app.js和controllers.js [ionic开源项 ...