zoukankan      html  css  js  c++  java
  • js操作符+和()

         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数据格式,代码块。 

  • 相关阅读:
    Jzoj3756 【NOI2014】动物园
    Bzoj5088 HDU 6000 Wash
    Bzoj5088 HDU 6000 Wash
    Jzoj3486 道路改建
    Jzoj3486 道路改建
    合作网络
    工人的请愿书
    划分成回文串
    单向TSP
    旅行
  • 原文地址:https://www.cnblogs.com/leaf930814/p/6790613.html
Copyright © 2011-2022 走看看