一.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>

       

《JS权威指南学习总结--4.13运算符》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. android studio的lib和jniLibs

    在android studio 中添加jar和so时,将jar文件直接拷贝到 项目目录\app\libs下即可,将so文件按照平台分类目录放到 项目目录\app\src\main\jniLibs\平台 ...

  2. 去掉word冗余格式 java正则表达式

    word转换html时,会留下很多格式,有些格式并不是我们所需要的,然而这些格式比真正的文章内容还要多,严重影响页面的加载速度,因此就需要找个一个好的解决方案把这些多余的格式个去掉.网上有很多去除wo ...

  3. 重读The C programming Lanuage 笔记一:类型转换

    首先说自动类型转换: 当一个运算符的几个操作数类型不同时,就需要吧他们转换位某种共同的类型.一般来说,自动转换把“较低”的类型转换为”较高“的类型.运算结果为较高的类型 以下是不严格的规则: 首先,如 ...

  4. FR javascript 时间设置上个月最后一天后当月最后一天

    //设置上月最后一天 var date1 =new Date(); date1.setDate(1); //first day; date1.setMonth(date1.getMonth()); / ...

  5. 第一次使用cnblogs

    第一次使用!!!!!留名纪念下!!!!!!!!!!!

  6. SQLite学习网址

    http://www.runoob.com/sqlite/sqlite-data-types.html

  7. sublime从官网纯净版到插件完整版

    01.纯净版下载地址:www.sublimetext.com/ 02.下载Package Control插件管理工具,网址:https://packagecontrol.io/ 安装介绍:https: ...

  8. UITextField 设置 placeholder 的字体颜色方法

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; color: #ff2608 } [_textField setValu ...

  9. 运用bootstrap框架的时候 引入文件的问题

    还要下个jquery,因为bootstrap的js是用jquery写的如果在同一个目录下<html><head><link href="css/bootstra ...

  10. "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。

    一,在我使用自动生成数据库的时候,当你改变了数据库就会出现下面问题 "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改. ...