2013年10月31日

摘要: 一直觉得js中的作用域链是个比较神秘的东西,搞的也不是很清楚,以致昨天面试的时候,面试官一问作用域,我就想到作用域链上去了,结果也没答好,其实二者是不同的概念。作用域简单来说就是一个变量的作用范围,下次再问到js作用域的问题,可以这么回答:1、定义在函数外部的变量都是全局变量,定义在函数内部的变量如果加上var就是局部变量,不加var就是全局变量;函数内部的局部变量如果跟全局变量重名,会覆盖掉全局变量。2、js中没有块作用域(这个尤其注意,跟java、php等不一样),也就是说如果一个函数中有if、for语句块,里面的变量在整个函数中可见,而不是只在语句块中可见(昨天就问我了for语句中变量的 阅读全文
posted @ 2013-10-31 18:46 小蜗牛的秘密花园 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 简言之:udefined代表没有赋值的基本数据类型。null代表没有赋值的引用数据类型。以上两句话是别人的总结,我理解的是:null如果是一个引用变量的值(因为也可以直接把一个非引用变量设为null),有两种情况,一种是引用变量指向的对象不存在,这时会返回null;一种是将引用变量设为null,也就是说不指向任何对象,这时已存在的对象会被自动回收eg1:var p=document.getElementById("p");//假设p不存在alert(p);//指向的对象不存在,返回nulleg2:var p=[2,3,4];p=null;alert(p);//对象(数组)还 阅读全文
posted @ 2013-10-31 16:15 小蜗牛的秘密花园 阅读(254) 评论(0) 推荐(0) 编辑

导航