随笔分类 -  JavaScript基础

摘要:Promise与异步编程 一、JS异步编程背景 JS引擎建立在单线程事件循环的概念上,JS引擎在同一时刻只能执行一段代码。 每当一段代码准备被执行时,它就会被添加到作业队列。当JS引擎结束当前代码 执行后,事件循环就会执行队列中的下一个作业。事件循环(event loop)是JS 引擎的一个内部处理 阅读全文
posted @ 2019-05-25 16:53 Shadowplay 阅读(350) 评论(0) 推荐(0) 编辑
摘要:类与模块 一、类 一)类的声明 自有属性:属性只出现在实例而不是在原型上,而且只能由构造函数和方法来创建。 差异: 1. 类声明和函数定义不同,它们是不会被提升的。类声明的行为和 let 比较相似,所以当执行流作用到类声明之前类会存在于暂存性死区(temporal dead zone) 内。2. 类 阅读全文
posted @ 2018-11-01 11:31 Shadowplay 阅读(248) 评论(0) 推荐(0) 编辑
摘要:ES6快速入门 一、解构 1. 对象解构 默认值: 赋值给不同名字的变量: 2.数组解构 嵌套: 剩余项: 3.混合解构 混合使用数组和对象解构。 4.参数解构 使用对象或数组解构的使用形式取代了命名参数 必选的参数解构: 调用函数时未给参数解构传值会抛出错误。例如: js引擎的实际做法 二、符号与 阅读全文
posted @ 2018-10-31 10:42 Shadowplay 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:ES6快速入门 一、块级绑定 1.var声明与变量提升 使用var声明的变量,不论在何处都会被视为(声明)在函数级作用域顶部的位置发生。 因此可视为: 变量声明被提升到顶部,但初始化位置没有变。 2.let声明 1)let声明会将变量的作用域限制在当前的代码块中。 2)如果一个标识符在当前作用域已经 阅读全文
posted @ 2018-10-26 16:10 Shadowplay 阅读(820) 评论(0) 推荐(0) 编辑
摘要:最佳实践 一)松散耦合 1.解耦HTML/JavaScript: 1)避免html种使用js 2)避免js种创建html 2.解耦CSS/JS 操作类 3.解耦应用逻辑和事件处理 以下是要牢记的应用和业务逻辑之间松散耦合的几条原则:勿将 event 对象传给其他方法;只传来自 event 对象中所需 阅读全文
posted @ 2018-04-04 00:01 Shadowplay 阅读(258) 评论(0) 推荐(0) 编辑
摘要:错误处理与测试 一、错误处理 一)try-catch语句 错误类型: 1)Error:错误基类,其他错误类型都由该类继承。 2)EvalError:没有把eval()当函数调用时,会发送该错误。 3)RangeError:数值超出范围 4)ReferenceError:找不到对象时 5)Syntax 阅读全文
posted @ 2018-04-03 22:13 Shadowplay 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Ajax 一、XMLHttpRequest对象 一)XHR用法 当我们发送异步请求时可以检测xhr对象的readyState,以表示请求的状态属性其值可以是: 1)0:尚未调用open()方法 2)1:已经调用open()方法,但还没有调用send()方法 3)2:已经调用send()方法,但还没有 阅读全文
posted @ 2018-03-12 23:25 Shadowplay 阅读(246) 评论(0) 推荐(0) 编辑
摘要:JSON 关于JSON,最重要的一点是理解它是一种数据格式,不是编程语言。 一、语法 JSON 不支持变量、函数或对象实例,它就是一种表示结构化数据的格式,虽然与 JavaScript 中表示数据的某些语法相同,但它并不局限于 JavaScript 的范畴。 JSON语法可以表示下列三种类型的值: 阅读全文
posted @ 2018-03-11 23:31 Shadowplay 阅读(240) 评论(0) 推荐(0) 编辑
摘要:表单脚本 一、表单基础知识 JavaScript中表单对应的是HTMLFormElement类型,该类型继承自HTMLElement类型。 通过document.forms可以获得所有表单元素,通过数值索引和name特性可以获得其中特定的表单。 一)提交表单 单击提交按钮或者图像按钮就可以提交表单。 阅读全文
posted @ 2018-03-04 22:54 Shadowplay 阅读(263) 评论(0) 推荐(0) 编辑
摘要:事件 一、事件流 事件流描述的是从页面中接收事件的顺序。 一)事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。 如:div >body >html 二)事件捕获 Netscape的事件流叫做事件捕获,与事件冒泡的顺序相反。 虽然事件捕获是 Ne 阅读全文
posted @ 2018-02-27 21:56 Shadowplay 阅读(216) 评论(0) 推荐(0) 编辑
摘要:DOM DOM可以将任何HTML或者XML文档描述成一个由多层节点构成的结构。 一、节点层次 一)Node类型 DOM1定义了一个Node接口,该接口将由DOM中所有节点类型实现。 每一个节点都有一个nodeType属性,用于表明节点类型。节点类型由在Node类型中定义的12个数值常量来表示。  阅读全文
posted @ 2018-02-23 10:19 Shadowplay 阅读(175) 评论(0) 推荐(0) 编辑
摘要:BOM 一、Window对象 在浏览器中window对象即是全局对象,又是JavaScript访问浏览器的一个接口。 定义全局变量和定义window对象还是有差别的,全局变量不能通过delete操作符删除,而window变量可以。 用var添加的window属性其[[Configurable]]特性 阅读全文
posted @ 2018-02-05 13:45 Shadowplay 阅读(147) 评论(0) 推荐(0) 编辑
摘要:函数表达式 一、闭包 概念:闭包是指有权访问另一个函数作用域中变量的函数。 如果一个闭包能访问的函数被执行完毕,作用域链(本质上是一个指向变量对象的指针列表)被销毁后, 其活动对象也不会被销毁,因为它们被闭包引用,知道闭包函数被销毁后,它们才被销毁。 由于闭包会携带包含它函数的作用域,所以会占用更多 阅读全文
posted @ 2018-02-01 16:32 Shadowplay 阅读(219) 评论(0) 推荐(0) 编辑
摘要:JS式面向对象 一、理解对象 一)属性类型 ECMA-262 第 5 版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征。 ECMA-262 定义这些特性是为了实现 JavaScript 引擎用的,因此在 JavaScript 中不能直接访问它们。 1.数据 阅读全文
posted @ 2018-01-31 16:25 Shadowplay 阅读(226) 评论(0) 推荐(0) 编辑
摘要:引用类型 引用类型的值(对象)是引用类型的一个实例。 一、Object类型 创建Object实例: 访问: 二、Array类型 1.数组的每一项可以保存任何类型的数据 2.数组的大小可以动态调整 创建数组: 检测是否为数组: 转换: 栈方法(先进后出): push()函数:接收任意数量的参数,并逐个 阅读全文
posted @ 2018-01-31 10:30 Shadowplay 阅读(336) 评论(0) 推荐(0) 编辑
摘要:变量、作用域和内存问题 一、基本类型和引用类型的值 基本类型值:简单的数据段 引用类型值:由多个值构成的对象 基本类型是按值访问的,引用类型是按引用访问的。 不能给基本类型的值添加属性,尽管不会报错。 当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配 阅读全文
posted @ 2018-01-30 10:22 Shadowplay 阅读(153) 评论(0) 推荐(0) 编辑
摘要:基本概念 一、语法 一)区分大小写 二)标识符 书写规则同Java 三)注释 略 四)严格模式 1.在整个脚本中启用严格模式:在顶部添加 "use strict" 2.指定函数在严格模式下执行: 二、变量 ECMAScript变量类型是松散类型,所谓松散类型就是可以保存任何类型的数据。 三、数据类型 阅读全文
posted @ 2018-01-29 23:47 Shadowplay 阅读(133) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示