关闭

JS -- =、==和===

标签: javascript
156人阅读 评论(0) 收藏 举报
分类:

1、“=”为赋值运算符


2、“==”为等于,两边值类型不同的时候,要先进行类型转换,再进行比较。

①如果两个值类型相同,进行 === 比较。 
②如果两个值类型不同,则可能相等。根据下面规则进行类型转换再比较: 
a、如果一个是null、一个是undefined,那么相等。 
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
c、如果任一值是 true,将其转换成1再比较;如果任一值是 false,将其转换成0再比较。 
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,是利用toString或者valueOf方法。 JS核心内置类会尝试valueOf先于toString。但是对于Date,是利用toString转换。 
e、任何其他组合,都不相等。 


3、“===”为严格的等于,不做类型转换,类型不同的一定不等。

①如果类型不同,就不相等。
②如果两个都是数值,并且是同一个值,那么相等;但是,如果其中至少一个是NaN,那么不相等。判断一个值是否是NaN,只能用isNaN()来判断。
③如果两个都是字符串,每个位置的字符都一样,那么相等;否则,不相等。
④如果两个值都是true,或者都是false,那么相等。
⑤如果两个值都引用同一个对象或函数,那么相等;否则不相等。
⑥如果两个值都是null,或者都是undefined,那么相等。


例如:

var a = 2; 
var b = "2"; 

alert(a==b); //true 
alert(a===b); //false 


0
0
查看评论

JavaScript与NodeJs

这些年WEB的发展应该可以称得上是突飞猛进了。当然这得益于互联网的迅速普及,以及移动网络越来越强的数据能力。我不认为技术的发展有什么特殊的动力,其实技术的发展的动力往往都十分的简单,那就是人们的需要。互联网发展这么多年,人们的需要也会越来越多,比如,希望反应更快,希望效果更好,随着手持设备的普及,可...
  • jakelong
  • jakelong
  • 2013-12-21 09:59
  • 11753

js中this和that

that换成this;setInterval和setTimeout属于window的方法,window为它们的对象。
  • u010289760
  • u010289760
  • 2015-11-21 22:05
  • 2977

简述js中 for in 与 for of 区别

for in是ES5标准,遍历key. for of是ES6标准,遍历value.for (var key in arr){ console.log(arr[key]); }for (var value of arr){ console.log(value); }
  • ForMyQianDuan
  • ForMyQianDuan
  • 2017-06-07 23:55
  • 1255

javascript中&和&&的区别?

在Java中&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。 javascript 就完全不一样了,在javascript中&am...
  • bz151531223
  • bz151531223
  • 2015-10-21 16:25
  • 2464

js中两个等号(==)和三个等号(===)的区别

js中两个等号(==)和三个等号(===)的区别: 1. "=="表示:equality -> 等同  的意思,"=="使用两个等号时,如果两边值的类型不同的时候,是要先先进行类型转换后,才能做比较。 2. "==="表...
  • LeeJay5
  • LeeJay5
  • 2015-01-20 14:21
  • 3927

JSP和JS的区别(新手必读)

该篇入门转自《JSP高级编程》一书。希望大家在看完本入门之后能分清楚jsp(Java Server Pages)和js(java script)的区别。希望这两篇文档对大家能有所帮助!.............................................................
  • free_kyy
  • free_kyy
  • 2006-09-06 17:36
  • 10761

js快速求数组之和

js快速求数组之和 eval(arr.join(“+”));var arr=[12,312,3,67,3,423,878,21]; alert( eval(arr.join("+")))原文地址:https://segmentfault.com/n/13300000043570...
  • elsery
  • elsery
  • 2016-03-17 15:23
  • 2675

js和jq常用方法区分

这一篇以对比的方式记录一些js和jq常用的方法,便于查阅和区分。
  • u013938465
  • u013938465
  • 2015-07-23 16:28
  • 1123

JS运算符&&和|| 及其优先级

今天看了一段YUI compressor压缩的js代码:   userNum && (ind += index,ind >= userNum && (ind -= userNum),ind 直接疯掉了,估计一下子没几个人能看...
  • lidiansheng
  • lidiansheng
  • 2012-09-10 11:50
  • 28605

PHP如何与JS进行交互?

今天又突然发现了一个技巧,就是PHP可以传值给js,如何做呢? 原来PHP的原理是这样的:PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程:(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将...
  • jallin2001
  • jallin2001
  • 2009-11-13 11:51
  • 15532
    个人资料
    • 访问:121937次
    • 积分:1930
    • 等级:
    • 排名:千里之外
    • 原创:73篇
    • 转载:1篇
    • 译文:1篇
    • 评论:7条
    文章分类
    最新评论