博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年6月11日

摘要: 我们先来看下面的两个例子var n=1;function f(){ var n=2; var e=function(){ return n; }; return e;}alert(f()());//2var n=1;function f(){ var n=2; var e=new Function("return n;"); return e;}alert(f()());//1原因如下:JS解释器在解析代码时,并不是一行行地分析执行函数,而是一段一段地分析执行函数,在同一段代码中,使用function语句和函数直接量定义的函数结构总会被提... 阅读全文

posted @ 2013-06-11 17:10 Amy-lover 阅读(390) 评论(0) 推荐(0) 编辑

摘要: 对变量的类型检测除了我们前面提到的typeof以外,还有instanceof操作符和constructor属性两种方法一、instanceof操作符虽然在检测基本数据类型时,typeof是非常得力的助手,但是在检测引用类型的值时,该操作符的用处不大,我们需要知道的不仅仅是它是一个对象,还想要知道它是一个什么类型的对象var r=new RegExp();var a=[];alert(r instanceof RegExp);//truealert(a instanceof Array);//truealert(2 instanceof Number);//falsealert(null ins 阅读全文

posted @ 2013-06-11 15:28 Amy-lover 阅读(256) 评论(0) 推荐(0) 编辑

摘要: JS解释器对使用function语句声明的函数,会在预编译阶段处理,对匿名函数在预编译阶段视而不见,在执行期才按表达式逐行进行解释执行,由于函数声明和函数表达式解析的视觉不同,因此导致函数拥有不同的特性一、function f(){ alert(1);}f();//2function f(){ alert(2);}f();//2,第二个f函数会覆盖第一个f函数JS解释器在预编译阶段就会把所有使用function语句声明的函数进行处理,如果发现同名函数,则用后者覆盖前者,在执行期,调用f函数时,只剩下了最后的那个同名函数二、var f=function(){ alert(1);... 阅读全文

posted @ 2013-06-11 15:03 Amy-lover 阅读(947) 评论(0) 推荐(0) 编辑

摘要: typeof是操作符,不是函数,可以用它来检测给定变量的数据类型,共有6个取值:"undefined"/"number"/"string"/"object"/"function"/"boolean"下面是几种较为特殊的值alert(typeof NaN);//numberalert(typeof Number.MAX_VALUE);//numberalert(typeof Number.POSITIVE_INFINITY);//numbervar a=function(){} 阅读全文

posted @ 2013-06-11 11:19 Amy-lover 阅读(284) 评论(0) 推荐(0) 编辑

摘要: 假设一个站点结构如下其中main.js文件和main.css文件均引用了1.jpg,例如#box{background:url("1.jpg");}window.onload=function(){document.getElementById().style.backgroundImage="url(images/1.jpg)";}可见JS文件所引用的背景图像路径以网页文件(index.html)为参考来设置,而不需要考虑js文件的具体位置,如果网页位置不变,则即使移动了js文件的位置,只需要更改网页文件中关于js文件的导入即可,不需要更改js文件中关 阅读全文

posted @ 2013-06-11 11:05 Amy-lover 阅读(361) 评论(0) 推荐(1) 编辑

摘要: JS的运行环境一般由宿主环境和执行期环境共同构成,宿主环境是由外壳程序(如web浏览器就是一个外壳程序)生成,执行期环境是由嵌入到外壳程序中的JS引擎(/JS解释器)生成的,在执行期环境JS可以生成内置静态对象、初始化执行环境等。宿主环境一般由外壳程序创建和维护,在一个宿主环境中可以运行多种脚本语言(如VBScript),以虚拟机的方式提供一个跨语言跨平台的宿主环境宿主环境一般会创建一套公共对象系统,该系统对所有脚本都开放,允许它们自由访问,还提供了公共接口,用来装载不同的脚本语言引擎脚本语言本身并不提供IO,也没有与系统和外界通信的能力,更不存在管理内存,修改注册表等行为,这些行为全部由宿主 阅读全文

posted @ 2013-06-11 10:18 Amy-lover 阅读(3765) 评论(0) 推荐(0) 编辑

摘要: JS时一种解释型语言,要想运行JS脚本,必须在浏览器中嵌入JS引擎,浏览器之间的不兼容归结于它们包含的渲染引擎不同。渲染引擎的职责是解释Web页面的所有代码,包括html标签,JS脚本,CSS样式等,JS引擎作为一个子集被包含在渲染引擎中1,Mozilla是Netscape公司创建,渲染引擎为Gecko2,IE的渲染引擎是Trident(/MSHTML),遨游,腾讯TT等均选用该引擎3,Safari的渲染引擎是KHTML4,Opera的渲染引擎是Presto5,Chrome的渲染引擎是Webkit,是KHTML的衍生品主流JS引擎JS引擎主流浏览器JScriptIESpiderMonkeyFi 阅读全文

posted @ 2013-06-11 09:26 Amy-lover 阅读(434) 评论(0) 推荐(0) 编辑