JavaScript高级程序设计(第2版) 笔记2

  笔记1中摘录了一些关于JavaScript的简介、组成、基础类型说明等无关精要的知识点,但个人还是觉得这些基础的东西必须了解,毕竟有总比没有好。

  而今天也就来说说有时会让初学者疑惑的一些问题,比如JavaScript的变量、作用域和内存等问题,特别需要注意的就是作用域(C#、Java等高级语言开发者你们懂得!),不懂的时候头大是在所难免滴!

  不过作为一名开发者(程序猿),遇到这些头大的问题时,只能说明自己还不算“精通”。

(四)变量、作用域和内存问题

1.  全局作用域(Global Scope)

  在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

  (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如:

var Name="张三";
function doSomething(){
    var newName="李四";
    function innerSay(){
        alert(newName);
    }
    innerSay();
}
alert(Name); //张三
alert(newName); //脚本错误
doSomething(); //李四
innerSay() //脚本错误 

  (2)所有未定义直接赋值的变量自动声明为拥有全局作用域

function doSomething(){    var Name="张三";
    newName="李四";
    alert(Name);
}
doSomething(); //张三
alert(newName); //李四
alert(Name); //脚本错误

变量blogName拥有全局作用域,而authorName在函数外部无法访问到。

  (3)所有window对象的属性拥有全局作用域

  一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。

  1.  局部作用域(Local Scope)  

  和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域,例如下列代码中的blogName和函数innerSay都只拥有局部作用域。

function doSomething(){
    var newName="李四";
    function innerSay(){
        alert(newName);
    }
    innerSay();
}
alert(newName); //脚本错误
innerSay(); //脚本错误

  今天主要就是作用域的一些了解,可能有点乱......

  

时间: 2024-10-12 13:48:58

JavaScript高级程序设计(第2版) 笔记2的相关文章

JavaScript高级程序设计(第3版) 中文pdf扫描版 89M 高清下载

<JavaScript高级程序设计(第3版)>是JavaScript超级畅销书的最新版.ECMAScript5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性. <JavaScript高级程序设计>这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一. 全书从JavaScript语言实现的各个组成部分——语言核心.DOM.BOM.事件模型讲起,深入浅出地探讨了面向对象

《JavaScript高级程序设计》(第二版)

这本书的作者是 Nicholas C.Zakas ,博客地址是 http://www.nczonline.net/ ,大家可以去多关注,雅虎的前端工程师,是YUI的代码贡献者,可想而知这本书得含金量,他出的书都广受好评.这本书已经出了第二版,而且与第一版相比内 容更新很大,直接第二版就行.不要被书名的“高级”唬住,只要有JS基础语法知识和DOM基础知识就行,而且本书开始阶段还是介绍JS和DOM的语法知 识. 评论:重点推荐一下第五章(类型),第六章(OOP),第七章(匿名),多看几遍,至少要完全

《JavaScript高级程序设计(第3版)》.Nicholas.C.Zakas.扫描版.pdf

下载地址:网盘下载 内容简介 编辑 本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点.JavaScript与浏览器的交互.更高级的JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理.调试.安全性.优化/混淆化.XML和Web服务,最后介绍应用所有这些知识来创建动态用户界面. 本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教

《JavaScript高级程序设计 第三版》 前2章 Javascript简介与HTML 读书笔记

第一章:Javascript简介 1.JavaScript诞生于1995年,当时,它的主要目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作.现在,JavaScript是一种专为与网页交互而设计的脚本语言. 注:Netscape(网景)公司研发,Java是sun公司研发,原名为LiveScript,为了搭上媒体热炒的Java的顺风车,更名为JavaScript 2.微软推出JSript的和网景的JavaScript相竞争,最后微软胜利.ECMA指定了规定并重新命名为ECMAScri

《JavaScript高级程序设计 第3版》-学习笔记-2

P31-P82页 1.相等不相等与全等不全等 相等不相等:先转换后比较.对于只有一个对象,调用valueOf方法得到基本类型值再按基本类型转换:如果两个都是对象,则比较他们是否是同一个对象(引用或指针值比较):null与undefined是相等的,至少有一个为NaN则相等为false,不相等为true: 全等不全等:只比较.只在两个操作数未经转换就相等的情况下返回true,特别的,null与undefined不全等,因为连类型都不同 2.未指定返回值类型的函数返回的是一个特殊的值-undefin

《JavaScript高级程序设计 第3版》-学习笔记-1

P1-P30页 1.<script>标签的属性 async:async(html)  | async="async"(xhtml),表示立即下载脚本,但不马上执行(执行没有了先后顺序),不会暂停构建文档. defer:defer(html)| defer(XHTML),表示立即下载脚本,但延迟到解析到</html>标签才执行脚本. 2.在xhtml中嵌入js代码加CDATA <script> //<![CDATA[ ...code... if(

javascript高级程序设计第三版 读书笔记

第三章   基本概念 1.在JavaScript中是区分大小写的,第一个字符是字母 _ 或者$,其他字符可以试数字 字母 _ 或者$,命名格式要求是驼峰式书写(第一个字母小写,剩下的每个有意义的单词开头大写  比如fontSize) 2.单行注释//  块级注释为/*多行 内容*/ 不得使用关键字和保留字 3.在JavaScript中变量是松散型的   可以为任何一种类型 4.用var操作符定义的变量成为定义该变量的作用域中的局部变量. function test(){ var i = 'hi'

《JavaScript高级程序设计 第3版》-学习笔记-3

P84-P137页, 这一章看的真久,这个月事太多了.有些内容在代码注释里没提出来了 1.JS强大的数组类型,元素类型任意,提供了非常多的操作数组的方法和属性 1 /* 2 数组类型 3 */ 4 5 //stack 6 var colors = ['red','blue']; 7 colors.push('brown'); 8 console.log(colors); 9 console.log(colors.length); 10 var item = colors.pop(); 11 co

javascript高级程序设计第三版dom元素大小笔记

是滚动大小(scroll dimension),指的是包含滚动内容的元素的大小.有些元素(例如 <html>元素),即使没有执行任何代码也能自动地添加滚动条:但另外一些元素,则需要通过 CSS 的 overflow 属性进行设置才能滚动.以下是 4 个与滚动大小相关的属性. 在IE8以下scrollHeight=元素内容本身的高度. 1.增加边框,不同浏览器有不同解释. 谷歌火狐IE>=8会忽略边框的大小. 2,增加内边距,最终值是width||height+padding ie8以下是