摘要:
命名空间 JavaScript本身中没有提供命名空间机制,所以为了避免不同函数、对象以及变量名对全局空间的污染,通常的做法是为你的应用程序或者库创建一个唯一的全局对象,然后将所有方法与属性添加到这个对象上。复制代码代码如下:/* BEFORE: 5 globals */// constructorsfunction Parent() {}function Child() {}// a variablevar some_var = 1;// some objectsvar module1 = {};module1.data = {a: 1, b: 2};var module2 = {};/* . 阅读全文
摘要:
zhuanzi:http://qingbob.com/blog/%E8%B0%88javascript%E5%8F%98%E9%87%8F%E5%A3%B0%E6%98%8E之前的面试中遇到过一道面试题var a =10;(function(){ console.log(a);var a =20;})()短短5行代码log的结果是什么?如果把var a = 20;和console.log(a)语句顺序对调呢?这道题目的答案是undefined。不是10。关键在于javascript的变量声明有一个hoisting机制,变量声明永远都会被提升至作用域的最顶端(注意测试还只是声明,还没有赋值)。其 阅读全文