1.{}:用于定义一个包含不同属性的对象
/*eg: */ var user = {};//定义一个对象,这个对象中的值是以键值对的方式储存,也可以储存函数
user.name='jack';//保存值
user.sex = '男';
user.drink = function(){alert("drink")};
console.log(user);
浏览器输出:Object {name: "jack", sex: "男", drink: function}
/* eg:*/ var user = {'name':'jack','sex':'男','drink':function(){alert(‘drink’)}}; //初始化的时候就定义数值
console.log(user);
浏览器输出:Object {name: "jack", sex: "男", drink: function}
2.[ ] :用于定义个数组
/* eg :*/ var array = ["jack","john","bob"];
console.log(array);
var array1 = new Array();
array1[0]="jack";
array1[1]="john";
array1[2]="bob";
console.log(array1);
浏览器输出:["jack", "john", "bob"]
["jack", "john", "bob"]
3.( ) :与匿名函数结合使用
!function(){
alert("()");
}();
(function(){
alert("a");
})();
(function(){
alert("a");
}())
//!和()的作用是让浏览器将函数function解析成逻辑表达式先执行,然后再执行后面的().在表达式后面加上()后,
// 他会立即执行,也叫自执行函数(立即执行函数)
详细可以参看这里:
http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html
module模式可以看这里:http://www.cnblogs.com/TomXu/archive/2011/12/30/2288372.html】
4.&& 和 || 以及 | 和 &
·js中的逻辑判断遵循短路原则即
··&& 从左到右一项 一项的执行,如果每一项都是是true,则一直执行下去,执行到最后一个,并将最后一个计算的结果返回;如果中途遇到了false,则返回false,不再向下执行
··|| 从左到右一项一项的执行,如果该项的执行结果为false,则继续执行下去,执行到最后一个都是false,则返回false;如果中途执行结果为true,则将该项执行结果返回。
·栗子
var a = 4>3&&5&&4;//4
var b = 3>4&&5;//false
var c = 4>3&&5>4;//true
var d = 4>3||5;//true
var e = 3>4||5||5>4;//5
var f = 4>3||5<4||3;//true
·| & 不属于短路运算符,在js中|是按位或的意思,&是按位与的意思,要转换为二进制之后再按位运算
如:10&3 →1010 & 0011 →0010 答案为2;
·首先undefined/null/NaN 在进行逻辑判断时都返回false
·typeof:一种元运算符,返回一个字符串,该字符串说明运算数的类型,有六种可能返回值
··①object ②number ③boolean ④function ⑤string ⑥undefined
var a = 0/0 ;
var b = null;
var c;
alert(typeof a);//NaN 为 number
alert(typeof b);//null /[] /{}为 object
alert(typeof c);//undefined
alert(typeof "abc");//string
alert(typeof true);//boolean
alert(typeof function(){});//function
·如何去判断
··判断undefined
var a;
var b = undefined;
if(typeof a =="undefined"){//建议使用此方法
alert("undefined 1");
}
if(b==undefined){ //不建议使用,虽然此时也可以通过。如果此时b为未声明,则会报错,而typeof不会报错,也不会判断通过;
//另外==还会牵扯到类型转换的问题
alert("undefined 2");
}
··判断null:此处要注意 undefined == null返回true
var a = null;
if(!a && typeof a != "undefined" && a!=0){
alert("null");
}
··判断NaN
var a = 0/0;
if(isNaN(a)){
alert("NaN");
}
··null 和undefined时通过,利用null == undefined
var temp;
if(temp ==null){//或者temp == undefined
alert("true);
}
···null/undefined/NaN ,一般使用这个方法足够了
var a = null;
if(!a && a != 0){
alert("true");
}
·涉及到的== 和===的区别
··== 若比较的两个属于不同数据类型,则会进行强制类型转换成同一种类型,再进行比较值是否相等
··=== 若比较的两个属于不同数据类型,则直接返回false,若为同一类型则直接比较值是否相等