随笔分类 - javaScript
记录javaScript学习的心得和感想。
摘要:JS是静态作用域。比较下面两段代码: 代码一 function f(){ alert(x); } function g(){ var x = 100; f(); } g() 代码二 function g(){ var x = 100; function f(){ alert(x); } f(); }
阅读全文
摘要:预处理阶段涉及到变量和(以函数声明方式声明的)函数的声明的提前的原理,并且涉及到声明变量冲突时候的一些问题。需要与执行阶段进行一定的区分,进而加深理解。 1. 预处理阶段将变量保存在window域中,会扫描用var操作符声明的变量以及用函数声明的方式声明的函数指针。因此会产生变量提前和函数声明提前的
阅读全文
摘要:参考书:《学习JavaScript数据结构与算法》 GitHub demo:https://github.com/nebulium/HashTable 相比于“字典”来说,HASH表实际上也是通过名/值对进行存储。但是存储的数据结构有所不同。待存储的信息的“名(key)”通过特定的处理(散列函数)映
阅读全文
摘要:GITHUB https://github.com/nebulium/Sorting 参考书 《学习JavaScript数据结构与算法》 冒泡排序 两层循环,外层循环做计数,内层循环每次完成一个循环的时候确保未排序部分最大的值“冒泡”到数组最末端,下面是i=0的情况: 显然,每次j=length-1
阅读全文
摘要:基本原理梳理、简单Ajax应用。 原理 Ajax基本 Ajax:异步JS与XML 同步、异步。 XMLHttpRequest对象作为客户端与服务器的中间媒介对象,实现Ajax。 HTTP相关知识 HTTP是无状态协议,不建立持久的信息,不在服务器保留信息。即,本次请求得到响应后,再次请求需要重新建立
阅读全文
摘要:Chapter 21 Ajax与Comet Ajax:Asynchronous JavaScript + XML 然而重点并不在于处理数据格式(不仅限于处理XML),而是无需刷新或者卸载整个页面就可以向服务器请求格外的数据并且取得这个数据。(然后就可以用DOM处理这些数据了)。 在没有Ajax这个观
阅读全文
摘要:游戏描述 打外星人游戏。外星人坐标记录在排序二叉树上。游戏要求输入想要开炮的横纵坐标,以判断能否击中飞机。如果在10发炮弹限制之内可以击中飞机,则赢。如果不能,失败(外星人步步逼近,最终侵略地球)。游戏过程中,将显示一些信息(如炮弹数目),游戏结束之后也会显示输赢情况。 文件结构 游戏界面设计 大体
阅读全文
摘要:概念 二叉树:如图。 某个节点最多有两个子节点的树。常用于排序。效率较高。 节点中的值:键。key。 兄弟节点:拥有同一个父节点的节点。 根节点:没有父节点 外部节点:叶子节点,没有子节点。 内部节点:中间节点。有子节点。 高:节点都有深度,最大的节点深度即为这棵树的高。 排序二叉树:节点左孩子的值
阅读全文
摘要:Object.prototype的toString()可以返回变量类型 而一般都重写了这个方法 借助call() function classOf(x){ if(x null) return "NULL"; if(x undefined) return undefined; return Objec
阅读全文
摘要:Chapter 17 错误的处理与调试 Chapter 18 JavaScript与XML Chapter 19 E4X Chapter 20 JSON Chapter 17 错误的处理与调试 浏览器报告的错误 罗列各个浏览器显示JS错误的方式。万能的F12键。 错误处理 try-catch语句:
阅读全文
摘要:Chapter 15 Canvas Chapter 16 HTML5 Chapter 15 Canvas Chapter 15 Canvas <canvas>元素:设定区域。JS动态在这个区域中绘制图形。 苹果公司引导的。由几组API构成。 2D上下文普及了。WebGL(3D上下文)还未足够普及。
阅读全文
摘要:之前就提到了,JS创建之初是为了减少服务器的压力,而当时这个压力主要体现在表单的验证上。与此同时,JS还为WEB表单增加了一些行为。 表单基础知识 go 文本框脚本 go 选择框脚本 go 表单序列化 go 富文本编辑 go JS表单基础知识 JS中获取表单元素(<form>)的方法: 注意到表单的
阅读全文
摘要:理解JS事件处理程序中的三个阶段:捕获阶段、处于目标阶段、事件冒泡阶段 注意:所有图片及代码来自《JavaScript高级程序设计》,为了能用具体的例子加深对三个阶段的理解。 代码一: var btn = document.getElementById("myBtn"); btn.onclick =
阅读全文
摘要:小记 JS与HTML之间的交互通过事件实现,事件发生在交互的瞬间,可以使用事件监听器(或者事件处理程序)来预定时间。DOM2事件模块尽量对事件进行规范,然而DOM3又增加了一些额外的处理方式,再加上BOM和浏览器之间的差异性,事件处理有的时候会十分的复杂。但仍然需要了解基本的概念。 导航 事件流的概
阅读全文
摘要:小记 在DOM1的基础上进行扩展,引入更多的交互,并处理更高级的XML。分为许多应用的模块,对DOM2和DOM3的功能等进行描述,内容包括:DOM2级核心、DOM2级视图(view)、DOM2级事件(13章讨论)、DOM2级样式、DOM2级遍历和范围、DOM2级HTML、DOM3级增加了XPath模
阅读全文
摘要:只讨论变量声明的提前: 理解这段代码: - 答案:undefined, string - 分析: 1、两个原理:a、JS中变量的声明会提前;b、JS的作用域原理以及对变量的搜索方式 2、第一次执行“typeof name”的时候,首先会在函数的作用域中查询name是否存在。由于变量声明的提前,局部作
阅读全文
摘要:简化or标准化一些操作。 最主要的两个扩展:选择符API、HTML5;元素遍历也是一个有用的工具、扩展;一些专有扩展标准化是众望所归。 简化or标准化一些操作。 最主要的两个扩展:选择符API、HTML5;元素遍历也是一个有用的工具、扩展;一些专有扩展标准化是众望所归。 选择符API(Selecrt
阅读全文
摘要:序 之前提到过 DHTML->DOM 本章介绍与浏览器相关的DOM节点以及JS对DOM的实现 注意到,IE中的DOM都是通过COM实现的,与一般的DOM的运行机制有差异(考虑能力检测、浏览器兼容) 节点层次 映射 Node类型(一些通用的节点方法或者属性) go Document类型(注意<head
阅读全文
摘要:先稍微了解,具体用到可以再翻阅资料。 为了消除浏览器之间的差异。 不到特定时刻不要使用客户检测手段,应该优先考虑通用方法,再考虑浏览器特殊性。 分为能力检测(特性检测)、怪癖检测(浏览器的bug)、用户代理检测(不推荐使用) 能力检测(特性检测) 检测浏览器是否具有某个特性(能力),以使用该特性或者
阅读全文
摘要:并没有统一的标准(虽然HTML5考虑对他的标准化),所以其中的各个浏览器共通的对象就很重要了。 window对象 go location对象 go navigator对象 go screen对象 go history对象 go window对象 两个身份:通过JS访问浏览器的一个接口;ECMAScr
阅读全文

浙公网安备 33010602011771号