js操作符+和()

时间:2022-05-22 08:57:19

ECMA-262 描述了一组用于操作数据值的操作符,包括一元操作符、算数操作符逻辑操作符、关系操作符、赋值操作符、字符串操作符、对象操作符等。ECMAScript 操作符的与众不同之处在于,它们能够适用于很多值,例如字 符串、数字值、布尔值,甚至对象。不过,在应用于对象时,相应的操作符通常都会调用对象的 valueOf() 和(或)toString()方法,以便取得可以操作的值。

下面说说几个比较流行的用法。

1、使用+操作符转变成Number类型。

或者前面讲到的高维数组降阶等;

比如: +(new Date())                       //转成时间戳

“*******.js?v=”+~(-new Date())  //防止缓存增减版本号

2、短路

&&:用来检测对象是否存在并进行后续操作。

if(object && object.name && object.name = 'leaf'){ }//先判断object是否存在,存在才继续往后解析。

|| :用来给函数参数提供默认值。

function(obj){

  obj = obj ||  {}   //如果没传参,则将一个空对象传给obj;

}

3、分组操作符(),括号内只能包含表达式

var num = (1,323,5,6)  //num等于最后一个数;

转化为表达式: eval('('+json+')');

(function f(){})()   //加上(),函数声明就可以直接调用了,这是因为()把里面的函数声明转成表达式了。

//再看一个

  try {
    (var x = 5); // 分组操作符只能包含表达式,不能包含语句(这里的var就是语句)(x=5)这就是正确的。
  } catch(err) {
    // SyntaxError(因为“var x = 5”是一个语句,而不是表达式——对表达式求值必须返回值,但对语句求值则未必返回值)
  }

4、使用花括号({})来定义对象字面量,JSON数据格式,代码块。