1、函数名带括号和不带括号的区别
函数名本身就是变量,要访问函数的指针而不执行函数的话,必须去掉函数名后面的圆括号。
2、protptype属性
prototype是保存引用类型所有实例方法的真正所在。诸如toString()和valueOf()等方法都是保存在prototype下,只不过是通过各自对象的实例访问。
3、arguments.callee
arguments.callee是一个指向正在执行的函数的指针,用来实现递归调用。如果函数被销毁,递归依然可行。
4、模仿块级作用域
(function(){
// 块级作用域
})();
将函数声明包含在一对圆括号中,表示它是一个函数表达式。其后的另一对圆括号会立即调用这个函数。
这种技术经常在全局作用域中被用在函数外部,限制向全局作用域添加过多的变量和函数。通过创建私有作用域,既可以使用自己的变量,也不用担心搞乱全局作用域。
5、location对象
使用location对象可以通过很多方式改变浏览器位置——location.assign(url);
window.location = url;
location.href = url;
以上两种方法就是调用了assign()方法,效果完全一样。