美文网首页编程Web前端之路让前端飞
JavaScript 精粹 基础 进阶(2)表达式和运算符

JavaScript 精粹 基础 进阶(2)表达式和运算符

作者: 深沉的简单 | 来源:发表于2016-12-04 15:37 被阅读15次

    表达式和运算符

    JavaScript 表达式

    ** 表达式是指能计算出值得任何可用程序单元。——Wiki**

    表达式是一种JS短语,可使JS解释器用来产生一个值。——《JS权威指南》

    图片.png 图片.png 图片.png 图片.png 图片.png 图片.png 图片.png 图片.png

    JavaScript 运算符

    图片.png

    三元运算符

    c ? a : b
    var val = true ? 1 : 2; // val = 1
    //val值为true就会返回冒号前面的值,如果是false就会取冒号右边的值。
    

    逗号运算符

    a, b
    var val = (1, 2, 3); // val = 3
    //非常少见的,它会从左到右依次去计算表达式的值,最后会取最右边的值。
    

    delete 运算符

    delete obj.x;
    var obj = {x : 1};
    obj.x;                      // 1
    delete obj.x;
    obj.x;                      // undefined
    //delete 运算符就是删除对象上的属性,变量obj,obj.x被删除了。
    

    并不是对象上的所有属性都可以成功的被delete 掉的。

    var obj = {};
    Object.defineProperty(obj, 'x', {
      configurable : false, 
      value : 1
    });
    delete obj.x; // false
    obj.x;            // 1
    

    只有configurable : true, 为true,才可以被删除。

    in运算符

    window.x = 1;  //创建全局变量x为1
    x’ in window; // true   判断是否win下有x
    

    **instanceof, typeof运算符 **

    {} instanceof Object                // true  判断对象类型,基于原型链去判断的
    typeof 100 === ‘number’ // true  返回字符串,常用语原始类型,或者函数对象。
    

    new运算符

    function Foo(){}     //创建函数构造器,或者说创建空函数
    Foo.prototype.x = 1;     //prototype属性x
    var obj = new Foo();   //创建一个新的对象obj
    obj.x;  // 1   现在就能在prototype属性x拿到1
    obj.hasOwnProperty('x'); // false     来判断这个属性到底是这个对象上的还是这个对象原型链上,这个x当然不是属于直接对象上的属性,
    obj.__proto__.hasOwnProperty('x'); // true    拿到对象原型。可以发现x是对象原型上的属性,而不是这个对象本身上的属性。
    

    this运算符

    this;  // window (浏览器)  在全局下this会指向win
    var obj = {
      func : function(){return this;}
    }; 
    obj.func(); // obj
    //如果在对象值如果是个函数的话那么在这样的函数里,this会指向对象本身。
    

    void运算符

    void运算符是一元运算符,

    void 0  // undefined
    void(0) // undefined
    //不管值是多少都会返回undefined
    
    图片.png 图片.png

    相关文章

      网友评论

        本文标题:JavaScript 精粹 基础 进阶(2)表达式和运算符

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