日期:2014-05-16  浏览次数:20375 次

深入理解JavaScript运算符

+

+运算符可以进行加法运算或字符串连接。如果你想要的是加法运算,请确保两个表达式的值都是数字。

typeof

好多人认为typeof是一个函数,其实它是一个操作符,调用方法是typeof hello, 当然函数式的调用方法也可以: typeof(hello),这里还是推荐操作符式的调用方式。

typeof运算符用来判断变量的类型,它的返回值有"number", "string", "boolean", "undefined", "function"和"object"。如果运算数为一个数组或null,那么结果是"object",这就不准确了。

typeof是唯一一个可以对未定义变量进行操作的操作符,其它任何时候都不可以对未定义变量进行操作。

!!

!!不能算一个操作符,而是两个!的连续操作,它主要用于将给定的操作数转换成布尔类型,这样就可以方便的用于条件判断,比如var a = {}, !!a的值为true,所以if (!!a)的条件为真。

&&

&&的工作原理是运算符两边的表达式都为真时返回真,否则返回假。其实在JavaScript里如果第一个表达式的值为假则返回第一个表达式的值,否则则返回第二个表达式的值。例如:0 && 2的值为0,不是false,'' && 2的值为'',2 && {}的值为{},而不是false。

||

||的工作原理是如果第一个表达式的值为真则返回第一个表达式的值,否则返回第二个表达式的值。例如:2 || 0的值为2,[] || 2的值为[],0 || 2的值为0。

这个特性最常用的场合是给变量赋默认值。例如: a = a || {};这是创建空对象的常用写法,如果a已经存在,则自已赋值给自己,否则将空对象{}赋值经变量a。

delete

delete 运算符删除对以前定义的对象属性或方法的引用。例如:var o = {a: 1}, delete o.a;属性a被删除。delete运算符还可以用于删除数组元素,例如: a = [1, 2, 3], delete a[1];现在a的值为[1, undefined, 2],它只是把对应的元素变成undefined,数组长度不变。注意:delete不能删除系统自带的原始属性。

void

void 运算符对任何值返回 undefined。该运算符通常用于避免输出不应该输出的值,例如,从 HTML 的 <a> 元素调用 JavaScript 函数时。要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果。

===

=用于赋值,==用于判断两边的表达式的值是否相等,===则同时判断两边的表达式的值和类型同时相等,因为JavaScript是弱类型语言,变量声明时是不知道类型的,建议永远使用===来判断表达式的值是否相等。

new

new运算符用于使用构造函数创造对象。比如:new Book(),或者new Book,后面的括号不是必需的。具体可以参考 JavaScript构造函数原理。

函数调用运算符()

函数名字 + ()表示执行该函数。例如 var hello = function() {}, hello()则执行hello函数。

参考文献

  • <<JavaScript语言精粹>>

如需转载,请注明来自: BorisHuai前端修炼 > JavaScript运算符总结