首页 > 编程语言 >JavaScript知识点轻量版(一)

JavaScript知识点轻量版(一)

时间:2024-09-09 21:54:39浏览次数:13  
标签:脚本 知识点 外部 JavaScript 内联 加载 轻量 页面

                                                              【学习重点】

1.了解JavaScript基础知识

2.熟悉常量和变量

3.能够使用表达式和运算符

4.正确使用语句

5.能够掌握数据类型和转换的基本方法

6.正确使用函数,对象,数组等核心知识和技法

7.能够编写简单的脚本,解决网页种常见特效和互动效果。

一.在网页中插入JavaScript代码

在网页中插入JavaScript代码有两种方式,其一(内联脚本)以标签的形式<script></script>插入到网页的其他标签中,一般放在body后面,因为浏览器的渲染是从上往下的,如果放在前面,浏览器会页面渲染一半转去加载js代码,影响用户体验感。此方法一般用于单页面网页。

其二(外部脚本),将功能封装在一个后缀名为.js的文件中,然后在页面中引用,也是放在<script></script>标签中,其引用举例:<script type="text/javascript"  src="test.js"></script>。

该知识点可能出现的经典问题

  1. 选择题:询问 <script> 标签的 deferasync 属性的区别。

    • A. defer 会并行加载脚本并按顺序执行,async 会并行加载脚本但不会按顺序执行。
    • B. defer 会等待 DOM 完全加载后再执行,async 会立即执行。
    • C. defer 和 async 都会阻塞页面渲染。
    • D. defer 和 async 都会在文档解析完毕后执行。
  2. 简答题:解释内联脚本和外部脚本的区别,并给出各自的使用场景。

    • 内联脚本是直接在 HTML 文档中使用 <script> 标签插入 JavaScript 代码,适合简单的脚本或需要在特定位置执行的脚本。外部脚本是通过 <script> 标签的 src 属性引入外部的 JavaScript 文件,有利于代码的组织和维护,也有助于提高页面加载速度。
  3. 编程题:给定一个 HTML 页面的代码片段,要求考生添加 JavaScript 代码来实现特定的功能,例如在页面加载完成后显示一个警告框。

  4. 论述题:讨论在大型项目中推荐使用外部 JavaScript 文件而不是内联脚本的原因。

  5. 问题解决题:如果一个外部 JavaScript 文件没有按预期工作,询问考生会如何调试这个问题。

  6. 案例分析题:提供一个包含内联脚本和外部脚本的 HTML 页面示例,要求考生分析页面加载和执行的顺序。

附加题:在实际开发中,如何平衡内联脚本和外部脚本的使用?

在实际开发中,平衡内联脚本和外部脚本的使用主要取决于项目的具体需求、性能考虑、维护方便性等因素。以下是一些常见的最佳实践:

1. **使用外部脚本以提高性能和可维护性**:
   - 对于大型项目或需要在多个页面间共享的 JavaScript 代码,应使用外部脚本。这样可以利用浏览器缓存,减少重复的 HTTP 请求,并且使得代码更容易维护和复用。
   - 对于需要并行下载的脚本,使用外部脚本可以提高页面加载速度,因为浏览器可以同时下载多个外部脚本文件。

2. **使用内联脚本处理特定场景**:
   - 对于小段的、只用于一个特定页面的脚本,或者对于需要在页面加载的特定阶段立即执行的脚本,可以使用内联脚本。
   - 对于需要立即执行且不依赖外部资源的初始化代码,内联脚本可能是合适的选择。

3. **利用`defer`属性**:
   - 当外部脚本需要在文档解析完毕后、`DOMContentLoaded`事件触发前执行时,可以使用`defer`属性。这样可以保证脚本的执行顺序,同时不会阻塞页面的解析。

4. **利用`async`属性**:
   - 对于不依赖于其他脚本的异步加载脚本,可以使用`async`属性。这允许脚本异步加载并在加载完成后立即执行,不会阻塞页面的解析。

5. **避免过度使用内联脚本**:
   - 过度使用内联脚本会增加 HTML 文档的大小,降低页面的可读性和可维护性。尽量将复杂的逻辑和代码库放在外部文件中。

6. **代码分割和懒加载**:
   - 对于大型的 JavaScript 应用程序,可以使用代码分割和懒加载技术,只加载当前用户需要的脚本部分,减少初始加载时间。

7. **性能测试和分析**:
   - 使用浏览器的开发者工具进行性能测试和分析,了解脚本加载和执行对页面性能的影响,根据分析结果调整脚本的使用方式。

8. **遵循内容安全策略(CSP)**:
   - 如果实施了内容安全策略,可能需要调整内联脚本的使用,因为 CSP 可能会限制内联脚本的执行。

9. **考虑SEO优化**:
   - 对于依赖JavaScript渲染的页面内容,确保搜索引擎能够正确解析和索引,可能需要将关键内容的脚本放在外部文件中,以便搜索引擎能够访问和处理。

通过综合考虑上述因素,可以有效地平衡内联脚本和外部脚本的使用,从而提高网站的性能、可维护性和用户体验。
 

标签:脚本,知识点,外部,JavaScript,内联,加载,轻量,页面
From: https://blog.csdn.net/weixin_46367832/article/details/142069852

相关文章

  • 标题:探索 HTML 与 JavaScript 实现的选项卡切换效果
    目录一、HTML结构设计二、JavaScript逻辑处理一、HTML结构设计在给定的HTML代码中,整体结构是创建了多个div元素,每个div元素都包含一个ul(无序列表)和一个div(用于展示内容)。每个ul元素中的li元素代表一个选项卡的标题,而与之对应的div元素中的子div元素则是每个选项卡标......
  • 标题:使用 HTML 和 JavaScript 实现简单的待办事项列表
    目录一、HTML结构设计二、JavaScript逻辑处理一、HTML结构设计整体布局:在HTML部分,整体布局通过一个类名为container的div元素来实现,该元素在页面中水平居中(margin:150pxauto;)。其中包含了一个用于添加事项的输入框和按钮(addBox类),以及一个表格(table元素)用于展......
  • 两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址
    1.访问位与修改位的题型(淘汰哪一页)访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是......
  • 【最新华为OD机试E卷-支持在线评测】通过软盘拷贝文件(200分)多语言题解-(Python/C/Ja
    ......
  • Ubuntu系统一键部署轻量级博客VanBlog并实现无公网IP远程访问
    文章目录前言1.Linux本地部署2.VanBlog简单使用3.安装内网穿透4.创建公网地址5.创建固定公网地址前言今天和大家分享如何在LinuxUbuntu系统搭建一款轻量级个人博客VanBlog,并结合cpolar内网穿透软件生成公网地址,轻松实现随时随地远程访问本地部署的......
  • python知识点100篇系列(13)-几种方法让你的电脑一直在工作
    写在前面:如果只想设置电脑永不息屏,可以在电脑的右下角,电源设置中的电源选项,设置成不熄灭屏幕即可;不需要依靠其他工具,但是这个也只能让电脑不息屏,其他也干不了;这里文章说的电脑一直在工作,是指使用python自动操作鼠标或键盘来使得电脑一直不息屏;第一种,可以使用pyautogui:......
  • JavaScript 基础知识
    概述        在Web前端开发中,JavaScript是一种脚本语言,主要用于实现网页的动态功能和交互效果。与HTML和CSS主要关注网页的结构和样式不同,JavaScript可以用于以下方面:动态内容更新:通过JavaScript,可以在不重新加载页面的情况下更新网页上的内容。例如,用户点击......
  • JavaScript 事件循环
    0x01事件循环JavaScript是单线程的,即同一时间内仅能执行一个操作在单线程中,当一段代码中存在需要等待或触发的任务时,会阻塞线程,影响后续代码的执行,因此需要将代码分为同步和异步,其执行过程如下:flowchartLR代码--同步-->JS引擎-->执行栈--立即执行-->执行栈代码--异步-......
  • [Javascript] Function.prototype.call
    .callmethodexitsonanyfunction,whichwillreferto Function.prototype.callforexample:console.log.call===Function.prototype.call//call AlsoitmeansthatFunction.prototype.call===Function.prototype.call.call Question:console.log.call.cal......
  • KernelWarehouse:英特尔开源轻量级涨点神器,动态卷积核突破100+ | ICML 20242A
    动态卷积学习n个静态卷积核的线性混合,加权使用它们输入相关的注意力,表现出比普通卷积更优越的性能。然而,它将卷积参数的数量增加了n倍,因此并不是参数高效的。这导致不能探索n>100的设置(比典型设置n<10大一个数量级),推动动态卷积性能边界提升的同时享受参数的高效性。为此,论文提出......