…
1. 基本用法
1.1. 基本概念
- 用于操作html和css; node.js扩展了js,可以跟操作系统API打通;
- 位于 html页面的
<body>
和<head>
内,<script>
之间;
1.2. 输出
1 | indow.alert() // 弹出警告框。 |
1.3. 变量
1 | // ES6之前,只有两种作用域,全局, 函数内 |
1.4. 数据类型
- Primitive
- String
- Number, 所有 JavaScript 数字均为 64 位
- Boolean
- Null
- Undefined
- Symbol, ES6,独一无二的值
- Object
- Array
- Object
- Function
- Date
- Regex
- …
1.5. 字符串
- 字符串模板
1 | const name = 'Runoob'; |
1.6. 严格模式
1 | // ES5之后 |
1.7. 箭头函数
1 | let add = (a,b) => a+b; |
2. 异步
2.1. setTimeout
1 | function print() { |
2.2. AJAX
Asynchronous JavaScript and XML
; 可以在不重新加载整个页面的情况下,与服务器交互并更新部分网页内容;
XMLHttpRequest
用于在后台与服务器交换数据, 只是实现 Ajax 的一种方式。所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
1 | var xhr = new XMLHttpRequest(); |
更现代的是 await fetch(url);
2.3. Promise
ES6新增的类. 构造函数用函数做参数, 该函数是同步的并且会被立即执行,所以我们称之为起始函数,起始函数包含两个参数 resolve 和 reject,分别表示 Promise 成功和失败的状态, 用于返返回成功还是失败的通知。
起始函数执行成功时,它应该调用 resolve 函数并传递成功的结果。当起始函数执行失败时,它应该调用 reject 函数并传递失败的原因。
Promise 构造函数返回一个 Promise 对象,该对象具有以下几个方法:
- then:用于处理 Promise 成功状态的回调函数。
- catch:用于处理 Promise 失败状态的回调函数。
- finally:无论 Promise 是成功还是失败,都会执行的回调函数。
1 | new Promise(function (resolve, reject) { |
Promise
本身不是异步执行流程,只不过是变换了函数的编程方式,将原来的回调嵌套变成了用 .then()
顺序连接的形式。
2.4. async
ES2017标准规范, 要配合 Promise
一起使用。
1 | function print(delay, message) { |
3. HTML DOM
可以用js通过 HTML DOM 访问 HTML 所有元素。
3.1. 找到 DOM 元素
1 | // 1. 通过ID |
3.2. 改变HTML内容
1 | // 改变内容 |
3.3. DOM事件
1 | document.getElementById("myBtn").onclick=function(){displayDate()}; |
- 鼠标事件
onclick, oncontextmenu, ondblclick, onmnousedown...
- 键盘事件
onkeydown, onkeypress, onkeyup
- 框架/对象事件
onload, onscroll, onresize, onpagehide...
- 表单事件
onchange, onfucus, onreset, onselect, onsubmit...
- 剪贴板事件
oncopy, oncut, onpaste
- 打印事件
onafterprint, onbeforeprint
- 拖动事件
ondrag, ondragend, ondrop...
- 多媒体事件
onpause, onplay, onprogeess, onsuspend, onseeking...
- 动画事件
animationend, animationiteration, animationstart
- 其他事件
onmessage, online...
4. 浏览器对象模型(BOM)
BOM使js能与浏览器通信.
window
它表示浏览器窗口。
- window.screen 对象包含有关用户屏幕的信息。
- window.location 对象用于获得当前页面的地址 (URL)
- window.history 对象包含浏览器的历史。
- window.navigator 对象包含有关访问者浏览器的信息。
navigator
浏览器本身的信息
navigator.appName:浏览器名称;
navigator.appVersion:浏览器版本;
navigator.language:浏览器设置的语言;
navigator.platform:操作系统类型;
navigator.userAgent:浏览器设定的User-Agent字符串。
screen
设备屏幕信息
screen.width:屏幕宽度,以像素为单位;
screen.height:屏幕高度,以像素为单位;
screen.colorDepth:返回颜色位数,如8、16、24。
location
当前页面的URL信息
location.protocol; // ‘http’
location.host; // ‘www.example.com‘
location.port; // ‘8080’
location.pathname; // ‘/path/index.html’
location.search; // ‘?a=1&b=2’
location.hash; // ‘TOP’
document
当前页面, 以DOM形式表示
history
保存浏览器的历史记录
5. 常用操作
5.1. 遍历数组
1 | // for |
跨域访问
指从本网址访问外部网址数据,需要外部网站同意,才能获取外部网站内容