js的变量,作用域,内存】的更多相关文章

js不支持块级变量作用域,而是包含它们的函数的作用域, 例如: function query() { ; ; i < ; i++) { var b = i; } return b + a; } var q = query(); alert(q);// 9 + 1 = 10 也包括在Catch块 function test() { var a= 'a', b = []; b.push(a); try { throw 'exception'; } catch (e) { a = 'c'; } b.p…
作为一名菜鸟的我,每天学点的感觉还是不错的.今天学习闭包的过程中看到作用域与作用域链这两个概念,我觉得作为一名有追求的小白,有必要详细了解下. 变量的作用域 就js变量而言,有全局变量和局部变量.这里我觉得这个按字面意思理解就行了.......下面举个例子 var message = "今天我做的糯米蒸排骨"; //定义一个全局变量 function doL(){ var ss = "侠客行很好看"; //定义一个局部变量 alert(message); //输出&…
(function(){ a = 5; alert(window.a); var a = 10; alert(a); })(); 结果: undefined 10 代码等同于下面 var a = undefined; //定义全局变量 (function(){ var a; // a = 5; // a = 5;但是被局部变量覆盖,这时候的a是局部变量 alert(window.a); //a = undefined; 试图访问全局变量a,可是并没有赋值 a = 10; //依然是局部变量a a…
一   变量(基本类型和引用类型) a.基本类型保存值,保存在栈内存,引用类型保存指针,保存在堆内存: b.所有函数的参数都是按值进行传递的,不管参数是何种类型: c.检测类型 typeof                  检测五个基本类型和一个引用类型object instanceof            检测引用类型具体是什么类型的对象 二   作用域 a.全局变量 局部变量: b.延长作用域链 try-catch里的catch语句: with语句: c.没有块级作用域 if语句里的变量…
一.变量的作用域 1.JavaScript的作用域链 首先看下下面这段代码: <script type="text/javascript"> var rain = 1; function rainman(){ var man = 2; function inner(){ var innerVar = 4; alert(rain); } inner(); //调用inner函数 } rainman(); //调用rainman函数 </script> 观察aler…
var s = 1; function test() { console.info(s); var s = 2; console.info(s); } test(); >>>undefined >>>2…
js的闭包 js的变量作用域: var a=90; //定义一个全局变量 function test(){ a=123; //使用外层的 a变量 } test(); document.write("a="+a); var a=90; //定义一个全局变量 function test(){ var a=123; //定义一个局部变量 } test(); document.write("a="+a); a=90; //没有var ,就会试着去找(父函数 的 a),如果找…
JS的变量作用域只有两种:全局作用域与函数作用域. 用var声明的变量不能简单的说是属于函数作用域,应该是说属于其最近的作用域. var a = 10; function test(){ var a; console.log(a); //undefined } test(); console.log(a); //10 for(var i=0;i<10;i++){ console.log(i); } console.log(i); //10 var i = 10; function test(){…
来自<javascript高级程序设计 第三版:作者Nicholas C. Zakas>的学习笔记(四) js共有5种基本数据类型:Undefined.NULL.Boolean.Number.String.5种基本数据类型是按值访问的,因此可以操作保存在变量中的实际值.而引用类型则不同,因为引用类型的值是保存在内存对象中的,而js不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间.在操作对象的时候,是在操作对象的引用而不是实际的对象.所以有“引用类型的值是按引用访问的”说法. 基本…
由于Javascript是松散型的,所以其变量只是在特定时间用于保存特定值的一个名字而已,并不存在某个变量必须保存某种类型的值的规则,变量的值以及其数据类型都可以在脚本的声明周期内改变 一.基本类型与引用类型 1.1 基本类型:保存在栈内存中的简单数据段,值保存在内存中的一个位置 1.2 引用类型:保存在堆内存中的对象,变量保存的仅仅是一个指针,这个指针指向内存中的另一个位置,该位置保存对象 1.2.1 5种基本数据类型:Undefined.Null.Boolean.Number.String在…