美文网首页
js运算符优先级

js运算符优先级

作者: 孙新强 | 来源:发表于2018-01-01 15:25 被阅读0次
    1. 优先级

    运算符的优先级决定了表达式中运算执行的先后顺序,优先级高的运算符最先被执行

    1. 结合性

    结合性决定了拥有相同优先级的运算符的执行顺序

    1. 汇总表

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

    1. 属性运算符 . 和 []
    1. object.property

    property 必须是有效js标识符 不能以数字开头

    如果对数字字面量使用方法,并且数字文字没有指数且没有小数点,请在方法调用之前的点之前留出空格,以防止点被解释为小数点

    77 .toExponential();
    // or
    77
    .toExponential();
    // or
    (77).toExponential();
    // or
    77..toExponential();
    // or
    77.0.toExponential();
    // because 77. === 77.0, no ambiguity
    
    1. [key] 如果key 不是字符串 会强转成字符串
    var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
    object[foo] = 'value';
    console.log(object[bar]===object[foo]);//true
    
    1. new 运算符

    当代码 new Foo(...) 执行时:

      1. 一个新对象被创建。它继承自Foo.prototype。

      2. 使用指定的参数调用构造函数Foo,并将 this绑定到新创建的对象。

      3. new Foo 等同于 new Foo(),只能用在Foo 不传递任何参数的情况。

      4. 如果构造函数返回了一个“对象”(返回其他类型无效),那么这个对象会取代整个new出来的结果。

       如果构造函数没有返回对象,那么new出来的结果为步骤1创建的对象。
    (一般情况下构造函数不返回任何值,不过用户如果想覆盖这个返回值,可以自己选择返回一个普通对象来覆盖。当然,返回数组也会覆盖,因为数组也是对象。)

    优先级面试题:https://www.v2ex.com/t/351261

    相关文章

      网友评论

          本文标题:js运算符优先级

          本文链接:https://www.haomeiwen.com/subject/jxytnxtx.html