Javascript核心读书有感之表达式和运算符(13)

需要注意的是,删除属性或删除数组元素不仅仅设置了一个undefined值,当删除一个属性时,这个属性不复存在。读取一个不存在的值将会返回undefined.关于delete删除还有严格模式下的一些情况,需要学习的人自己试验,这里给一些例子。

复制代码 代码如下:


            var o = {x: 1,y: 2};
            delete o.x; //删除一个对象属性,返回true
            typeof o.x; //属性不存在,返回"undefined"
            delete o.x; //删除不存在的属性,返回true;
            delete o; //不能删除通过var关键字声明的变量,返回false
            delete 1; //参数不是一个左值。
            this.x = 1;// 给全局定义一个属性,这里没有使用var
            delete x ; //试图删除它,在非严格模式下返回true
                       //在严格模式下回抛出异常,这时使用"delete this.x"来代替
             x;        //运行时出错,没有定义x

6章第三节还有关于delete的讨论。

iii.void运算符。

void是一元运算符,在出现操作数之前,操作数可以是任何类型。这个运算符并不是经常使用:操作数会照常计算,但会忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用时使用void来程序更有意义。

这个最常用的带客户端url.在url写带有副作用的表达式,而void则让浏览器不显示在这个表达式的运算结果。

复制代码 代码如下:


    <a href="javascript:void window.open();">new</a>

iiii.逗号运算符。(,)

逗号运算符是二元运算符,它的操作数可以是任意类型。它首先计算左操作数,然后计算右操作数。

复制代码 代码如下:


    i = 0, j = 1, k = 2;

它和下面的代码基本上等价的

i = 0; j = 1; k = 2;
总是会计算左侧的表达式,但计算结果忽略掉,也就是说,只有左侧表达式具有副作用,才会使用逗号运算让代码变得更通畅。逗号运算符最常用的场景是for循环中,这个for循环通常有多个循环变量。

复制代码 代码如下:


             //for循环中的第一个逗号是var语句的一部分
             //第二个逗号是逗号运算符
             //它将两个表达式(i++和j++)放在一条(for循环中)语句中
            for (var i = 0, j = 10; i < j; i++, j--);
            console.log(i + j);

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgffgj.html