1、[]
Javascript中,[]运算符可以用在数组和对象上用来创建数组或访问数组和对象的元素,如下面的例子:
//[]
var arr = ["a","b","c"];
alert(arr[0]);
var obj = {
username : "arthinking",
getUsername : function(){
alert(this.username);
}
}
for(var key in obj){
alert(obj[key]);
}
2、.
获取对象的属性的操作符,可进行多级操作,如取对象中的对象中的属性:
var obj = {
username : "arthinking",
getUsername : function(){
alert(this.username);
},
Jason : {
nickname : "arthinking",
getJasonInfo : function(){
alert(this.nickname);
}
}
}
alert(obj.Jason.nickname);
obj.Jason.getJasonInfo();
3、== === (!= !==)
3.1、==相等运算符
相等操作符会对两边的操作数进行类型转换。
① 相同的数据类型:则判断其等同性,即两个操作数是否相等
② 不同的数据类型:进行数据类型转换
null 和 undefined是相等的 数字的字符串比较,将字符串转换为数字做比较 数字和布尔类型,先把布尔类型转换为字符串 对象和数字/字符串比较,通过toString或valueOf方法将对象转换为原始类型。
3.2、===等同运算符
等同操作符不会对两边的操作数进行类型转换。
① 如果操作数的类型不同,直接返回false
② 如果操作数的类型相同:
都是数字,值相同返回true(NaN和Nan本身也不相等) 如果是字符串,比较字符串的值 引用类型,指向同一个对象,返回true 两个操作数均为null/undefined,则等同
3.3、修改相等运算符的比较规则:
跟Java类似的,使用相等运算符时,使用了顶层的toString()方法进行判断,所以如果对toString方法进行重写,就可以改变相等于算法的判断策略了:
var obj = {
username : "Jason",
toString : function(){
return "Jason";
}
}
var obj2 = "Jason";
alert(obj == obj2); //返回true
alert(obj === obj2); //返回false