暂时未有相关云产品技术能力~
系统运维工程师
Cookie 是服务器保存在浏览器的一小段文本信息,一般大小不能超过4KB。浏览器每次向服务器发出请求,就会自动附上这段信息。
navigator.userAgent属性返回浏览器的 User Agent 字符串,表示用户设备信息,包含了浏览器的厂商、版本、操作系统等信息。
浏览器里面,window对象(注意,w为小写)指当前的浏览器窗口。它也是当前页面的顶层对象,即最高一层的对象,所有其他对象都是它的下属。一个变量如果未声明,那么默认就是顶层对象的属性。
网页中嵌入 JavaScript 代码,主要有四种方法。 • <script>元素直接嵌入代码。 • <script>标签加载外部脚本 • 事件属性 • URL 协议
某个对象的abort事件(停止加载)发生时,就会调用onabort属性指定的回调函数。 各种元素的停止加载事件,到底如何触发,目前并没有统一的规定。因此实际上,这个属性现在一般只用在<img>元素上面。
beforeunload事件在窗口、文档、各种资源将要卸载前触发。它可以用来防止用户不小心卸载资源。
拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里。
浏览器的触摸 API 由三个部分组成。 • Touch:一个触摸点 • TouchList:多个触摸点的集合 • TouchEvent:触摸引发的事件实例
input事件当<input>、<select>、<textarea>的值发生变化时触发。对于复选框(<input type=checkbox>)或单选框(<input type=radio>),用户改变选项时,也会触发这个事件。另外,对于打开contenteditable属性的元素,只要值发生变化,也会触发input事件。
进度事件用来描述资源加载的进度,主要由 AJAX 请求、<img>、<audio>、<video>、<style>、<link>等外部资源的加载触发,继承了ProgressEvent接口。它主要包含以下几种事件。
键盘事件由用户击打键盘触发,主要有keydown、keypress、keyup三个事件,它们都继承了KeyboardEvent接口。
鼠标事件主要有下面这些,所有事件都继承了MouseEvent接口。
事件发生以后,会产生一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象,所有的事件都是这个对象的实例,或者说继承了Event.prototype对象。
浏览器的事件模型,就是通过监听函数(listener)对事件做出反应。
DOM 节点的事件操作(监听和触发),都定义在EventTarget接口
Mutation Observer API 用来监视 DOM 变动。DOM 的任何变动,比如节点的增减、属性的变动、文本内容的变动,这个 API 都可以得到通知。
操作 CSS 样式最简单的方法,就是使用网页元素节点的getAttribute()方法、setAttribute()方法和removeAttribute()方法,直接读写或删除网页元素的style属性。
文本节点(Text)代表元素节点(Element)和属性节点(Attribute)的文本内容。如果一个节点只包含一段文本,那么它就有一个文本子节点,代表该节点的文本内容。
元素对象有一个attributes属性,返回一个类似数组的动态对象,成员是该元素标签的所有属性节点对象,属性的实时变化都会反映在这个节点对象上。其他类型的节点对象,虽然也有attributes属性,但返回的都是null,因此可以把这个属性视为元素对象独有的。
Element节点对象对应网页的 HTML 元素。每一个 HTML 元素,在 DOM 树上都会转化成一个Element节点对象(以下简称元素节点)。
document节点对象代表整个文档,每张网页都有自己的document对象。
如果当前节点是父节点,就会混入了(mixin)ParentNode接口。由于只有元素节点(element)、文档节点(document)和文档片段节点(documentFragment)拥有子节点,因此只有这三类节点会拥有ParentNode接口。
NodeList实例是一个类似数组的对象,它的成员是节点对象。
nodeType属性返回一个整数值,表示节点的类型。
DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model)。它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作(比如增删内容)。
Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口。它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口。Promise 可以让异步操作写起来,就像在写同步操作的流程,而不必一层层地嵌套回调函数。
setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。
单线程模型指的是,JavaScript 只在一个线程上运行。
早期的 JavaScript 语言有很多设计不合理的地方,但是为了兼容以前的代码,又不能改变老的语法,只能不断添加新的语法,引导程序员使用新语法。
Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法。
JavaScript 通过构造函数生成新对象,因此构造函数可以视为对象的模板。
this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。
面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。
JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。
正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本。
Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。
Math对象的静态属性,提供以下一些数学常数。 • Math.E:常数e。 • Math.LN2:2 的自然对数。 • Math.LN10:10 的自然对数。 • Math.LOG2E:以 2 为底的e的对数。 • Math.LOG10E:以 10 为底的e的对数。 • Math.PI:常数π。 • Math.SQRT1_2:0.5 的平方根。 • Math.SQRT2:2 的平方根。
String对象是 JavaScript 原生提供的三个包装对象之一,用来生成字符串对象。
Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。
Boolean对象是 JavaScript 的三个包装对象之一。
对象是 JavaScript 语言最主要的数据类型,三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”(wrapper)。
Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组。
JavaScript 提供了一个内部数据结构,用来描述对象的属性,控制它的行为,比如该属性是否可写、可遍历等等。这个内部数据结构称为“属性描述对象”(attributes object)。
JavaScript 原生提供Object对象(注意起首的O是大写),本章介绍该对象原生的各种方法。
console对象是 JavaScript 的原生对象,它有点像 Unix 系统的标准输出stdout和标准错误stderr,可以输出各种信息到控制台,并且还提供了很多有用的辅助方法。
“编程风格”(programming style)指的是编写代码的样式规则。不同的程序员,往往有不同的编程风格。
JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象。
JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。
void运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefined。
二进制位运算符用于直接对二进制位进行计算,一共有7个。