随笔分类 -  JavaScript

javascript的一些算法备忘
摘要:getElementsByName()和getElementsByTagName()都返回NodeList对象,而类似document.images和document.forms的属性为HTMLCollection对象。 这些对象都是只读的类数组对象。它们有length属性,也可以像真正的数组一样索 阅读全文
posted @ 2017-01-19 10:39 ZhangCui 阅读(6255) 评论(0) 推荐(1) 编辑
摘要:第十三章 Web浏览器中的JavaScript 1、在客户端JS中,window对象也是全局对象。 2、window对象中其中一个最重要的属性是document,它引用Document对象。 3、JS代码可以通过把函数赋值给Element对象的属性来注册事件处理程序。 4、单线程执行是为了让编程更简 阅读全文
posted @ 2017-01-18 20:56 ZhangCui 阅读(172) 评论(0) 推荐(0) 编辑
摘要:第十章 正则表达式的模式匹配 1、正则表达式是一个描述字符模式的对象。 2、可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多是通过一种特殊的直接量语法来创建。 3、程序运行时每次遇到对象直接量,如{}[]的时候都会创建新对象。 4、正则表达式中的所有字母和数字都是按照 阅读全文
posted @ 2017-01-17 16:11 ZhangCui 阅读(131) 评论(0) 推荐(0) 编辑
摘要:第九章 类和模块 1、在JS中,类的实现是基于其原型继承机制的,如果两个实例都从同一个原型对象上继承了属性,我们说它们是同一个实例。 2、常见的编程约定:定义构造函数既是定义类,并且类名首字母要大写。 3、构造函数会初始化this,不必返回新创建的对象,构造函数会自动创建对象,然后将构造函数作为这个 阅读全文
posted @ 2017-01-16 15:47 ZhangCui 阅读(177) 评论(0) 推荐(0) 编辑
摘要:第8章 函数 1、参数有形参和实参的区别,形参相当于函数中定义的变量,实参是在运行时的函数调用时传入的参数。 2、函数表达式可以包含名称,这在递归时很有用。 3、函数定义表达式特别适合用来定义那些只会用到一次的函数,比如sort()方法或立即执行函数等。 4、函数声明语句被提前到外部脚本或外部函数作 阅读全文
posted @ 2017-01-15 19:45 ZhangCui 阅读(330) 评论(0) 推荐(0) 编辑
摘要:第七章 数组 1、数组直接量的语法允许有可选的结尾的逗号,所以[ , , ]只有两个元素而非三个。 2、调用构造函数Array()创建数组时,传入一个参数时表示指定数组的长度。 3、所有的索引都是属性名,但只有在0~2^32-2之间的整数属性名才是索引。所有的数组都是对象,可以为其创建任意名字的属性 阅读全文
posted @ 2017-01-13 10:27 ZhangCui 阅读(201) 评论(0) 推荐(0) 编辑
摘要:类数组对象:拥有一个数值length属性和对应非负整数属性的对象,比如arguments对象和一些DOM方法返回的对象。 阅读全文
posted @ 2017-01-12 10:37 ZhangCui 阅读(209) 评论(0) 推荐(0) 编辑
摘要://在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } ... 阅读全文
posted @ 2017-01-11 11:07 ZhangCui 阅读(36856) 评论(1) 推荐(1) 编辑
摘要:第六章 对象 1、对象的方法通常是继承的属性。这种原型式继承是JS的核心特征。 2、除了名字和值之外,每个属性还有一些与之相关的值,称为属性特性——可写/可枚举/可配置。数据属性的四个特性——值、可写性、可枚举性、可配置性;存取器四个特性——读取、写入、可枚举性、可配置性。 3、除了包含属性之外,每 阅读全文
posted @ 2017-01-10 10:44 ZhangCui 阅读(172) 评论(0) 推荐(0) 编辑
摘要:第五章 语句 1、在JS中没有块级作用域,在语句块中声明的变量并不是语句块私有的。 2、尽管函数声明语句和函数定义表达式具有相同的函数名,但二者仍然不同。两种方式都创建了新的函数对象,但函数声明语句中的函数名是一个变量名,变量指向函数对象,和通过var声明变量一样,函数定义语句中的函数被显式地提前到 阅读全文
posted @ 2017-01-09 18:45 ZhangCui 阅读(155) 评论(0) 推荐(0) 编辑
摘要:第四章 表达式和运算符 1、最简单的表达式是原始表达式,是表达式的最小单位——它们不再包含其他表达式。JS中原始表达式包含常量或直接量、关键字和变量。 2、一个对象的属性名不是固定值时,必须使用方括号写法来访问属性。 3、任何一个调用表达式都包含一对圆括号和左圆括号之前的表达式,如果这个表达式是一个 阅读全文
posted @ 2017-01-08 11:01 ZhangCui 阅读(134) 评论(0) 推荐(0) 编辑
摘要:1、隐式类型转换 ①== 如果相等操作的两个变量不是同一类型,那么相等运算符会尝试进行一些类型转换: 如果一个是null,一个是undefined,则他们相等; 如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值进行比较; 如果一个是true,则将其转换为1再比较,如果其中一 阅读全文
posted @ 2017-01-07 11:54 ZhangCui 阅读(667) 评论(0) 推荐(0) 编辑
摘要:第三章 类型、值和变量 1、JS的数据类型分为两类:原始类型(基本数据类型/不可变类型)和对象类型(引用数据类型/可变类型)。 JS中的原始类型包括数字/字符串/布尔值,还有两个特殊的:null和undefined。 对象是属性的集合。数组/函数是特殊的对象。 如果函数用来初始化(使用new运算符) 阅读全文
posted @ 2017-01-06 10:08 ZhangCui 阅读(199) 评论(0) 推荐(0) 编辑
摘要:和其他大多数现代编程语言一样,JS也采用词法作用域,也就是说,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。为了实现这种词法作用域,JS函数对象的内部状态不仅包含函数的代码逻辑,还必须引用当前的作用域链。函数对象可以通过作用域链相互关联起来,函数体内部的变量都可 阅读全文
posted @ 2017-01-04 12:02 ZhangCui 阅读(2656) 评论(0) 推荐(0) 编辑
摘要:Geolocation API在浏览器中的实现是navigator.geolocation对象,常用的有以下方法。 1、第一个方法是getCurrentPosition() 调用这个方法就会触发请求用户共享地理定位信息的对话框。比如在火狐中的对话框: 这个方法接收3个参数:成功回调函数、可选的失败回 阅读全文
posted @ 2016-12-26 11:25 ZhangCui 阅读(699) 评论(0) 推荐(0) 编辑
摘要:第24章 最佳实践 1、性能 1、避免全局查找 将在一个函数中会用到多次的全局对象保存在局部变量。比如多次使用document.getElement。。。,可以首先var doc=document,把document对象保存在本地的doc变量中。 2、避免with语句。 with会创建自己的作用域, 阅读全文
posted @ 2016-12-24 16:40 ZhangCui 阅读(144) 评论(0) 推荐(0) 编辑
摘要:第二十三章 离线应用与客户端存储 1、离线检测 HTML5定义navigator.onLine属性。还定义了两个事件,online和offline,当网络从离线变为在线或从在线变为离线时在window事件上触发。 2、应用缓存 appcache,专门为离线Web应用而设计的。Appcache时从浏览 阅读全文
posted @ 2016-12-23 16:43 ZhangCui 阅读(126) 评论(0) 推荐(0) 编辑
摘要:第22章 高级技巧 1、高级函数 1、安全的类型检测。 typeof,instanceof并非完全可靠。 安全的类型检测:使用Object原生的toString()方法。 2、作用域安全的构造函数 构造函数内部使用instanceof检查this是否是正确类型的实例。防止属性被加到window对象上 阅读全文
posted @ 2016-12-22 22:10 ZhangCui 阅读(175) 评论(0) 推荐(0) 编辑
摘要:第21章 AJAX 4、跨域源资源共享 CORS跨域源资源共享,其背后思想,是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是否应该成功。 1、IE对CORS的实现 在IE8中引入了XDR类型,类似于XHR。所有XDR请求都是异步执行,所以open()只接收两个参数。 2、其他 阅读全文
posted @ 2016-12-21 10:59 ZhangCui 阅读(129) 评论(0) 推荐(0) 编辑
摘要:第21章 AJAX AJAX技术的核心是XMLHttpRequest对象。可以使用XHR对象取得新数据,然后通过DOM将新数据插入到页面中。无需刷新页面即可从服务器获得数据。 1、XHR对象。 如果只想支持IE7+,那么可以直接使用XHR构造函数。 如果支持IE6: 1、XHR的用法 使用XHR对象 阅读全文
posted @ 2016-12-20 10:18 ZhangCui 阅读(120) 评论(0) 推荐(0) 编辑