一.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. drupal7 boost模块为登录用户提供缓存

    这段时间研究Drupal7的缓存相关,看了好多资料,都提到了boost和authcache两个模块,今天来说一下boost. 具体的下载安装,配置等,官网写的听清楚,boost模块地址 ,安装配置方法 ...

  2. qt5.6 for android

    尝试在qt下写android的程序.测试,没有编译成功. 在选项-android配置页面,提示有"Qt version for 3 architectures are missing&quo ...

  3. 我对Map端spill的理解

    一.先看简单理解 对于hadoop的map端配置项"mapreduce.task.io.sort.mb"和"mapreduce.map.sort.spill.percen ...

  4. iis服务器上面使用百度编辑器ueidtor提示“找不到临时文件”需要给window/temp修改权限

    iis服务器上面使用百度编辑器ueidtor提示“找不到临时文件”需要给window/temp修改权限,修改php上传临时文件window/temp 给user用户组读取和写入的权限

  5. Oracle数据库初探

    一.安装oracle数据库 步骤:转载一个很不错的文档:http://www.linuxidc.com/Linux/2015-02/113222.htm 注意点:安装的时候会check相关依赖,有些可 ...

  6. vs2015下载及预览与发布

    VS2015 RC发布下载,通用Windows平台必备神器! 几个月前微软发布了Visual Studio 2015的技术预览版本,之后又先后发布了6个更新版本.如今,微软已在其官方页面中公布了最新开 ...

  7. # 欢迎使用Markdown编辑器写博客

    似的发射点 甜甜 他inn他 absct{ for i 士大夫似的 胜多负少 import os import sys import subprocess import textwrap if sys ...

  8. iOS开发播放文本

    iOS7以后AVSpeechSynthesizer苹果开放了这个类   它可以将文本转化成声音并播放: 下面的是我的封装使用起来特别简单: // //  TTSSpeak.h //  SayLoveY ...

  9. EasyuiAPI:基础

    一.EasyLoader(简单加载) locale属性:值类型是string locales属性:值类型是object 二.Draggable(拖动) 1.通过标签创建: <div id=&qu ...

  10. Understanding continuations

    原文地址http://fsharpforfunandprofit.com/posts/computation-expressions-continuations/ 上一篇中我们看到复杂代码是如何通过使 ...