blog
blog copied to clipboard
javascript高级程序设计(第三版) 快速阅读版,省略较多不常用的内容。
存在客户端检测, 是因为浏览器大战, 各家浏览器一单不按照某个规范, 那么实现起某个功能就会有五花八门的差异. 比如说早期在ajax和事件绑定上, 都要另外兼容IE , 此章的笔记并不多. 主要告诉检测的几种思路: ## 能力检测 比如对区分PC端和移动端要求不高, 可以如下: ``` js var isMobile = function () { try { return !!document.createEvent("TouchEvent"); } catch (e) { return...
## Object 创建Object对象的方法: - new Object - 对象字面量(不会调用Object构造函数) 其他知识点: - 通常用点运算符访问对象的熟悉 - 如非必要, 避免["prop"]访问对象熟悉 - 如果函数需要大量传参, 可以用对象作为参数 ## Array 创建方式: - new Array, 也可以省略new关键字i - var arr = new Array(10);...
ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(浏览器对象模型)则无疑才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。 下面介绍主要的几个BOM对象. ## window对象 BOM 的核心对象是 window,它表示浏览器的一个实例。在浏览器中,window 对象有双重角色, 它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。这意味若在网页中定义的任何一个对象、变量和函数,都以 window 作为其 Global 对象,因此有权访问 parseInt()等方法 ### 全局作用域...
## 理解对象 第五讲里面讲了对象声明的两种方式: - 使用Object构造函数 - 对象字面量 ### 属性类型 ES5描述对象**属性**(property)的特征, 称为**特性**(attribute), 定义特性是为了实现js引擎用的, 所以在JS中不能直接访问它们(**特性**). 为了表示**特性**是内部值, 规范把它们放在两个方括号之中. ES5有两种属性: 1. 数据属性 数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有 4 个描述其行为的特性。 - [[Configurable]]: 表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值: true - [[Enumerable]]: 可枚举,...
## 基本类型和引用类型的值 > 再次复习一下, ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 ### 动态的属性 知识点: - 对基本类型添加属性虽然不会报错, 但是没有效果 - 操作对象时, 操作的是对象的引用而不是实际的对象 ### 复制变量值 知识点: - 基本类型变量复制是完全复制  基本类型变量复制原理 - 引用类型变量复制是复制引用  引用类型变量复制原理 ### 参数传递 JS函数参数传递是按值传递, 如果参数的值是基本类型, 这个很好理解....
## 语法 以下是js的语法要求 - 大小写敏感 - 标识符: 即我们说的变量名 开头必须是字幕/下划线/&的一种 - 不能把关键字/保留字/true,false,null作为标识符 - 注释: - 单行注销: // - 多行注销: /\*\* here is your code \*\*/ - 严格模式: Es5引入严格模式,在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。 -...
## Script元素 直接在HTML页面中使用script元素, 这是在NN2.0浏览器上的最先实现. HTML4.01规定script元素有下列几个属性 - async: 可选, 表示立即下载脚本, 但是不应妨碍页面的其他操作, 比如下载其他资源或者等待其他脚本. 只对外部JS有效 - charset: 可选, 指定字符集 - defer: 可选, 只对外部脚本有效, 立即下载, 延迟执行. - src: 可选 - type: 可选, 可视为language属性的替代品, 默认值`text/javascript`,...
## 简史 > JS诞生之前,也就是二三十年前.那时候网速普遍慢, 想象一下: 用户提交表单到服务器之后结果提示用户漏填了一个字段, 本次提交不成功....所以JS初衷是为了处理这种简单的验证. 1995年, NetScape的员工Brendan Eich为NetScape Navigator 2浏览器开发了这种语言, 并命名为Livescript, 但是正式发布的时候, 为了蹭Java的热度, 就把名字改成了JavaScript, 版本为1.0 当然微软眼红, 也着手开发了自己的脚本实现, 叫Jscript. 这为后来苦逼的兼容大战埋下伏笔. 微软和NetScape两家公司的竞争, 让JavaScript的标准化提上了议程. 当时那几个大厂以JavaScript 1.1为蓝本开始构建标准, 也就是我们所知的ECMA-262, 就是ES第一版, 尽管有了约定的行业标准, 但是微软也并没有完全约定, 而是自己实现,...