你的位置:首页 > 软件开发 > Java > 原生JS:delete、in、typeof、instanceof、void详解

原生JS:delete、in、typeof、instanceof、void详解

发布时间:2016-09-10 17:00:05
delete、in、typeof、instanceof、void详解本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript)deletedelete 运算符用来删除对象 ...

delete、in、typeof、instanceof、void详解

本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript)

typeof 可能的返回值:

类型

结果

Undefined

"undefined"

Null (引用了空指针)

"object" (见下方)

Boolean字面量

"boolean"

Number字面量

"number"

String字面量

"string"

Symbol (ECMAScript 6 新增)

"symbol"

宿主对象(由JS环境提供)

Implementation-dependent

函数对象 ( [[Call]] 在ECMA-262条款中实现了)

"function"

任何其他对象(带引用)

"object"

 

instanceof

语法:obj instanceof constructor

  • instanceof 运算符判断一个对象是否是另一个对象的实例。返回true或false
    • 需要注意的是,如果表达式 obj instanceof Foo 返回true,则并不意味着该表达式会永远返回ture,因为Foo.prototype属性的值有可能会改变,改变之后的值很有可能不存在于obj的原型链上,这时原表达式的值就会成为false。
    • 另外一种情况下,原表达式的值也会改变,就是改变对象obj的原型链的情况,虽然在目前的ES规范中,我们只能读取对象的原型而不能改变它,但借助于非标准的__proto__魔法属性,是可以实现的。比如执行obj.__proto__ = {}之后,obj instanceof Foo就会返回false了。

    void

    它会对给定的表达式进行求值,然后直接返回 undefined。

    语法:void expression

    • void 运算符通常只用于获取 undefined 的原始值,一般使用 void(0)(等同于 void 0)
      • 当用户点击一个以 javascript: URI 时,浏览器会对冒号后面的代码进行求值,然后把求值的结果显示在页面上,这时页面基本上是一大片空白,这通常不是我们想要的。只有当这段代码的求值结果是 undefined 的时候,浏览器才不会去做这件傻事,所以我们经常会用 void 运算符来实现这个需求。虽然这么做是可行的,但利用 javascript: 伪协议来执行 JavaScript 代码是不推荐的,像下面这样:
      1. <a href="javascript:void(0);">
      2. 这个链接点击之后不会做任何事情,如果去掉 void(),
      3. 点击之后整个页面会被替换成一个字符 0。
      4. </a>
      5. <a href="javascript:void(document.body.style.backgroundColor='green');">
      6. 点击这个链接会让页面背景变成绿色。
      7. </a>
       

      原标题:原生JS:delete、in、typeof、instanceof、void详解

      关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。