1、相等(== )与全等(===)
1.1、相等 ==
操作符会先做转换操作(强制转型),然后比较相等性。具体转换规则:
- 如果有一个值是bool值,比较之前将其转为数值—-false转为0,true转为1
- 一个操作数是字符串,另一个是数值,在比较之前将字符串转为数值
- null和undefined相等
- 比较相等之前,不能将null和undefined转换未任何值
- 如果一个操作是NaN,所有比较都返回false。包括两个NaN比较。
- 如果两个操作数都是对象,则比较是不是同一个对象。
具体如下
null == undefined //true
"NaN" == NaN //false
5 == NaN //false
NaN == NaN //false
NaN != Nan //true
false == 0 //true
false == '0' //true
true == 1 //ture
true == 2 //false
undefined == 0 //false
null == 0 //false
'5' == 5 //true
var obj = {valueOf: function(){ x = 2; return 0 }}
0 == obj
1.2、全等 ===
全等操作符在比较之前不转换操作数,比较未转换的两个操作数。
null === undefined //false
false === 0 //false
false === '0' //false
true === 1 //false
undefined === 0 //false
null === 0 //false
'5' === 5 //false
var obj = {valueOf: function(){ x = 2; return 0 }}
0 == obj
var obj1 = {valueOf: function(){ x = 2; return 0 }}
1.3、相关链接
https://www.zhihu.com/question/31442029
2、Dom对象和Jquery对象
Dom对象:使用传统Js方法获得的对象,如document.getElementById(“domid”);
Jquery对象:使用Jquery类库获取的对象,如$(“#domid”),是通过Jquery包装Dom对象产生的对象,是Jquery独有的;
Jquery对象不可以使用Dom对象的方法,同样Dom对象也不可以使用Jquery对象的方法。
$("#domid").html(); //Jquery对象方法,获取id为domid的元素内的html代码,html()是jQuery特有的方法;
document.getElementById("domid").innerHTML;//Dom对象方法,同上
2.1、Jquery对象与Dom对象相互转换
- jquery对象转为Dom对象
//通过下标获取
$('#domid')[0];
//通过api获取
$('#domid').get(0)
- Dom对象转为Jquery对象
var dom = document.getElementById("domid");
var $dom = $(dom);