运算符也叫操作符,可以对一个或多个值进行运算。
typeof
获得数据类型。
这个前面已经用很多了,都懂。
<script type="text/javascript">
var a=123;
var b=typeof a;
console.log(b);
</script>
这里将a的数据类型赋值给b,那么b的数据类型是什么?
<script type="text/javascript">
var a=123;
var b=typeof a;
console.log(b);
console.log(typeof b);
</script>
从这里可以看到,typeof的返回值为字符串。
算数运算符
“+ - * / %”:加 减 乘 除 取模。
加法
这里js支持+=的写法。
<script type="text/javascript">
var a=123;
console.log(a+=1);
console.log(a);
</script>
如果加法运算的数不是number类型,则会先转为number类型,再进行运算(字符串例外)。
<script type="text/javascript">
var a=true+1;
console.log(a);
var b=null+1;
console.log(b);
var c=NaN+1;
console.log(c);
var d="1"+1;
console.log(d);
var e="你"+"好";
console.log(e);
</script>
从上图可看到,true是1,null是0;与NaN相加还是NaN;与字符串相加则是先转换为字符串,然后拼接。
从这可以看到,有时候想把数据转为String类型,可以让它和空串相加。
<script type="text/javascript">
var a=123;
console.log(typeof a);
console.log(typeof(a+""));
</script>
对于加法,还有一些比较琐碎的。
<script type="text/javascript">
var a=1+1+"1";
console.log(a);
var b="1"+1+1;
console.log(b);
</script>
减法
<script type="text/javascript">
var a=12-3;
console.log(a);
var b=12-true;
console.log(b);
var c=12-null;
console.log(c);
var d=12-"3";
console.log(d);
</script>
从这里可以看到,只在加法中才有字符串拼接的操作。
前面用加法实现转字符串,这里可以用减法转Number。
<script type="text/javascript">
var a="123";
a=a-0;
console.log(a);
console.log(typeof a);
</script>
乘法
<script type="text/javascript">
var a=12*3;
console.log(a);
var b=12*true;
console.log(b);
var c=12*null;
console.log(c);
var d=12*"3";
console.log(d);
var e=12*undefined;
console.log(e);
</script>
注意,在加法已经提到,和NaN做运算后结果仍然是NaN。
除法
<script type="text/javascript">
var a=12/5;
console.log(a);
var b=12/true;
console.log(b);
var c=12/null;
console.log(c);
var d=12/"5";
console.log(d);
var e=12/undefined;
console.log(e);
</script>
取模
这个就是取余数。
<script type="text/javascript">
var a=12%5;
console.log(a);
var b=12%true;
console.log(b);
var c=12%null;
console.log(c);
var d=12%"5";
console.log(d);
var e=12%undefined;
console.log(e);
</script>