js高程

第一章 js简介

  1. P2 js组成部分
    ECMAScript,DOM,BOM
  2. P3 宿主环境、ECMA组成部分
  3. P5 文档对象模型(DOM)定义
    DOM是针对XML但经过扩展用于HTML的应用编程接口。DOM把整个页面映射为一个多层节点结构
  4. P6 DOM级别

第二章 在HTML中使用js

  1. P10 script标签属性,type属性值是MIME,
    P12 src属性可以指向当前HTML页面所在域之外的某个域中的完整URL
    P4 async 属性:不让页面等待脚本下载和执行,从而异步加载页面其他内容
  • 该元素的开始标签和结束标签都不能省略
  1. P16 文档模式DOCTYPE

第三章 基本概念

  1. P19 语法:区分大小写、标识符
  2. P22 变量: 用var定义的变量将成为定义该变量的作用域中的局部变量,如果省略了var就会变成全局变量
  3. P23 typeof操作符,判断数据类型
  4. P28 NaN,isFinite() isNaN()
  5. P31 一元加操作符的操作与Number()相同
  6. P33字符字面量即转义字符;P34 转换为字符串的方法toString(),String(),+''
  7. P35 Object类型具有的属性和方法
    Object类型是所有它的实例的基础,也就是说Object类型具有的任何属性和方法都存在于更具体的对象
  8. P44 布尔操作符 !!name === Boolean(name), &&和||短路操作
    操作符应用于对象时,会调用对象的toString或valueOf方法
    P45 在有一个操作数不是布尔值的情况下,逻辑与和逻辑或不一定返回布尔值,具体返回参考P45
  9. P48 加法操作,任何类型和字符串相加都会被转化为字符串拼接
    P50 大写字母的字符编码全部小于小写字母的字符编码
  10. P62 switch 使用的是全等操作符,不会进行类型转换
  11. P64 ECMAScript中的参数在内部是用一个数组来表示的,可以通过
    arguments对象接收参数,利用这个参数实现类似重载的功能;
    命名参数只提供便利,不必需

第四章 变量、作用域和内存问题

  1. P70 访问变量有按值和按引用两种,而参数只能按值传递
  2. P72 引用类型的值检测,instanceof
  3. P73 执行环境及作用域
  4. P76 没有块级作用域,使用var声明的变量会自动添加到最接近的环境
  5. P78 垃圾收集,两种方式:标记清除和引用计数;
    引用计数会引起循环引用问题;
    用户可以手动启动浏览器的垃圾收集功能;
  6. P81 管理内存,全局变量可以解除引用

第五章 引用类型

  1. P83引用类型是一种数据结构,用于将数据和功能组织在一起,俗称类
    常用的引用类型基本都重写了Object的valueOf()\toLocaleString()֖\toString()三个方法
  2. P83 Object类型
  3. P103Array类型
    P105检测数组 Array.isArray()
    P107数组转换成字符串用join,toLocaleString() ,toString()֖,valueof()
    P109数组的方法,push,pop,shift,unshift,sort,reserve,
    P96 迭代方法 every,some,map,forEach,filter
    P115归并方法reduce
  4. P116Date类型
  5. P120 RegExp 类型
  • 匹配模式有三个:i(忽略大小写),g(全局),m(多行模式)
  • 正则表达式中的元字符:( [ { \ ^ $ | ) ? * + . ]}
  • 实例方法: exec(),test()
  1. P110 Function类型
  • 函数是对象

  • 函数声明提前

  • P114函数内部属性arguments,this

    • arguments对象有一个属性callee,该属性是一个指针,指向拥有这个arguments对象的函数
    • this引用的是函数据以执行的环境对象;在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定)。this 不能在执行期间被赋值,并且在每次函数被调用时 this 的值也可能会不同。ES5 引入了 bind 方法来设置函数的 this 值,而不用考虑函数如何被调用的。ES2015 引入了箭头函数,箭头函数不提供自身的 this 绑定(this 的值将保持为闭合词法上下文的值)
    • 当在全局作用域中调用一个函数时,this对象总是指向Global对象
  • P116函数的属性和方法

    • 属性有length和prototype
      prototype是保存引用类型所有实例方法的真正所在;prototype属性是不可枚举的,因此使用for-in无法发现
    • 每个函数都有两个非继承来的方法apply()֖和call(),用法是在特定的作用域调用函数,实际上等于设置函数体内this的值
    • bind()方法创建一个函数的实例,其this值会被绑定到传给bind()函数的值

7.P118基本包装类型:Boolean,Number ,String

  • 引用类型和基本包装类型的主要区别是对象的生存周期
  • Number类型的方法toPrecision,toExponential,toFixed
  • P123 String的方法 charAt/charCodeAt/concat/slice/substr()֖/substring()/indexOf/lastIndexOf/trim()/trimLeft()/trimRight()/toUpperCase/toLowerCase/localeCompare/fromCharCode
  • 字符串模式匹配方法: match(), search(),replace(),split()
    • match用法:text.match(pattern)与pattern.exec(text)相同

8.单体内置对象:由 ECMAScript 实现提供的对象,在ECMAScript 程序之前已存在

  • Global对象
    方法: encodeURI/encodeURIComponent/decodeURI/decodeURIComponent
  • eval()方法
  • window 对象
  1. P134 Math对象
  • Math的方法:min/max/ceil/floor/round/random

第六章 面向对象的程序设计

1、P139 属性类型: 数据属性和访问器属性

  • ECMA-262 定义只有内部才会访问的属性时,描述了属性的各种特征
  • 为了表示特性是内部值,该规范把他们放在了两对方括号中如[[Enumerable]]
  • 修改属性默认的特性Object.defineProperty(obj,attr,{configurable: false})

2、P141访问器属性getter和setter

  • 使用属性值的一个常用方式是,设置一个属性的值会导致其他属性发生变化
    setter - JavaScript | MDN (mozilla.org)
  • 定义多个属性的方法Object.defineProperties
  • 读取属性的特性:Object.getOwnPropertyDescriptor()

3.P144创建对象

  • 工厂模式
  • P145构造函数模式:new出来的对象会有一个constructor属性,值是该构造函数
  • 原型模式: 构造函数的prototype属性,包含了该构造函数所有实例化的对象共享的属性和方法


    image.png
    • isPrototypeOf()
    Person.prototype.isPrototypeOf(person1)
    
    • Object.getPrototypeOf()
    Object.getPrototypeOf(person1) == Person.prototype
    
    • hasOwnProperty()
    person1.hasOwnProperty("name")
    
    • P152 原型与in的关系:不管时原型上的属性还是对象本身的属性都能访问
    • Object.keys()
    • P155更简单的原型语法,会使构造函数的constructor属性不再指向该构造函数,如果想使用,可以在原型中手动加这个属性,指向构造函数
  • 组合使用构造函数和原型模式
  • 动态原型模式
  • P161 寄生构造函数模式:这个模式可以在特殊情况下用来为对象创建构造函数
  • 稳妥构造函数模式:不使用this和new

4.继承

  • 原型链:用父函数的实例对象覆盖子函数的原型


    image.png
  • P167借用构造函数
    在子类型构造函数的内部调用超类型构造函数,使用call或apply实现
  • 组合继承

第七章 函数表达式

1、P177 递归:一个函数通过名字调用自身
2、闭包:有权访问另外一个函数作用域中的变量的函数

  • P182 关于this对象: 匿名函数的this一般是全局;如果把外部作用域中的this对象保存在一个闭包能够访问的变量里,就可以让闭包访问该对象了(var that = this)
  • 内存泄漏

3、模仿块级作用域: 使用立即执行函数
4、P188私有变量

  • 包含函数的参数,局部变量和函数内部定义的其他函数
  • 特权方法: 有权访问私有变量和私有函数的公有方法
  • 单例模式: 只有一个实例的对象
var singleton = function(){ 
// 私有属性
 var privateVariable = 10; 
// 私有方法
 function privateFunction(){ 
   return false; 
 } 
// 公有方法和属性
 return { 
       publicProperty: true, 
       publicMethod : function(){ 
         privateVariable++; 
         return privateFunction(); 
      } 
 }; 
}(); 
  • P191 增强的模块模式

第八章 BOM

1、window对象

  • 窗口关系及框架:frames属性
  • 窗口位置:screenLeft/screenTop/moveTo()/moveBy()
  • 窗口大小: innerWidth/innerHeight/outerWidth/outerHeight/resizeTo/resizeBy
  • 导航和打开窗口:window.open()
  • P203 间歇调用和超时调用:setTimeout()/clearTimeout()/setInterval()/clearInterval()
    一般认为,使用超时调用来模拟间歇调用的是一种最佳模式
    JavaScript是一个单线程的解释器,因此一定时间内只能执行一段代码。为了控制要执行的代码,有一个JavaScript任务队列,这些任务会按照将他们添加到队列的时间顺序执行。
  • 系统对话框:alert()Njconfirm()֖和prompt()

2、P208 location对象


image.png
  • replace()方法,不会生成浏览记录
  • reload():重新加载

3、navigator对象

  • 注册处理程序:navigator.registerContentHandler

4、screen对象
5、history对象

第九章 客户端检测

第十章 DOM

1、定义: DOM描绘了一个层次化的节点树,允许开发人员添加,移除和修改页面的某一部分
2、P248 节点层次

  • Node节点
  • P254 Document类型
    • 查找元素:getElementById()/getElementsByTagName()
    • P258 特殊集合: document.forms/document.images/document.links
  • P261 Element对象
    • HTML对象
    • 取得属性: getAttribute()、setAttribute()֖、removeAttribute()
      注意:自定义属性需要加上data-前缀,以便验证
    • attributes属性
    • 创建元素: document.createElement()/ appendChild()/ insertBefore()/replaceChild()
    • 元素的子节点
  • Text类型
  • Comment类型
  • CDATASection类型
  • DocumentType类型

2、DOM操作技术

  • 动态脚本
  • 动态样式
  • 操作表格

第十一章 DOM扩展

  • 选择符API: querySelector()/querySelectorAll()
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容