JavaScript高级程序设计笔记

JavaScript高级程序设计笔记

类型检测

  1. typeof操作符并不可靠,在判断引用类型如[],{},function(){}以及null的返回值都是object
  2. 对于instanceof来说,也存在不可靠的情况,它存在多个全局作用域,比如一个页面包含多个iframe
    var isArray = value instanceof Array看起来可以检测是否为数组,但是如果value是在另一个frame中定义的数组,则isArrayfalse
  3. 最好的解决办法利用Object原生的toString方法,例子如下
    function isArray(value) {
     		return Object.prototype.toString.call(value) === '[object Array]'
    }
    
  4. 但是使用toString检测非原生构造函数时都将返回[object Object]
  5. 所以可以利用这里来判断是否是原生的JSON
    var isNativeJSON = window.JSON && Object.prototype.toString.call(JSON) == "[object JSON]"
    

防篡改对象

不可扩展对象
  • 使用Object.preventExtensions(object)来阻止object增加其他属性和方法
  • 使用Object.isExtensible(object)来判断
密封的对象
  • 使用Object,seal(object)来保护object对象属性不可被添加和删除
  • 使用Object.isSealed(object)来判断
冻结对象(最严格)
  • 使用Object.freeze()来冻结对象,对象属性的[[writable]]会被设置为false
  • 使用Object.isFrozen(object)来判断

高级定时器

页面渲染后点击click

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值