[TOC]
JavaScript是运行在浏览器上的一种脚本语言,有两部分组成,一是它的基本语法,而是由浏览器提供的WebApi,用于操作客户端网页的元素,如 HTML,CSS 等。
JavaScript之所以可以在浏览上面直接被执行,是因为浏览器中都有着自己的JS解析引擎,如 chrome的是 V8,firefox 的是 OrdinMonkey,Safiri 的是 JSCore, IE 的是 Chakra。这些解析引擎是可以直接执行js代码,不要进行编译。chrome 的 V8 解析引擎是最好的。
一 DOM
dom(document object model)文档对象模型
document 对象是其的最基本的一个对象,即用于管理 html文件,将 html 对象,其他的标签,属性,文本都是转化为对象由 document 来进行管理。可以看作一个树形结构,有层级关系
JavaScript 中的对象有三种类型
- 用户创建的对象,Object类型的实例变量
- 内建对象,如:Array,Date,Math 等
- 宿主对象,即 JavaScript 的运行环境,如运行在浏览器中,运行在 NodeJs 上,这个宿主也有自己提供的对象实例
1.1、获取节点
// 通过标签名获取元素
let els = document.getElementsByTagName('li')
console.log(els)
// 通过类名获取
let aaa = document.getElementsByClassName('aaa')
console.log(aaa)
// 通过id
let kk = document.getElementById('kk')
console.log(kk)
二 BOM
bom(browser object model)浏览器对象模型。
- window
- location
- screen
- navigator
-
2.1、window
window对象,在 JavaScript 中使用的时候,可以直接省略该对象名,直接使用方法,因为 JavaScript 中如果直接声明的变量,都是挂载在 window 对象下的
弹出框的三个方法: alert
- confirm
prompt ```html
定时器的三个方法 1. setTimeout 1. setInterval 1. clearTimeout 1. clearInterval ```html <script> // 延迟执行 window.setTimeout(() => { console.log('延迟两秒执行') }, 2000) // 定时周期性执行 setInterval(() => { console.log('每两秒执行一次') }, 2000) // 清除定时器 let index = 0; let timer = setInterval(() => { index++; console.log('1s 执行一次') if (index === 10) { // 结束 clearInterval(timer) console.log('清除定时器') } }, 1000) </script>
2.2、location
location对象存储浏览器地址栏上的 url 信息,location 有很多属性用于获取到 url 的各个部分的数据,还可以用于页面跳转。
<script> let href = location.href console.log(href) console.log(location.host, location.hostname, location.port, location.pathname, location.search) // 将 URL 的参数转化成 JSON let str = location.search.length > 0 ? location.search.substring(1) : "" let json = {} if (str.length > 0) { let arr = str.split('&') for (const str of arr) { let arr2 = str.split('=') const k = arr2[0] json[k] = arr2[1] } console.log(json) } </script>
浏览器跳转
- location.href 会产生历史记录,点击后退会返回前一个页面
- location.replace 方法,跳转后不能返回前一个页面
location.reload() 刷新页面
setTimeout(() => { const url = 'https://search.bilibili.com/all?keyword=JavaScript%20bom' location.href = url location.replace(url) }, 2000)
2.3、navigator
```html
<a name="ebQGv"></a> ## 2.4、history history对象记录的是浏览器的浏览历史<br />go(num):可以对浏览器页面进行前进或者后退,num取值:正数表示前进,负数表示后退 ```javascript setTimeout(() => { history.go() // 也表示刷新当前页面, 和 location.reload() 效果一样 }, 2000)
三 AJax
四 Canvas
五 JS内置对象