美文网首页
JS各种检测(+)

JS各种检测(+)

作者: 前端历险记 | 来源:发表于2016-05-24 15:58 被阅读10次

    正好看到Object.prototype.toString(),通过解释发现不光是将现有对象内容转为字符串。

    If this method is not overridden in a custom object, toString() returns "[object type]", where type is the object type.

    大致理解是在没有被自定义默认的情况下,比如仅仅是通过new构造,会返回[object type]

    var o = new Object();
    o.toString(); // returns [object Object]
    

    于是利用这个性质,被玩惨了:

    var toString = Object.prototype.toString;
    
    toString.call(new Date);    // [object Date]
    toString.call(new String);  // [object String]
    toString.call(Math);        // [object Math]
    
    // Since JavaScript 1.8.5
    toString.call(undefined);   // [object Undefined]
    toString.call(null);        // [object Null]
    

    参考链接
    Object.prototype.toString()

    相关文章

      网友评论

          本文标题:JS各种检测(+)

          本文链接:https://www.haomeiwen.com/subject/skuzrttx.html