面试中--js注意事项(小知识点)
1.instanceof
操作符应该仅仅用来比较来自同一个 JavaScript 上下文的自定义对象。 正如 typeof
操作符一样,任何其它的用法都应该是避免的。
instanceof
操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义。 如果用来比较内置类型,将会和 typeof
操作符 一样用处不大。
2.为了检测一个对象的类型,强烈推荐使用 Object.prototype.toString
方法; 因为这是唯一一个可依赖的方式。正如上面表格所示,typeof
的一些返回值在标准文档中并未定义, 因此不同的引擎实现可能不同。
除非为了检测一个变量是否已经定义,我们应尽量避免使用 typeof
操作符。
typeof
操作符,这个实际应用是用来检测一个对象是否已经定义或者是否已经赋值), 而这个应用却不是用来检查对象的类型。
3.绝对不要使用 eval
,任何使用它的代码都会在它的工作方式,性能和安全性方面受到质疑。 如果一些情况必须使用到 eval
才能正常工作,首先它的设计会受到质疑,这不应该是首选的解决方案, 一个更好的不使用 eval
的解决方案应该得到充分考虑并优先采用。
eval
也存在安全问题,因为它会执行任意传给它的代码, 在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval
函数。
4.删除属性的唯一方法是使用 delete
操作符;设置属性为 undefined
或者 null
并不能真正的删除属性, 而仅仅是移除了属性和值的关联。
5.