blog icon indicating copy to clipboard operation
blog copied to clipboard

javascript高级程序设计(第三版) 快速阅读版,省略较多不常用的内容。

Results 28 blog issues
Sort by recently updated
recently updated
newest added

存在客户端检测, 是因为浏览器大战, 各家浏览器一单不按照某个规范, 那么实现起某个功能就会有五花八门的差异. 比如说早期在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变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 ### 动态的属性 知识点: - 对基本类型添加属性虽然不会报错, 但是没有效果 - 操作对象时, 操作的是对象的引用而不是实际的对象 ### 复制变量值 知识点: - 基本类型变量复制是完全复制 ![基本类型变量复制](https://ws2.sinaimg.cn/large/006tKfTcly1g1cnli5hiyj30cq0fywem.jpg) 基本类型变量复制原理 - 引用类型变量复制是复制引用 ![引用类型变量复制原理](https://ws2.sinaimg.cn/large/006tKfTcgy1g1cnjucw6nj30mk0e2mxu.jpg) 引用类型变量复制原理 ### 参数传递 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第一版, 尽管有了约定的行业标准, 但是微软也并没有完全约定, 而是自己实现,...