js设计模式笔记
一 基本javascript
javascript 是弱类型语言。定义变量时不需要声明其类型。
javascript类型:
原始类型:数值类型,布尔型,字符串型。
对象类型、包含可执行代码的函数类型.
特殊的原始类型:空类型、undefined类型。
JS 中 函数是一等公民。可存放变量里、作参数、作返回值、可动态构造。
JS 作用域:js是函数作用域,只要在函数内部定义的变量,整个函数都可见,不论先后。即所有的变量都在函数顶部产生了变量声明。
作用域链: 每一段JS代码,都有与之相关联的作用域链(scope chain) ,js对变量函数的解析是沿其左右域查找的。
JS全局代码的作用域链会是如下。指向全局对象
当定义函数的时候,会把函数加入到当前作用域链中。
定义嵌套函数,也会把嵌套函数加入在作用域链中
定义函数的时候,会保存这个函数的作用域链。函数调用的时候,会把函数的变量加入到作用域链中。形成调用域链列表。
嵌套函数的调用会更不一样,每次作用域链都不相同。
匿名函数:function(){}创建没有名字的函数
立即执行的函数:(function()
{ var a=10;alert(a*10); } ) ();
传参数: ( function(a,b)
{alert(a*b);} )(10,5);
匿名函数的一个重要用途是创建闭包。闭包是一个受保护的变量空间,由内嵌函数生成。
javascript具有函数作用域,函数外部不能访问内部变量。
javascript的作用域具备词法性质。即变量运行在它定义的作用域中,而不是调用它的作用域中。
var globv
(function (){
var a=10;
var b=20;
globv =function(){
return a*b;}
})();
globv();