zoukankan      html  css  js  c++  java
  • 《JS权威指南学习总结--4.13运算符》

    一.typeof运算符

        typeof是一元运算符,放在其单个操作数的前面,操作数可以是任意类型。返回值为表示操作数类型的一个字符串。

        例如:

        typeof x             返回值

         undefined         "undefined"

         null                  "object"

         true或false        "boolean"

         任意数字或NaN    "number"

        任意字符串           "string"

         任意函数             "function"

         任意内置对象(非函数)   "object"

         任意宿主对象            由编译器各自实现的字符串,但不是"undefined","boolean","number","string"

       typeof最常用的用法是写在表达式中:

         (typeof value=="string") ? "'" + value + "'" : value

     二.delete运算符

         delete是一元操作符,它用来删除对象属性或者数组元素。delete是用来做删除操作的,不是用来返回一个值的。

         var a=[1,2,3];

          delete a[2]; //删除最后一个数组元素

         2 in a //=》false : 元素2在数组中已经不存在了。

         a.length  //=》3 注意:数组的长度并没有改变,尽管上一行代码删除了这个元素,但删除操作留下了一个“洞”,实际上并没有修改数组的长度。

         需要注意的是:

            删除属性或者删除数组元素不仅仅是设置了一个undefined的值。当删除一个属性时,这个属性将不再存在。

            读取一个不存在的属性将返回undefined,但是可以通过in运算符来检测这个属性是否在对象中存在。

            并不是所有的属性都可删除,一些内置核心和客户端属性是不能删除的,用户通过var语句声明的变量不能删除。同样,通过function语句定义的函数和函数参数也不能删除。

            例如:

             var o={x:1,y:2};  //定义一个变量,初始化为对象

             delete o.x;     //删除一个对象属性,返回true

             typeof o.x     //属性不存在,返回"undefined"

             delete o.x      //删除不存在的属性,返回true.

            delete o         //不能删除通过var 声明的变量,返回false  在严格模式下,将抛出异常

             delete 1;    //参数不是一个左值,返回true,

             this.x=1     //给全局对象定义一个属性,这里没有使用var

             delete x;    //试图删除它,在非严格模式下返回true   在严格模式下会抛出异常,这时使用"delete this.x"来代替

               x;            //运行时错误,没有定义x

     三.void运算符

         void是一元运算符,它出现在操作数之前,操作数可以是任意类型。这个运算符并不是经常使用。

         操作数会照常计算,但忽略计算结果并返回undefined.

         由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具有语义.

         这个运算符最常用在客户端的URL-------javascript:URL中,在URL中可以写带有副作用的表达式,而void则让浏览器不必显示这个表达式的技术结果。

         例如:

            <a href="javascript:void window.open();">打开一个新窗口</a>

           <a href="javascript:void(0);">打开一个新窗口</a>

           

  • 相关阅读:
    谷歌浏览器解决跨域
    vue 解决跨域问题
    nth-of-type & nth-child 的区别
    uniapp 小程序 获取位置信息
    笔记本使用命令创建wifi
    express每次修改后重新启动
    express 一个js文件中写多个路由 然后使用
    小程序分享到朋友圈
    小程序分享给朋友
    小程序客服功能实现
  • 原文地址:https://www.cnblogs.com/hanxuming/p/5781158.html
Copyright © 2011-2022 走看看