JS高级程序设计第2章--精简版】的更多相关文章

前言:这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第二章:在HTML中使用JavaScript 2.1 <script>元素: 即在HTML页面插入JS的主要方法.HTML4.01定义了以下JS属性(主要): async :表示立即下载脚本(只对外部脚本文件有效),但不妨碍页面中的其他操作. defer : 表示脚本可以延迟到文档完全被解析和显示之后再执行(只对外部脚本文件有效). src : 表示包含要执行代码的外部文件. type…
前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第四章:变量.作用域和内存问题 4.1 基本类型和引用类型的值: ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值: 指的是简单的数据段. 类型:Undefined.Null.Boolean.Number.String.这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值. 在内存中占据固定大小的空…
前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第三章:基本概念(语法.数据类型.流控制语句.函数) 3.1 语法: ECMAScript的语法大量借鉴了C及其他语言. 3.1.1 区分大小写 3.1.2 标识符: 指的是变量.函数.属性的名字.函数的参数.注意:首字符必须是一个字母.下划线.或者美元$符号. ES标识符采用驼峰大小写格式(首字母小写,其他单词的首字母大写,如:setData),不可以…
1.浮点数值 虽然小数点前面可以没有整数,但是并不推荐这种写法. 由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转化为整数数值.显然,如果小数点后面没有任何数字,那么这个数值就可以作为整数值来保存.同样,如果浮点数值本身表示的就是一个整数,那么该值也会被转换为整数.例如: var floatNum1 = 1.; //小数点后没有数字——解析为1 var floatNum2 = 10.0;//整数,解析未10 浮点数值的最高精度是17位小数,但在进…
  引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string"  需要实验 访问属性的方法 .号和[] 一般情况下要用. 判断是否是数组 Array.isArray( a )  数组变字符串 array.join("||") ; 重排序 reverse sort sort( compare )    function compare(a, b){    if( a > b ) return 1 …
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> //一元加和减操作符 var s1='01'; var s2='1.1'; var s3='z'; var b=fal…
问题:怎么才能形象的理解堆栈空间? 1. 声明变量 使用 var 声明的变量会自动被添加到最接近的环境中.在函数内部,最接近的环境就是函数的局部 环境:在 with 语句中,最接近的环境是函数环境.如果初始化变量时没有使用 var 声明,该变量会自 动被添加到全局环境.如下所示: function add(num1, num2) { var sum = num1 + num2; return sum; } alert(sum); //由于 sum 不是有效的变量,因此会导致错误…
  对DOM的两个主要的扩展 Selectors API HTML5  Element Traversal 元素遍历规范 querySelector var body = document.querySelector("body"); var myDiv = document.querySelector("#myDiv"); 取得id为myDiv的元素 var selected = document.querySelector(".selected&quo…
  闭包 有权访问另一个函数作用域中的变量的函数 匿名函数 函数没有名字 少用闭包 由于闭包会携带包含它的函数的作用域,因此会比其它函数占用更多的内存.过度使用闭包可能会导致内存占用过多,我们建议读者只在绝对必要时再考虑使用闭包 模块模式   增强的模块模式   特权方法 有权访问私有变量的公有方法叫做特权方法 块级作用域   实现单例的特权方法  …
  EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value   前三个值的默认值都为false   举例 Object.defineProperty( person, "name", { writable:false, value:"niko"} ) ;   一旦属性定义为不可配置的,就不能再把它变回可配置的了 读取属性 的特性 var descriptor  = O…
  5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中 执行环境的销毁 某个执行环境中的所有代码执行完毕后 该环境被销毁 保存在其中的所有变量了函数定义也会随之销毁 作用域链中的对象 全局执行环境的变更对象始终都是作用域链中的最后一个对象 没有块级作用域 if 和 for 内的变量 外部也可以访问 标记清除 不同浏览器 只不过垃圾时间的长短不同…
启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰  是一个重要原则 5种简单数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 检测数据类型的方法 typeof 有如下值: undefined boolean object string number function typeof Null object 意在保存对象还没有保存对象的变量的初始值最好是什么 null 八进制的第一位…
读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){     drawing.getContext("…
1.重温<JavaScript高级程序设计>(第3版) (一)重温<javascript高级程序设计>(第1-4章) (二)重温<JavaScript高级程序设计>(第6章) (三)重温<JavaScript高级程序设计>(第5.7章)…
这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第二章做的笔记 <script>元素 type:可选.表示编写代码的脚本语言的类型:属性的值一般是text/javascript.不过,这个属性不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript. <script type="text/javascript…
js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener()用于处理指定事件和删除事件处理程序.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函数和一个布尔值.这个布尔值参数是true,表示在捕获阶段调用事件处理程序:如果是false,表示在冒泡阶段调用事件处理程序. 要在按钮上为click事件添加事件处理程…
今天在继续翻阅<JS高级程序设计>的时候,正好翻到location对象这一小节,其中有一部分就是讲的解析查询字符串.看到这个内容立马想到了做去哪儿秋招笔试题的时候有这么一道题. 去哪儿笔试没有过自己还是一直都挺心塞的,可能当时也写得不好吧,现在看到这个内容赶紧记下来. 函数的功能就是为了能逐个访问每个查询字符串参数,返回一个包含所有参数的对象. function getQueryStringArgs(){ //利用location.search属性先提取出URL中的查询字符串,这个字符串包含&…
server.jsvar connect=require('connect');serveStatic=require('serve-static');var app=connect();app.use(serveStatic("../angularjs"));app.listen(5000);运行server.js没反应,localhost:5000/test.html显示cant get test/html angular.js高级程序设计书本开头配置环境出错,谁能给解答一下 &g…
<JavaScript高级程序设计(第三版)>反反复复看了好多遍了,这次复习作为2017年上半年的最后一次,将所有模糊的.记不清的地方记录下来,方便以后巩固. 0. <script>元素属性 async表示立即下载脚本,但不应该妨碍页面中其他操作: defer表示延迟到文档完全被解析和显示之后再执行.这两个属性都仅适用于外部脚步,而且现实中脚步不一定按顺序执行.指定async属性的目的是不让页面等待脚本下载和执行. 最好只包含一个延迟脚本,把延迟脚本放在页面最底部仍然是最佳选择.…
JavaScript简史 JavaScript由Netscape(网景)公司在1995年发布,最开始的主要目的是处理以前由服务器端语言负责的一些输入验证操作,以便提高用户体验,后来就慢慢的发展为一门强大的编程语言.作者建议:要想全面理解和掌握JavaScript,关键在于弄清楚它的本质.历史和局限性. JavaScript实现 一个完整的JavaScript实现=核心(ECMAScript)+文档对象模型(DOM)+浏览器对象模型(BOM). 1.ECMAScript:由ECMA-262定义的E…
一.语法: 区分大小写; 2.标识符:就是指变量.函数.属性的名字,或者函数的参数 a.标志符的规则:①第一个字符必须是一个字母.下划线(_)或一个美元符号($).                   ②其他字符可以是字母,下划线,美元符号或者数字. b.标志符采用驼峰大小写格式. c.严格模式:在顶部添加以下代码:"use strict"; d.语句:结尾加入分号.在控制语句中使用代码块为最佳实践. 二.关键字与保留字 三.变量:ECMAScript的变量是松散类型,可以保存任何类型…
ecma:欧洲计算机制造商协会iso/iec:国际标准化和国际电工委员会 dom级别(10*)文档对象模型1:DOM核心(映射基于xml文档)与dom html(在dom核心基础上)2:对鼠标,事件,范围,遍历,还有对css样式表的支持dom2:新接口...视图,事件(鼠标,移动),样式(css),遍历与范围(对文档树的操作)3:对文档加载和保存,验证模块,对核心进行扩展,对xml.0规范其他domsvg可伸缩矢量图mathml数学标记语言mghi同步多媒体集成语言ie5 dom1mozilla…
一.关键字 二.保留字 三.数据类型 (数据类型具有动态性)   1.Undefined 声明变量却未对其加以初始化(赋值) 2.Null null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时,会返回"object"的原因. 注:undefined派生自null值,因此,alert(null == undefined); //true 3.Boolean 4.Number 浮点数值,就是该数值中必须包含一个小数点.浮点数值的最高精度是17位小数.用e或者E表示…
JavaScript变量: 由于JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 基本类型和引用类型的值: ECMAScript变量可能包含两种不同数据类型的值: 1.基本类型值,指的是简单的数据段,如undefined.Null.Boolean.Number和String.这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值: 2.引用…
前言:任何语言的核心都必然会描述这门语言最基本的工作原理.而描述的内容通常都要设计这门语言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念. 语法: 1.  区分大小写: 2.  标识符一般采用驼峰大小写格式(如:myCar),所谓标识符就是指变量.函数.属性的名字,或者函数的参数,有一定的命名规则. 严格模式: 严格模式是为JavaScript定义了一种不同的解析与执行模型.在严格模式下,ECMAScript 3中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错…
使用<script>元素的方式 外部引用式.行内式.嵌入式. JavaScript引用放在<body>后面的原因 假如在文档的<head>元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载.解析和执行完成以后,才能开始呈现页面的内容.对于那些需要很多JavaScript代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白. JavaScript在XHTML中的用法 XHTML是一种可扩…
  Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px"   计算的样式 记住所有计算的样式都是只读的 偏移量 offsetHeight 外边框外 offsetWidth  offsetLeft  外边框外 到 左端 offsetTop  客户区的大小 clientWidth  内边框外缘 clientHeight 内边框外缘 滚动大小 scrollHe…
PS:有一小部分写在了 JS 2017了 JSON <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> IE8支持 JSON.stringify() <script> var book = { "title"…
JavaScript 历史 JavaScript的诞生的主要是当时的 netspace 公司谋求为自己的浏览器 Navigator 添加一种脚本语言,以便在本地客户端进行一些行为操作,而这一功能的需求源于当时网络带宽很低(当时还是采用拨号上网,ADSL,网速基本也就28.8Kbit/s),对于一些表单的验证操作,用户只能提交到服务器,然后由服务端进行验证,再将结果通过网络反馈给用户.这种方式的效率无疑是很低的,所以当时 Navigator 的运营者们就想,能否在浏览器中嵌入一种编程语言,来直接实…
定义函数的方式有两种:一种是函数声明,另一种就是函数表达式.函数声明的语法是这样的. function functionName(arg0, arg1, arg2) { //函数体 } Firefox.Safari.Chrome和Opera 都给函数定义了一个非标准的name 属性,通过这个属性可以访问到给函数指定的名字.这个属性的值永远等于跟在function 关键字后面的标识符. //只在Firefox.Safari.Chrome 和Opera 有效 alert(functionName.n…