Window对象

  • BOM
  • Window对象
    • 定时器-延时函数
    • js执行机制
      • 同步任务
      • 异步任务
      • 执行机制
    • location对象
    • navigator 对象
    • histroy 对象
  • 本地存储
    • 本地存储分类
      • localStorage
      • sessionStorage
    • 存储复杂数据类型
  • 拼接字符串的新思路

BOM

BOM浏览器对象模型

Window对象

window对象是一个全局对象,是js中的顶级对象
像document、alert()、log()都是window的属性
所有通过var定义在全局作用域中的变量、函数都会变成window对象的属性和方法
window对象下的属性和方法调用的时候可以省略window

定时器-延时函数

只执行一次,把一段代码延迟执行。

setTimeout(回调函数,等待的毫秒数)   //返回一个id数字型

清除延时函数:

let timer = setTimeout(回调函数,等待的毫秒数)
clearTimeout(timer)

js执行机制


js的特点:单线程,也就是说,同一个时间只能做一件事
为了解决这个问题,利用多核cpu的计算能力,js出现了同步和异步。
同步:前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。
异步:在做一件事情的同事,还可以去处理其他事情。
本质区别:这条流水线上各个流程的执行顺序不同

同步任务

在主线程上执行,形成一个执行栈。

异步任务

通过回调函数实现的。异步任务相关添加到任务队列中。
异步任务有三种类型:
1、普通事件,如click、resize
2、资源加载,如load、error等
3、定时器,包括setInerval、setTimeout等

执行机制

先执行执行栈中的同步任务,异步任务放入到任务队列中,一旦执行栈中的所有同步任务执行完毕,系统就会按照次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。


由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环(event loop)

location对象

拆分并保存了URL地址的各个组成部分。
常用的属性和方法:

  • href属性
    获取完整的URL地址,对其赋值时用于地址的跳转
location.href = 'https://www.baidu.com'
  • search属性
    获取地址中携带的参数符号 ? 后面的部分
location.search
  • hash属性
    获取地址中的哈希值, # 号后面部分
location.hash
  • reload方法
    用来刷新当前页面,传入参数true时表示强制刷新
location.reload()
location.reload(true)   //强制刷新

navigator 对象

记录浏览器的相关信息。

  • userAgent属性
    检测浏览器的版本及平台

histroy 对象

管理历史记录,浏览器的后退、前进、历史记录等

本地存储

数据存储在用户浏览器中,读取、读取方便、甚至页面刷新不丢失数据,容量较大。

本地存储分类

localStorage

本地存储只能存储字符串类型,存入的时候是数字型,拿出来后也会是字符串!
作用:可以将数据永久存储在本地(用户的电脑),除非手动删除,否则关闭页面也会存在。
语法:

  • 存储数据
localStorage.setItem('key','value')
  • 获取数据
localStorage.getItem('key')
  • 删除
localStorage.removeItem('key')
  • 更改数据
localStorage.setItem('key','value')  //前提是key已经存在

sessionStorage

关闭浏览器就会消失,用法和localstorage一致

存储复杂数据类型

本地存储只能存储字符串,无法直接存储复杂数据类型
将复杂数据类型转换成JSON字符串然后再存储到本地。
语法:

JSON.stringify(复杂数据类型)        //如对象、数组

取到的JSON字符串,属性和值都是被 双引号 包含
最后将JSON字符串转换为复杂数据类型
语法:

JSON.parse(JSON字符串)        //转换成:对象、数组

拼接字符串的新思路

  • 数组的map方法
    map可以遍历数组处理数据,并且返回新的数组。主要用于 需要返回一个新数组,不要用来遍历数组。
  const arr = ['red', 'green', 'pink']
const newArr = arr.map(function (ele, index) {console.log(ele);    //ele得到数组中每个元素console.log(index)  //得到数组中每个元素的索引号return ele + '颜色'   //遍历数组,为每个元素添加字符颜色 返回了一个新数组
})
console.log(newArr)     //newArr = ['red颜色, 'green颜色', 'pink颜色']
  • 数组的join方法
    用于把数组中的所有元素转换成一个字符串。
// join方法:将数组中所有元素返回一个字符串
console.log(newArr.join())          //若join()小括号里什么也不写,则用逗号拼接:red颜色,green颜色,pink颜色
console.log(newArr.join(''))        //若join()小括号里写空字符,则没有间隔符号:red颜色green颜色pink颜色

APIS(BOM)——Window对象、本地存储相关推荐

  1. BOM——window对象

    BOM 浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性 BOM 缺乏标准,JavaScri ...

  2. js bom window对象

    一.全局作用域 我们全局作用域定义了一个变量name,window对象下也能访问,证明在全局作用域下定义的变量,会自动纳入window对象. var name = "Bob";co ...

  3. Wed APIS-Window对象、本地存储、数组的map()方法、数组的join()方法

    目录 Window对象 1.BOM(浏览器对象模型) 2.定时器-延时函数 3.JS执行机制 4.location对象 5.navigator对象 6.histroy对象 本地存储 1.分类 1.1. ...

  4. window对象属性

    window对象属性 window对象中存储的属性和方法比较多,我们只对常用的做说明,不常用的看看就好. 首先是window中的这几个属性,这几个属性存储的值都是对象{}.每个对象对应一种操作,可以理 ...

  5. JS9day(BOM对象模型,setTimeout定时器,JS单线程执行机制,location对象,swiper插件,localStorage本地存储,购物车案例升级版,学习信息案例(本地存储))

    文章目录 BOM简介 定时器-延时函数 5秒关闭广告案例 递归模拟setInterval函数 两种定时器对比 JS 执行机制 location对象 navigator对象 histroy对象(了解) ...

  6. BOM的window对象的属性及其方法

    Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY.FRAMESET或 FRAME元素时,都会自动建立window对象的实例. ...

  7. 客户端本地存储的比较及使用window.name数据传输

    一:cookie: 1. 什么是cookie? Cookie是在客户端用于存储会话信息的,用户请求页面在web服务器与浏览器之间传递.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cooki ...

  8. Web APIs介绍(四)——offset/client/scroll/轮播图/本地存储

    1.1. 元素偏移量 offset 系列 1.1.1 offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移).大小等. 获得元素距 ...

  9. Web APIs 本地存储

    window 对象:浏览器窗口 1.window对象的三个特点 (1)window 是js中的顶级对象 所有的全局函数 全局变量都是window对象的成员(属性+成员) (2)只要是window对象中 ...

最新文章

  1. 数字图像处理——第九章 形态学图像处理
  2. 白话hash和数字签名,保证你看得懂
  3. 西湖大学能招本科生了!首次确定 5 大本科专业
  4. 程序员新手第一个python web开发框架
  5. Message Loop 原理及应用
  6. 强化学习1——策略,价值函数,模型
  7. 为什么我要用C写游戏 适合自己的才是最好的
  8. Windows Android Studio生成javadoc
  9. day36 python学习gevent io 多路复用 socketserver *****
  10. 知乎:GAN 的发展对于研究通用人工智能有什么意义?
  11. 如何转obj_Java 开发中如何正确的踩坑,看完这个你可以避免50%的错误
  12. Unicode字符集和编码方式
  13. qfileinfolist 取中间_公司起名:网络公司名字起名寓意如何取寓意成功的网络公司名字...
  14. 数据库查询前十名和当前信息的排名信息
  15. vmware输入序列号老是不能注册问题
  16. 奇*信往期秋招笔试知识点总结
  17. 人生如游戏,容错性很关键
  18. 国庆节快到了,用 Python 给自己制作国旗头像,其实很简单。
  19. [实战] 实现抢票小工具短信通知提醒
  20. 东南亚lazada平台分跨境店和本土店两种,二者的区别都写在这里了

热门文章

  1. java中写html标签,java写html剔出标签
  2. (一)彩色图片(RGB)转灰度图片
  3. Java将域名转换成IP
  4. 【论文翻译】SETR:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformer
  5. 外卖骑手是如何被外卖企业逼向死亡之路的?
  6. 上岸快手,我选择一条不一样的路
  7. JAVA光头之路(一)--环境变量
  8. 数据库学习之num1
  9. 如何在图片里藏其他文件
  10. 爬虫清洗:python strip()函数 去空格\n\r\t函数的用法