您的位置:首页 > 财经 > 产业 > 自己制作app需要什么_网站建设与管理怎么样_东莞网站制作外包_seo优化工作有哪些

自己制作app需要什么_网站建设与管理怎么样_东莞网站制作外包_seo优化工作有哪些

2024/12/24 0:09:17 来源:https://blog.csdn.net/m0_73918807/article/details/144513885  浏览:    关键词:自己制作app需要什么_网站建设与管理怎么样_东莞网站制作外包_seo优化工作有哪些
自己制作app需要什么_网站建设与管理怎么样_东莞网站制作外包_seo优化工作有哪些

script放到head中会怎么样?

script标签可以放到head标签里面,也可以放到body标签里面,但是由于浏览器解析HTML文件会从上到下,所以为了防止阻塞页面渲染,我们一般放到body标签的最下面。

  1. 阻塞页面渲染。因为浏览器解析HTML,遇到script标签会停止解析HTML,先下载执行脚本。如果脚本过大,就会导致页面渲染阻塞。
  2. 依赖问题。如果脚本依赖于页面中的元素,但是页面中元素未加载,那么脚本可能因为找不到元素而出错。
  3. 如何解决不让script标签阻塞页面渲染?
  • script脚本放到body标签结尾。脚本会在页面解析完成之后执行,不会阻塞页面渲染。
  • asyncdefer/async属性。异步加载脚本,等待页面解析完之后执行。

script标签的属性

  1. src 指定外部脚本文件的URL
  2. type指定脚本的MIME类型。它通常是text/javascript表示将内容作为JavaScript代码执行。 在HTML5中可以省略。application/json 用于包含JSON数据的脚本,不会作为JavaScript代码执行。
  3. type=‘module’ 按照ES6模块规范来解析执行脚本,即可以使用import/export
  4. async 异步加载脚本,加载完立即执行,不会等待页面解析完成。有可能在DOM元素之前执行。
  5. defer 异步加载脚本,等待整个页面解析完成之后才执行。
  6. charset 指定脚本的字符编码。一般是UTF-8 很少使用

DOMBOM

  • BOM对象即,window对象表示浏览器打开的窗口。提供了控制窗口行为和访问窗口属性的接口。
    • 常用属性如下
    • location对象,当前URL相关信息。
    • history对象,提供对浏览器会话历史的访问,允许在会话历史中导航
    • navigator对象,浏览器的相关信息,如类型,版本等
    • screen对象,用户屏幕信息。如分辨率等
    • innerHeight/innerWidth,浏览器窗口内部宽高
    • scrollX/scrollY,文档在水平和垂直方向上的偏移量。
  • DOM对象即document对象,代表整个HTML文档,提供了访问和操作文档内容的接口。
  • 关联:document对象是window对象的属性。

JavaScript的执行上下文

执行上下文是JavaScript代码执行环境的抽象概念。JavaScript在运行时用来管理代码执行的机制。

包含:

  • 变量对象(函数参数,内部变量,函数声明)
  • 作用域链(当前执行上下文的父级对象的执行上下文的变量对象集合)
  • this值(当前函数的执行环境 ,在全局执行上下文中,this指向全局对象。在函数执行上下文中,this的指向取决于函数的调用方式。)

类型:

  • 全局执行上下文,最基础的执行上下文。每个JavaScript只有一个全局执行上下文。
  • 函数执行上下文,当函数被调用的时候,会为该函数创建一个新的执行上下文,函数执行完毕,函数上下文被销毁。
  • eval执行上下文,代码在eval函数中执行,创建执行上下文。

代码执行过程:首次运行JavaScript时候,浏览器引擎会创建一个全局执行上下文,添加到执行栈中,在退出浏览器的时候从执行栈中移除全局执行上下文。JavaScript代码逐行执行,遇到函数的时候,函数执行上下文被推入执行栈顶部,全局执行上下文被挂起,开始执行函数中的代码,函数执行完,函数执行上下文被移除执行栈,全局上下文主导,继续执行。

迭代器

提供了一种统一的方式来访问集合中的元素,无需了解集合内部结构。

原理:本身是一个对象,提供了一个next方法,可以返回结果对象,结果对象包含value(当前 遍历元素的)和done(完成迭代true)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com