1:所有的运算符都会强制要求他们的运算数为合适的类型。大部分运算符只会对原始值有效,这意味着对象在运算之前会被转换成原始值。【1,2】+【3】1,23.
2:['li',2]+[2]-li,22 [1,2]+{name:"ha"}--NAN辛亏是这个....
3:obj['age']=20,如果是方括号给对象加属性的话就这样玩。
4:=== 相等的如下。
5:undefined===undefined ,,null===null,undefined==null,+0===-0,NaN!==NaN 特别要注意的就是两个对象的比较。
6:陷阱1:
7:陷阱2:宽松相等中的字符串。
8陷阱3:宽松相等中的对象。如果比较对象和非对象,他们会被转换为原始值,这将导致一些奇怪的结果。
9:用法:检测 undefined,null if(x!==undefiend&&x!==null){}--更简单的 if(x!=null)实现的效果是一样的。
10:检测处输入值是什么? if(Number(x)==123){}
11:加号运算符注意的两点:只要一个运算数是字符串,另一个就会转换为字符串相加。否则转变为两个运算数并且相加算他们的和,包括布尔值。。所以要特别注意他们的顺序,因为顺序的改变会造成这两中情况的出现。
12:布尔运算符(二元运算符和逻辑非)数字运算符(数字运算符,位运算符)都是那种只有一个值,并且返回结果是原值的例子。
13:vodi运算符,是用来表示那些不需要返回值的地方。比如你添加一个标签。当你想要打开一个新的窗口而不想要改变当前的显示内容的话就可以这样 javascript:viod window.open('http://example.com')
14:转换为flase的boolean()函数值有这些。NAN,0,'',false,undefied,null. 注意Boolean('false').这里false是一个字符串,所以他是正确的。true.
15:三种转换布尔值得方法:blloeab(). value?true:false. !!value.
16:除了上面列举的那些,所有其他的都是真值,甚至空对象,空数组,以及new Blloean(false)。
17:逻辑运算符:总是会返回两个中间的一个值,一旦一个返回,后面的东西就不看了。
18:逻辑运算符:为选的东西添加一个默认值。text=text||'';还可以为结果添加默认值。总之就是有和没二选一的时候可以用这个。
19:Boolean()函数的两种用法,1:boolean(value) 2:new Boolean(flase);
19:
{}=='[object,object]'-true ['123']==123 []==0--true
然而,只有当两个对象是同一个对象时才会相等,这意味着没法真真比较两个包装对象。都是错误。false.
7:宽松相等和布尔转换不一样。他们的原理不一样。
2==true //2==1--false
2==false //2==0--false
1==true //1==1--true