摘要: ①typeof检测变量类型 typeof检测变量类型只能返回:number、string、boolean、undefined、function、symbol、object这七种值,可以用来判断基本数据类型,但对于判断引用类型来说还不够具体。这里需要注意的是对于函数、null的typeof检测结果。 阅读全文
posted @ 2016-03-14 17:31 北极星空 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 代码: 问题:请问以上代码是否存在内存泄漏? 正确答案:存在内存泄漏 解析:由于上段代码中存在闭包,闭包会保存包含该闭包的函数的作用域链,因此element对象会一直存在于内存中,不会被垃圾回收机制回收掉。那么怎么解决闭包内存泄漏的问题呢?闭包内尽量引用包含函数的值类型变量,不引用包含函数的引用类型 阅读全文
posted @ 2016-03-14 16:05 北极星空 阅读(226) 评论(0) 推荐(1) 编辑
摘要: 代码: 问题:请写出该段代码的打印结果。 正确答案:'The Window' 解析:每个函数被调用时都会自动取得两个特殊的变量:this和arguments,内部函数在搜索这两个变量的时候,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中的这两个变量。因此上面这段代码不存在闭包。所以thi 阅读全文
posted @ 2016-03-14 15:41 北极星空 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 代码: 问题:请写出该段代码打印出的结果。 正确答案:10 解析:闭包保存的是包含函数的作用域链,而不是具体的某个变量的具体的值。作用域链本质上是一个指向变量对象的指针列表,它只引用但不实际包含变量对象。因此在本题中,createFunctions返回的10个闭包中的i,指向的是createFunc 阅读全文
posted @ 2016-03-14 12:25 北极星空 阅读(341) 评论(0) 推荐(0) 编辑
摘要: ①一般的通过名字调用自身  这种通过函数名字调用自身的方式存在一个问题:函数的名字是一个指向函数对象的指针,如果我们把函数的名字与函数对象本身的指向关系断开,这种方式运行时将出现错误。 ②通过arguments.callee调用函数自身 这种方式很好的解决了函数名指向变更时导致递归调用时找不到自身的 阅读全文
posted @ 2016-03-14 11:02 北极星空 阅读(7211) 评论(0) 推荐(2) 编辑