js基础 运算符

1、一元运算符数组

++ --  + - 分别 为:自增,自减,正,负函数

2、特殊的几个运算符测试

= 赋值运算符   + 字符串运算符    , 逗号运算符编码

1.=   spa

说明:=为赋值  ==  比较中的等于(值相等便可) === 比较中恒等(值和原理都相等)code

2.+对象

说明:正常状况下,在运算中,数值类型的优先级是最高的,任何类型的变量都要转换成数值类型进行运算,而后若是是比较就返回出boolean值,若是是算术运算则返回运算结果。可是在出现‘+’时,字符串的优先级最高,任何类型都要转换成String类型。例:ci

var box=10,
		box1=20,
		box2='年龄:';
	alert(box+box1+box2);//30年龄:
	alert(box2+box+box1);//年龄:1020
	alert(box2+(box+box1));//年龄:30

3.,字符串

说明:能够在一条语句中执行多个操做,如上面声明多个变量、数组、对象中多个属性数学

3、算术运算符

+ - * / %  +=   -=  *=  /=   %=   若是在算术运算符的值不是数值,则后台会使用Number()转型函数将其转换为数值(隐式转换)。正常来讲,算术运算符和正常的数学运算差很少,括号的优先级是最高的。须要注意的是:String类型在进行Number()转换时,要遵循的规则(有一个非数字就是NaN);还有'+'与字符串在一块儿时,再也不是算术运算符,而变成连字符。还有,对象的算术运算,空对象和返回值是字符串的对象,会返回NaN(空对象转数值是NaN,有返回值的经过 toString方法来转换)

var num=10;
	alert(num+=num);//20   此时 num=20
	alert(num-=num);//0    此时 num=0
	alert(num*=num);//100  此时 num=0
	alert(num/=num);//1    此时 num=0/0=NaN 
	alert(num%=num);//0    此时 num=NaN   任何和NaN进行运算的结果都是NaN 
	//注:若是直接这么运行下去,则会出现下面的值是NaN的问题,由于num被赋了新的值,并非最开始的10,这个其实在后来是运行了的。想要输出上面所想要的结果,只能一个一个的运行。

4、关系运算符

<  >  <=   >=  == !=   ===  !==

规则:1.有一个数值,都要转换成数值进行比较。2.有字符串时,进行字母的ASCII编码进行比较,且只比较一位,再也不比较第二位(字符串和数值比较时,也是这个规则)。3.若是是对象,与对象的返回值进行比较。4.NaN不等于任何数值,他自己也不相等,5.对象则比较他们是否指向同一个对象,指向同一个对象则返回true,不一个则返回false,且两个空的对象也是不相等的,由于他们存放的位置不同,因此不相等。6.null与undefined的值是相等的,可是类型是不等的。

特殊值对比表

表达式
null==undefined true
'NaN'==NaN false
5==NaN false
NaN==NaN false
true==1 true
false==0 true
true==2 false
undefined==0 false
null==0 false
'100'==100 true
'100'===100 false
undefined==null true

5、逻辑运算符

&&  ||  !

1.&&

有一个操做数为假返回值 就是假。当第一个操做数是真是才会运行第二个操做数。当含有对象时,若是第一个操做数为假,则返回false,而不执行对象;当含有null,undefined时,若是第一个操做数为真,则分别返回null或undefined,不然会返回false

2.||

有一个操做数为真则返回真。当第一个操做数的结果为true时,就不会再执行第二个操做数了。当含有对象时,若是第一个操做数是对象,则返回第一个操做对象;若是第二个操做数是对象,只有当第一个操做数是false时,才会返回第二个操做数对象,不然返回true。当含有null,undefined时,当第一个操做数和第二个操做数都是null,undefined时,才返回null,undefined(这个我不是特别肯定,可是又找不到验证的方法,先这样记着);

var  box= (5>4) || null;
	var  box1= (5<4) || null;
	var  box3= null || (5>4);
	var  box4= null || (5<4);
	alert(box+','+box1+','+box3+','+box4);//true,null,true,false

3.!

非真即假,非假即真,  !!为取反再取反

6、三元运算符

= 以后是判断条件  ? 是执行   第一个是真的时候执行   :后面是假的时候执行

var box5 = 5>4 ? alert('真'):alert('假'); //真
	//至关于
	var box5='';
	if (5>4) {
		box5='真';
	} else {
		box5='假';
	}
	alert(box5);//真
	//这两个是不同的,可是具体哪儿不同,忘掉了
	//判断变量存在不存在
	//var x=(typeof f)!='undefined' ? alert(f) : alert(null);//这个是为了测试,下面才是实际应用
	var y=(typeof z)!='undefined' ? z : z=null;
	alert(y);

	var c;
	if((typeof cc)!='undefined'){
		c=cc
	}else{
		c=null;
	}
	alert(c);//null
相关文章
相关标签/搜索