找回密码
 立即注册
首页 业界区 安全 前端三剑客——javascript-BOM-DOM-http协议-异步 ...

前端三剑客——javascript-BOM-DOM-http协议-异步

僻嘶 2025-11-10 03:50:20
  大纲:
  1.BOM(浏览器对象模型)
       window对象
       location对象
       本地存储
  2.DOM(文档对象模型)
      元素操作(直接获取/间接获取)
      事件操作
  3.js异步
      Promise
      Async/await
  4.HTTP协议
      URL地址解释
      HTTP协议概述
      常见HTTP请求方法
      请求与响应流程
      常见的响应状态码
      
 
 
BOM(浏览器对象模型)
  window  当前网页创建的超全局对象
  1. //window
  2. //浏览器窗口显示内容区域的高宽
  3. console.log(innerWidth);
  4. console.log(innerHeight);
  5. //浏览器窗口的整体高宽
  6. console.log(outerHeight);
  7. console.log(outerHeight);
复制代码
  location  地址栏对象
  1. //location      地址栏对象
  2. /**
  3. * location.assign(url) :   跳转
  4. * location.reload()    :   刷新
  5. */
复制代码
  1. //location      地址栏对象
  2. /**
  3. * location.assign(url) :   跳转
  4. * location.reload()    :   刷新
  5. *///location.assign(url)      跳转到指定url地址location.assign('https://www.cnblogs.com/guohan222/p/19185633');//location.reload()         刷新setInterval(function () {    location.reload();},2000)
复制代码
  本地存储  
  1. //本地存储
  2. /**
  3. * 根据  域名/IP:端口  不同对数据进行分开存储在浏览器中   同一域名不同端口存储的数据也不同
  4. * localStorage:    永久存储
  5. * sessionStorage:   会话存储(关闭浏览器后数据清除)
  6. *
  7. *
  8. * localStorage和sessionStorage方法一样
  9. * 增:
  10. * localStorage.setItem(‘属性’,‘值’)
  11. * localStorage.属性 = 值
  12. *
  13. * 删:
  14. * localStorage.removeItem('属性')    指定删除
  15. * localStorage.clear()              全部删除
  16. *
  17. * 改:
  18. * localStorage,属性 =  值
  19. *
  20. * 查:
  21. * localStorage.getItem('属性')
  22. * localStorage.属性
  23. */
复制代码
  1. //本地存储
  2. /**
  3. * 根据  域名/IP:端口  不同对数据进行分开存储在浏览器中   同一域名不同端口存储的数据也不同
  4. * localStorage:    永久存储
  5. * sessionStorage:   会话存储(关闭浏览器后数据清除)
  6. */
  7. //localStorage      永久存储
  8. //添加数据到本地存储中
  9. localStorage.setItem('name', 'guohan');
  10. localStorage.age = 22;
  11. //在本地存储中删除数据
  12. //指定删除
  13. localStorage.removeItem('name');
  14. //全部删除
  15. localStorage.clear();
  16. //修改本地存储中的数据
  17. localStorage.name = 'gh';
  18. //获取本地存储中的数据
  19. console.log(localStorage.getItem('name'));
  20. console.log(localStorage.age);
复制代码
 
DOM(文档对象模型)
  元素操作(直接获取/间接获取)
  1. //DOM文档对象模型
  2. /**
  3. * 元素的获取
  4. *              直接获取
  5. * 通过css样式选择器获取单一元素:                          document.querySelector('选择器')
  6. * 通过css样式选择器获取多个元素(数组):                    document.querySelectorAll('选择器')
  7. * 通过id属性值获取单一元素:                              document.getElementById('id属性值')
  8. * 通过标签获取多个元素(数组):                           document.getElementsTagName('标签')
  9. * 通过class属性值获取多个元素(数组):                    document.getElementsByClassName('class属性值')
  10. *
  11. *              间接获取
  12. * 获取此元素的子元素:                                   .children
  13. * 获取此元素的第一个/最后一个子元素:                       .firstElementChild / .lastElementChild
  14. * 获取子元素的父级元素:                                  .parentElement
  15. * 获取元素的下一个/上一个兄弟元素:                         .nextElementSibling / .previousElementSibling
  16. *
  17. */
复制代码
方法演示
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6.    
  7. </head>
  8. <body>
  9. <ul>
  10.     <li >1</li>
  11.     <li id="f2">点我</li>
  12.     <li>3</li>
  13.     <li>4</li>
  14.     <li >5</li>
  15. </ul>
  16. </body>
  17. </html>
复制代码
  事件操作
基于本地存储实现任务列表
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6.    
  7. </head>
  8. <body>
  9.    
  10.         <input type="text" name="content" value="">
  11.         <button  >添加</button>
  12.    
  13.    
  14.         <ol ></ol>
  15.         
  16.    
  17. </body>
  18. </html>
复制代码
 
js异步操作
  Promise  Javascript中用于处理异步操作的操作对象
  1. //js异步解决方案1:Promise   :   代表异步操作最终的结果以及结果值的对象,简单来说是js中用于处理异步操作的对象
  2. /**
  3. * promise三种状态
  4. * pending
  5. * fulfilled
  6. * rejected
  7. *
  8. * 异步格式:
  9. * var promise = new Promise(function(resolve,reject){
  10. *     if(异步操作成功){
  11. *         resolve(value);
  12. *     }else{
  13. *         reject(error);
  14. *     }
  15. * })
  16. *
  17. * //.then()和.catch() :  promise状态发生改变触发
  18. * promise.then(res=>console.log(res)).catch(err=>console.log(err));
  19. *
  20. * //Promise.all([]) :
  21. * 将多个Promise实例包装成一个Promise实例
  22. * 所有都成功时:返回一个结果数组
  23. * 只要有一个失败时:返回最先被reject状态的值
  24. *
  25. * //Promise.race([]):
  26. * 将多个Promise实例包装成一个Promise实例
  27. * 不管状态是否是成功还是失败,哪个结果获得的快就返回哪个结果
  28. * @type {Promise<unknown>}
  29. */
复制代码
  1. //基本格式与promise。then()和,catch()
  2. var promise = new Promise(function(resolve,reject){
  3.     // resolve('ab');
  4.     reject('aa');
  5. });
  6. //promise状态发生改变就会触发
  7. promise.then(res=>{
  8.     console.log(res);
  9. }).catch(err=>{
  10.     console.log(err);
  11. })
  12. //Promise.all([])
  13. let promise1 = new Promise(function (resolve, reject) {
  14.     resolve('success1');
  15. })
  16. let promise2 = new Promise(function (resolve, reject) {
  17.     resolve('success2');
  18. })
  19. let promise3 = new Promise(function (resolve, reject) {
  20.     reject('bad');
  21. })
  22. Promise.all([promise1, promise2]).then(res=>console.log(res)).catch(error=>console.error)                   //(2) ['success1', 'success2']
  23. Promise.all([promise1, promise2,promise3]).then(res=>console.log(res)).catch(err=>console.log(err));        //bad
  24. //Promise.race([])
  25. let promise1 = new Promise(function (resolve, reject) {
  26.     setTimeout(function () {
  27.         resolve('success1');
  28.     }, 1000);
  29. })
  30. let promise2 = new Promise(function (resolve, reject) {
  31.     setTimeout(function () {
  32.         resolve('success2');
  33.     }, 2000);
  34. })
  35. let promise3 = new Promise(function (resolve, reject) {
  36.     setTimeout(function () {
  37.         reject('success3');
  38.     }, 200);
  39. })
  40. Promise.race([promise1, promise2]).then(res => console.log(res)).catch(err => console.log(err));
  41. Promise.race([promise1,promise2, promise3]).then(res => console.log(res)).catch(err => console.log(err));
  42. //success3
  43. //success1
复制代码
  Async/await  Javascript中用于处理异步操作的操作对象    本质上还是Promise
  1. //js异步解决方案2: Async/await    :本质上还是Promise
  2. /**
  3. * 格式:
  4. * async function f1(){
  5. *     return ???;
  6. *     等同于:
  7. *            // return Promise.resolve('abc');
  8. *           // return new Promise((resolve,reject)=>resolve('abc'))
  9. * }
  10. *
  11. *
  12. * // async 函数的核心作用就是自动将函数返回值包装成 Promise—— 如果函数本身已经返回 Promise,再加 async 就是 “多此一举”,完全没必要。
  13. * 例如:
  14. *     function f1(){
  15. *         return new Promise((resolve,reject)=>{
  16. *             setTimeout(()=>{resolve('111')},2000)
  17. *         })
  18. *     }
  19. *
  20. *
  21. * //遇到await会阻塞后面代码等执行完成后再执行后面代码
  22. *      如果结果状态是reject则后面代码不执行      得加try{}catch(e){}才能接收到reject状态并执行catch里面的代码
  23. *
  24. *
  25. * @returns {Promise<unknown>}
  26. */
复制代码
  1. //初识async
  2. async function f1(){
  3.     return 'abc';
  4.       // 本质上是自动包装成Promise对象:
  5.       // async 函数的核心作用就是自动将函数返回值包装成 Promise—— 如果函数本身已经返回 Promise,再加 async 就是 “多此一举”,完全没必要。
  6.       // return Promise.resolve('abc');
  7.       // return new Promise((resolve,reject)=>{resolve('abc')})
  8. }
  9. console.log(f1());     // Promise{<fulfilled>: 'abc'}
  10. //与await结合  且结果状态是resolve
  11. function f1(){
  12.     return new Promise((resolve,reject)=>{
  13.         setTimeout(()=>{resolve('111')},2000)
  14.     })
  15. }
  16. async function f2(){
  17.     return '222'
  18. }
  19. async function f3(){
  20.     let a1 = await f1();
  21.     let a2 = await f2();
  22.     let a3 = '333';
  23.     console.log(a1);
  24.     console.log(a2);
  25.     console.log(a3);
  26. }
  27. f3()
  28. //与await结合  且结果状态是reject则后面代码不执行      得加try{}catch(e){}才能接收到reject状态并执行catch里面的代码
  29. function f1() {
  30.     return new Promise((resolve,reject) => {
  31.         setTimeout(() => {
  32.             reject('111')
  33.         }, 2000)
  34.     })
  35. }
  36. async function f2() {
  37.     return '222'
  38. }
  39. async function f3() {
  40.     try {
  41.         let a1 = await f1();
  42.         let a2 = await f2();
  43.         let a3 = '333';
  44.         console.log(a1);
  45.         console.log(a2);
  46.         console.log(a3);
  47.     } catch (e) {
  48.         console.log(e);
  49.     }
  50. }
  51. f3()
复制代码
 
HTTP协议
  URL地址解释
1.png

2.png

  HTTP协议概述
3.png

4.png

  常见HTTP请求方法
5.png

  请求与响应流程
6.png

  常见的响应状态码
7.png

8.png

9.png

 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2025-11-27 01:12:02

举报

您需要登录后才可以回帖 登录 | 立即注册