JavaScript学习(二)ECMAScript基础 三
一、运算符
1、Instanceof运算符
在使用typeof运算符时采用引用类型的存储值会出现一个问题,就是无论该存储值是什么类型都返回Object。所以ECMAScript引入java种的另一个运算符instanceof。Instanceof的作用是与typeof一致的,不过instanceof要求开发者明确存储值的类型。
var strObject=new String(“abcd”);
alert(strObject instanceof String) 返回的结果是true
2、delete运算符
Delete运算符用于删除已经定义的对象的方法和属性,例如
var obj=new Object();
obj.colon=“blue”;
delete obj.colon;
但是delete运算符不能用来删除没有定义的对象的属性和方法。
3、void运算符
Void运算符返回的都是undefined值。这是为了避免返回不应返回的值。例如从HTML的<a>元素返回JavaScript函数时。要正确做到这一点,翻书不能有返回值,否则浏览器清空页面,输出函数的返回值。
<a href=”javascript:window.open(‘about:blank’)”>click me<a>
如果把上面代码写到HTML中,点击链接浏览器将清空页面输出[Object],要避免这种结果,就要将上面语句改为:
<a href=”javascript:void window.open(‘about:blank’)”>click me<a>
4 前增/前减运算符
前增元算就是在原有值的基础之上加1,用++表示。前减运算符就是在原来基础上减去1,用—表示。
++num 相当于num=num+1
5后增/后减运算符
后增元算就是在原有值的基础之上加1,用++表示。后减运算符就是在原来基础上减去1,
看到这你是不是很疑惑,为什么前增和后增,前减和后减好像一样啊。别急。前增/减是在计算表达式之前加1或减1,后增/减是在计算表达式之后加1或减1
num=10;
alert(++num) 输出为11
alert(num++) 输出为11
alert(num) 输出为12
看出区别没?
举个通俗的例子就是,你违法了,被县太爷抓去,县太爷可以先打你板子,再审你,还可以先审你,看你犯什么法,再打你。反正打你是一定的,只是顺序不同罢了。先打板子就相当于前增和前减,后打板子就相当于后增和后减。
1、 一元加和一元减运算符
一元加和一元减运算符其实就是正号和负号的作用。
一元加对数字没有作用,只是会对字符串产生作用,将字符串转换成数字,跟parseInt()作用是相似的,为什么说是相似而不是相同呢,因为一元加运算符只有对0X(十六进制)才转换成十进制,对0开始的字符串不能转换成十进制的。
如:+0XB 转换成11 而010则转换成10
一元减运算符就是求负。将字符串转换成数字后再求负。