Script 标签-----JavaScript整理、复习、梳理、面试题

JavaScript动态页面交互入门:Script标签与HTML集成 JavaScript模块化是一种让开发者把代码分割成独立的单元,并且单独处理和重用这些单元的方式。通过模块化,可以提高代码的组织性、可读性和可维护性,避免全局作用域污染和命名冲突。 阅读详情

JavaScript

笔者突然想把所学的JS梳理整理一边,一方面完善自己的不足,另一方面也希望看到这篇文章的人能指出笔者的不足,在此谢过了。(根据红宝书结合自己的想法整理出来,同时也会加上一些相关的面试题)

HTML里的JS

1. <script>标签

将javascript插入html中主要使用的是script这个标签这个标签有8个属性

async:可选属性。表示可以立刻开始下载脚本,但不能阻止其他页面动作。只对外部文件有效
charset:可选属性。使用src指定代码字符集。
crossorigin:可选属性。配置相关请求的CROS设置。
defer:可选属性。表示在文档解析和显示完成后在执行脚本是没有问题的。只对外部脚本文件有效
integrity:可选属性。允许比对接收到的资源和指定的加密签名以验证子资源完整性
src:可选属性。表示要执行的外部文件
type:可选属性。代替language表示代码块中脚本语言的内容类型(也称MIME类型)。
language:已废弃

src

script标签如果使用了src属性就不能在标签中使用代码,若两者都提供的话,就只会下载脚本而忽略标签中的代码。同时script的src属性可以是一个完整的url,而且这个url指向的资源可以跟包含他的HTML不是同一个域

<script src="https://www.somewhere.com/afile.js"></script>

同时浏览器在解析这个资源时,会向src属性指定的路径发送一个GET请求已取得资源。这个请求不受浏览器同源策略的限制,但返回并被执行的JavaScript则受限制,同时这个请求仍然受父页面HTTP/HTTPS协议的限制。

defer

推迟执行脚本:script元素添加defer属性后,不会改变页面的结构,所以这个脚本可以在整个页面解析完后在执行。设置这个属性会告诉浏览器立即下载脚本,但是最后执行脚本同时多个设置了defer属性的script元素,按照HTML5规范的要求应该按照顺序执行。
因为不是所有的浏览器都支持defer属性所以,最好把推迟执行的脚本放在页面的底部。
值得注意的是对于XHTML文档指定defer属性时应该写成defer="defer"

async(不推荐使用这个方法)

异步执行脚本:从改变脚本执行方式上来看async与defer类似。两个属性都只适用于外部脚本文件,都会告诉浏览器立刻开始下载文件,但是使用async的脚本文件不一定会按照顺序执行,所以使用async的脚本之间不能存在依赖关系,给脚本添加async属性的目的就是告诉浏览器,不用等到脚本下载和执行完后在加载页面,同时也不用等到异步脚本下载和执行后再加载其他脚本,所以异步脚本不应该在加载期间修改DOM元素
值得注意的是对于XHTML文档指定defer属性时应该写成async="async"

动态加载脚本

因为JavaScript可以使用DOM的API所以通过向DOM中添加script元素同样可以加载指定脚本。只要创建script元素并添加到DOM中就行

let script = document.createElement(`script`);
script.src = 'gibberish.js';
document.head.appendChild(script);

这样添加到DOM元素后,执行这段代码之前是不会发送请求的。因为默认情况向相当于script元素添加了async属性,但是所有的浏览器都支持createElement()方法,但不是所有的浏览器都支持async,所以要统一动态脚本的加载行为,可以将其设置成同步加载:

let script = document.createElement(`script`);
script.src = 'gibberish.js';
script.async = false;
document.head.appendChild(script);

但是这种方式也是有缺陷的,因为这种方式获取的资源对浏览器预加载器是不可见的,这会严重影响他们在资源获取队列中的优先级。所以要让预加载器知道这些请求文件可以在文档头部显示声明:

<link rel="preload" href="gibberish.js">

2. <noscript>标签

针对早期浏览器不支持JavaScript的问题,需要一个优雅降级的处理方案,所以noscript出现用以对不支持JavaScript提供替代内容。对于禁用JavaScript的浏览器有自己的用处。
noscript元素可以包含任何可以出现在body中的HTML元素,script除外。在下列两种情况下,浏览器将显示包含在noscript中的内容

  1. 浏览器不支持脚本
  2. 浏览器对脚本的支持关闭

3. 面试题

简述一下src与href的区别
  1. src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
  2. src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素
  3. href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,

如果我们在文档中添加<link href="common.css" rel="stylesheet"/>那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式

<script src ="js.js"></script> 当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部

script 的位置是否会影响首屏显示时间
  1. 在解析 HTML 生成 DOM 过程中,js 文件的下载是并行的,不需要 DOM 处理到 script 节点。因此,script的位置不影响首屏显示的开始时间。
  2. 浏览器解析 HTML 是自上而下的线性过程,script作为 HTML 的一部分同样遵循这个原则。因此,script 会延迟 DomContentLoad,只显示其上部分首屏内容,从而影响首屏显示的完成时间
script标签的defer和async有什么区别
  1. script:HTML暂停解析,下载JS,执行JS,在继续解析HTML。
  2. defer:HTML继续解析,并行下载JS,HTML解析完在执行JS(不用把script放到body后面,我们在head中<script defer>让js脚本并行加载会好点)
  3. async:HTML继续解析,并行下载JS,执行JS(加载完毕后立即执行,谁先加载完成谁先执行),在继续解析HTML。加载完毕后立即执行,这导致async属性下的脚本是乱序的,对于script有先后依赖关系的情况,并不适用

注意:JS是单线程的,JS解析线程和DOM解析线程共用同一个线程,JS执行和HTML解析是互斥的,加载资源可以并行

prefetch和dns-prefetch分别是什么
preload和prefetch
  1. preload 资源在当前页面使用,会优先加载。可以指明哪些资源是在页面加载完成后即刻需要的,浏览器在主渲染机制介入前就进行预加载,这一机制使得资源可以更早的得到加载并可用,且更不易阻塞页面的初步渲染,进而提升性能。需要 as指定资源类型
  2. prefetch 资源在未来页面使用,空闲时加载。其利用浏览器空闲时间来下载或预取用户在不久的将来可能访问的文档
<head>
  <!-- 当前页面使用 -->
  <link rel="preload" href="style.css" as="style" />
  <link rel="preload" href="main.js" as="script" />

  <!-- 未来页面使用 提前加载 比如新闻详情页 -->
  <link rel="prefetch" href="other.js" as="script" />

  <!-- 当前页面 引用css -->
  <link rel="stylesheet" href="style.css" />
</head>
<body>
  <!-- 当前页面 引用js -->
  <script src="main.js" defer></script>
</body>

目前可用的属性类型如下:
audio: 音频文件。
document: 一个将要被嵌入到<frame>或<iframe>内部的HTML文档。
embed: 一个将要被嵌入到<embed>元素内部的资源。
fetch: 那些将要通过fetch和XHR请求来获取的资源,比如一个ArrayBuffer或JSON文件。
font: 字体文件。
image: 图片文件。
object: 一个将会被嵌入到<embed>元素内的文件。
script: JavaScript文件。
style: 样式表。
track: WebVTT文件。
worker: 一个JavaScript的web worker或shared worker。
video: 视频文件。
dns-preftch和preconnect
  1. dns-pretch DNS预查询
  2. preconnect DNS预连接

通过预查询和预连接减少DNS解析时间

<head>
  <!-- 针对未来页面提前解析:提高打开速度 -->
  <link rel="dns-pretch" href="https://font.static.com" />
  <link rel="preconnect" href="https://font.static.com" crossorigin />
</head>
全面了解js中的script标签 在页面中用script标签引入javascript文件([removed][removed]),浏览器在渲染页面的时候,当读取到script元素时,浏览器不会以HTML或XHTML的方式处理其内容,浏览器会通知浏览器的脚本引擎来接管script元素中的内容。 script元素的type属性定义脚本类型,type类型有: 1.text/ecmascript(表示以ECMAScript方式解析这段脚本,即基于ECMA-262脚本标准) 2.text/jscript(表示以JScript方式解析这段脚本,它是微软在IE浏览器中所实 立即下载

相关推荐

三极管自激升压电路设计 - 从参数计算到实践验证

本文详细解析了三极管自激升压电路(焦耳小偷电路)的设计原理与实践方法。通过剖析自激振荡机制与三极管电流关系,指导读者完成从核心参数计算、关键元件选型到面包板搭建调试的全过程。文章重点阐述了如何利用电感、三极管等基础元件实现低压直流到高压的转换,是理解开关电源与电磁能量转换的绝佳实践项目。

weixin_29250573的博客 367

【JS】关于script标签

script标签是在web中有一种非常重要的标签,它的存在才使得脚本可以引入dom文档,并且动态网页的实现也需要使用此标签。

m0_62638072的博客 6828

SAP MTO模式实战:从库存管理到成本核算的深度解析

本文深入解析SAP MTO(Make-to-Order)模式在制造业中的应用,从库存管理到成本核算的全流程实战技巧。通过对比MTS模式,详细阐述MTO的核心逻辑、库存管理配置、成本核算路径及与PP模块的集成要点,帮助企业实现按单生产的高效管理,优化库存水平和资金占用。

weixin_29204205的博客 709

【JavaScript】script 标签的使用

# script 标签 script 标签之间共享顶层对象。 ```html var a = 1; console.log(a); // 1 ``` 但是全局变量作用域的提升机制在这些边界中不适用: ```html foo(); function foo() { console.log('foo'); }

Superman_H的博客 1624

电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例

本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。

jj890的博客 365

手把手教你用89C52单片机驱动0.96寸OLED(IIC接口,附完整代码)

本文详细介绍了如何使用89C52单片机通过I2C接口驱动0.96寸OLED显示屏,包括硬件连接、I2C通信原理、SSD1306驱动芯片的初始化及显存管理技巧,并提供了完整的代码示例和常见问题排查方法,帮助电子爱好者快速掌握OLED显示技术。

weixin_30781433的博客 369

【零基础学JS -4】深入剖析script标签

大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师~关注公众号:搞前端的半夏,了解更多前端知识! 点我探索新世界! 原文链接 ==>http://sylblog.xin/archives/6 前言 在开始学习之前,最好了解过一些Html的基础知识。因为这一章节介绍的是script标签,如果你还不了解少么是标签,还需要去了解html的基础知识。 script 标签 在 HTML .

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 9972

Vue3 + OpenLayers 开发指南(一) - 环境搭建与基础配置

本文详细介绍了如何从零开始搭建Vue3与OpenLayers的集成开发环境。通过项目初始化、核心依赖安装、目录结构规划及基础配置,手把手引导开发者创建一个结构清晰、可维护的现代化WebGIS应用骨架,为后续添加地图图层和交互功能奠定坚实基础。

weixin_28049429的博客 339

javascript 的script标签

script元素 script标签的作用就是将js插入到HTML 属性表示不同的场景 async defer src type crossorigin charset 使用script标签的注意点 不要出现在字符串中出现 </script> , 浏览器会当成结束标签解析 解决方案 : 转义 <\/script> script的标签位置 放在<head></head>标签中, 就意味

yjwlike的博客 5650

独立游戏开发者必看:STEAM税务信息更新全流程(附中国区避坑指南)

本文为独立游戏开发者详细解析了Steam税务信息更新的全流程,重点针对中国区开发者提供了避坑指南。文章深入解释了W-8BEN表格的填写要点,并指导如何准备个人所得税纳税记录和身份证等核心证明文件,以确保顺利通过审核,避免收入被预扣税款。

tcp8optimizer的博客 1287

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 518

JS中script标签详细介绍

Script标签介绍向HTML页面中插入JavaScript的主要方法,就是使用<script>元素HTML4.01为这个元素定义了下列6个属性。 - async:可选。表示应该立即下载脚本,但不应该妨碍页面中的其他操作。比如下载其他资源或者等待加载的其他脚本。只对外部脚本文件有效。 - charset:可选。表示通过src属性指定的代码的字符集。但由于大多数浏览器会忽略它的值。因此这个属性

WKY_优快云的博客 4390

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

知识梳理——JavaScript

1. 说说前端中的事件流 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。 什么是事件流:事件流描述的是从页面中接收事件的顺序. DOM2级事件流包括下面几个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段 addEventListener:addEventListener 是DOM2 级事件新增的指定事件处

wytraining 1632

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

7天掌握前端面试核心:100+高频八股文与实战解析

前端开发作为现代Web应用的核心技术,其知识体系涵盖HTML/CSS、JavaScript、框架原理等多个维度。理解事件循环、闭包、虚拟DOM等底层原理,是构建高性能应用的基础。这些技术通过优化渲染流程、提升代码可维护性,在大型项目中体现重要价值。特别是在大厂面试场景中,系统掌握前端八股文能帮助开发者深入理解技术栈,应对复杂业务需求。本文基于GitHub热门资源和最新面试趋势,整理了涵盖Vue响应式、React Hooks等热点的100+高频问题,为求职者提供7天速成方案。

weixin_34221036的博客 366

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Vue 完整版系统知识文档

《Vue全栈开发实战手册》摘要 本手册系统整合Vue2/Vue3全栈知识体系,涵盖基础语法、组件开发、状态管理、工程化等核心内容,适合从入门到精通的完整学习路径。主要特点: 基础核心 详解MVVM架构和响应式原理(Vue2的Object.defineProperty vs Vue3的Proxy) 完整模板语法规则与16种内置指令解析 组件系统核心:通信机制(8种方案)、插槽、动态组件、递归组件 进阶实战 状态管理:Vuex/Pinia完整解决方案 路由开发:动态路由、权限控制、懒加载 工程化:Webpack

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 401

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网络安全认证与实战能力融合:从软考到渗透测试的完整路径解析

网络安全是保障信息系统机密性、完整性与可用性的核心领域,其技术体系涵盖从基础网络协议分析到高级威胁防御的多个层面。理解网络安全原理,需要掌握如TCP/IP协议栈、加密算法、漏洞形成机制等基础知识,这些构成了安全防护的理论基石。在工程实践中,这些原理通过渗透测试、安全运维、应急响应等技术手段转化为实际防御能力,其价值在于能够主动发现并修复系统脆弱性,有效应对数据泄露、服务中断等安全风险。典型的应用场景包括企业安全体系建设、等保合规实施以及日常安全监控。本文以信息安全工程师、网络安全工程师等认证大纲为框架,深入

weixin_34268753的博客 449

Java后端面试:场景驱动学习法,串联知识体系应对大厂高频考题

最近跟几个刚拿到大厂Offer的朋友聊天,发现一个挺有意思的现象:同样是准备Java后端面试,有人刷了三个月题还是心里没底,有人却能在一个月内形成体系化的知识网络,面试时对答如流。区别在哪?不在于谁更聪明,而在于谁找到了那个能“撬动”整个知识体系的支点。 这个支点,就是 场景驱动的系统性学习 。别再盲目地抱着八股文一条条死记硬背了,现在的面试官,尤其是大厂,越来越反感“背诵型”选手。他们真正想考察的,是你能否把分散的知识点(Java基础、JVM、MySQL、Spring……)串联起来,解决一个真实的、复杂的

weixin_30328063的博客 557

javascript的script标签介绍

相信很多同学都写过html和javascript,而由html转向javascript的第一步都少不了写script这个标签。这么简单的标签为什么还要拿来讲呢,因为它有时候非常的有用:第一个小栗子:&lt;!DOCTYPE html&gt;     &lt;head&gt;         &lt;script type="text/javascript"&gt;document.write("H...

qq_192020860的博客 1万+

JavaScript基本知识点(上)

HTML/CSS/JS的关系 html:负责页面内容显示和结构 css:页面美化 JavaScript:与用户交互 面试题:网页的三层结构是什么?各自的作用是什么? 结构层、表现层、行为层 作用:html:负责页面内容显示和结构 css:页面美化 JavaScript:与用户交互 一、script标签的作用 ​​​​​ 注意:1.针对嵌入和外部js文件使用的时候,script标签哪需要就放哪 2.如果使用外部js文...

m0_61843988的博客 570

彻底弄懂<script>标签

文章目录。

hw_happy的博客 2万+

script标签

最近在读《javascript高级程序设计》,一些小笔记写在这儿~关于script标签:html4.01为script标签定义了六个属性分别是:asyns、charset、defer、language、src、type。依次说明一下。 1.asyns:可选,表示立即下载该脚本,但是不影响页面其他操作,该属性只对外部脚本有效。 2.charset:可选,表示通过src属性指定的代码字符集,大多数浏

tanlg2333的博客 716

【javaScript】关于script 标签你应该知道的 (async,defer,integrity,crossorigin 和 onerror 属性)

作者:rainjay 原文链接:https://github.com/rainjay/blog/issues/1 script标签用来在网页中执行JavaScript,它可以直接包含JavaScript代码,也可以直接通过src指向一个同域或者不同域的外链 1. script标签默认会阻塞页面解析,并按照它们出现的顺序执行 <script src="a.js"></scrip...

Umbrella_Um的博客 1650

Web前端入门第 54 问:JavaScript 3 种书写位置及 script 标签的正确存放位置

JS 代码应该首先考虑放在外部文件中,HTML 结构应该永远保持简洁。除非您真的有需求,才建议将 JS 代码放在 head 中,否则 JS 代码应该永远放在</body>结束标签之前。原创作者: linx转载于: https://www.cnblogs.com/linx/p/188797151.Web前端入门第1问:英语是否很重要?有哪些前置条件?02-282.Web前端入门第2问:前端开发是什么?与后端、全栈的区别是什么?一个完整的Web项目有哪些角色参与?02-28。

weixin_30010599的博客 84

script标签的资源提示符( async 和 defe

script标签的资源提示符( async 和 defer)

呆呆狗 882
上一篇: uniapp小程序---二维码(生成、保存)
下一篇: 语言基础(变量、数据类型) -----JavaScript整理、复习、梳理
「已注销」
博客等级 码龄3年 904粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值