JavaScript学习笔记第一天——运算符
JavaScript的运算符包括算数运算符、逻辑运算符、比较运算符、赋值运算符等,运算符优先级由高到低排列如下图所示。
其中值得注意的运算符有&&、||、++、--、+。
1、运算符“+”
使用运算符(+)时,如果某个运算数是字符串,采用下列规则:
①如果两个运算数都是字符串,那么加性运算符(+)的意义是连接符,将第二个字符串连接到第一个字符串上;
②如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。
2、&&、||
在js逻辑运算中,0、""、null、false、undefined、NaN 都会判断为为false,其他的皆为true。
&&和||遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反第一个表达 式为真就不会去处理第二个表达式,。需要注意的是在js中它们的返回值。
var attr = true&&4;
alert(attr);//结果不是true或false,而是4.
var attr = attr||"";//常用来判断一个变量是否已定义,如果没有定义给它一个初始值,用来定义默认值
更深一层次,js中的&&和||可以用来精简代码,需要注意的是这会降低代码的可读性,注意添加注释。
if(a>=5){
alert("sss");
}
可以写成:
a>=5 && alert("sss");
假设对成长速度显示规定如下:
成长速度为5显示1个箭头;
成长速度为10显示2个箭头;
成长速度为12显示3个箭头;
成长速度为15显示4个箭头;
其他都显示都显示0各箭头。
实现方法:
①差一点的if...else
var add_level = 0;
if(add_step == 5){
add_level = 1;
}
else if(add_step == 10){
add_level = 2;
}
else if(add_step == 12){
add_level = 3;
}
else if(add_step == 15){
add_level = 4;
}
else {
add_level = 0;
}
②强大版
var add_level = (add_step==5 && 1)||(add_step==10 && 2)||(add_step==15 && 3)||(add_step== 20 && 4)||0;
③更强版
var add_level = {'5':1,'10':2,'15':3,'20':4}[add_step]||0;
3、++、--
前置的++、--为马上执行,后置的++、--当再一次使用该变量时才执行++、--,需注意++、--的优先级比算 术运算符的优先级高。下面有几个小例子:
var a = 100;
var b = 100;
var c = ++a +b;//201
var c = a+++b;//200
var c = a+++b+a;//301
var c = a++-10+--a;//c=190,a=100
function test(){
return a--;
}
alert(test());//100
alert(a);//99