首页 >web前端 >js教程 >Internet Explorer之后的本地JavaScript开发

Internet Explorer之后的本地JavaScript开发

Lisa Kudrow
Lisa Kudrow原创
2025-02-17 12:48:10446浏览

Native JavaScript Development after Internet Explorer

Native JavaScript Development after Internet Explorer

欢迎来到本系列的第三部分,也是最后一部分,我们将探讨老IE的退役以及这一事件对前端开发领域的影响。到目前为止,我们已经介绍了可以安全丢弃的过时技术,以及现在在主流浏览器中完全原生支持的HTML5和CSS3属性。今天,我们将重点介绍原生JavaScript技术以及其他不属于上述类别的内容。

再次感谢CanIUse.com,它是一个非常宝贵的资源。我还将重申上次的免责声明:

本文与是否放弃对老IE的支持的决定无关。您必须根据您网站或应用程序的具体细节自行做出决定。

话不多说,让我们继续!

关键要点

  • 现代JavaScript API的采用:随着Internet Explorer的退役,开发人员现在可以在主流浏览器中直接使用现代JavaScript API(例如Base64编码和Blob构建),而无需polyfill,从而提高性能和兼容性。
  • 增强的通信功能:现代浏览器中Channel Messaging和WebSockets等API的可用性分别促进了更有效的脚本间通信和浏览器与服务器之间的持久连接。
  • ES6语法的引入:对ES6特性(例如constlet用于块级变量声明以及箭头函数的普及)的支持允许开发人员编写更简洁、更高效的代码。
  • 安全和隐私优先:Web Cryptography API和内容安全策略(CSP)现在已完全支持,为增强Web应用程序的安全性用户隐私提供了强大的工具。
  • 性能优化:Page Visibility API和requestAnimationFrame等新功能提高了Web应用程序的效率,优化了资源使用和动画性能。
  • 未来安全的Web开发:随着Internet Explorer的停用,开发人员无需受限于旧版浏览器的兼容性,可以充分利用HTML5、CSS3和JavaScript的全部潜力,从而为更具创新性和前瞻性的Web应用程序铺平道路。
  1. JavaScript APIs

在本节中,我们将介绍相当多的JavaScript特性、API和功能。它们有什么共同点?它们都不能真正用于老IE,需要使用各种polyfill,或者必须通过各种其他框架和库来实现其效果(如果可以实现的话)。在当前环境(IE11 Edge)中,它们具有内置于浏览器的原生支持,这意味着可以直接使用它们。

Base64编码和解码(btoa和atob)

Base64是Web上非常有用的工具。你们中的许多人可能已经用它将字体或图像嵌入到CSS中。另一个常见的用法是处理通常会干扰传输协议的各种资源。一个很好的例子是基本访问身份验证,其中用户名:密码对使用Base64打包,然后发送到服务器。对编码/解码操作的原生支持意味着它们可以更快地执行。以下是一些入门资源:

  • MDN上的atob()和btoa()文档
  • Base64.js polyfill

Blob构建

二进制大对象或BLOB是存储在数据库管理系统中的单个实体中的原始数据的集合。它可以是音频剪辑或图像,以Base64格式存储。或者是一组图像。在许多情况下,Blob字段用于数据结构不如通过普通表或表模式(如JSON对象)表达得那么严格的数据。你们中的一些人可能还记得Blob接口的祖先,即BlobBuilder。但是,这种方法已被弃用,强烈建议所有Blob操作都应通过新的接口进行。

最重要的是,由于此集合与文件非常相似,因此Blob对象的原生接口已被用作File()接口的基础。因此,有一个名为“Blob URL”的不错功能,它允许开发人员为blob对象创建URL,这些URL可以在任何可以使用文件的地方使用。考虑到这一点,原生支持现在涵盖所有主流浏览器,这一点非常令人赞赏。

  • MDN上的BLOB
  • MDN上的BLOB URL
  • JavaScript Blob和文件接口简介

Channel Messaging

通常,在不同浏览器上下文运行的两个脚本被禁止相互通信,以避免许多安全陷阱。但是,有时这种通信不仅是需要的,而且是真正必要的。这就是Channel Messaging API发挥作用的地方。此接口允许我们的两个脚本通过双向管道相互通信。这就像在同一个频道上为每个人提供一个对讲机。很巧妙,不是吗?

  • Dev.Opera上的HTML5 Web Messaging简介
  • MDN上的MessageChannel

常量和块级变量

const和let是ES6中定义数据的两种新方法。虽然var定义具有全局或函数范围的变量,但新增内容具有块级范围。这意味着使用const和let创建的变量的范围仅限于定义它们的括号对内。

虽然let定义了一个(除了范围之外)与经典变量行为相同的变量,但常量(const)是对某个值的只读引用。它不能重新赋值,不能重新定义,并且不能与同一范围内的任何其他变量或函数共享相同的名称。唯一的例外是当常量是一个具有其自身属性的对象时。这些属性不受更改的保护,其行为类似于普通变量。

话虽如此,请查看在代码中正确使用常量和块级变量的方法:

  • MDN上的常量
  • MDN上的Let
  • SitePoint上的准备ECMAScript 6:let和const
  • Wes Bos的ES6 let VS const变量

控制台日志记录

大多数前端开发人员都会同意,当脚本行为异常时,Web控制台是手中最有用工具之一。然而,Internet Explorer本质上整合它的速度很慢,只有版本10才开始提供完全支持。现在,随着老IE的退役,没有什么能阻止我们充分利用此功能。如果您需要刷新您的知识,甚至发现使用控制台的新方法,请查看以下规范:

  • MDN上的控制台

跨源资源共享

跨源资源共享(CORS)是一个HTML5 API,它允许请求来自其自身域外部的资源。它描述了一组HTTP标头,这些标头允许浏览器和服务器在授予特定权限时请求远程资源。以下资源是学习如何正确使用此功能的良好起点:

  • Dev.Opera上使用跨源资源共享的DOM访问控制
  • MDN上的HTTP访问控制(CORS)
  • SitePoint上对CORS的深入了解

Web Cryptography API

如今,安全和隐私是任何应用程序中最受追捧的两个特性,这意味着良好的(且快速的)加密技术非常受重视。现在,所有主流浏览器都一致支持Web Cryptography API,但IE11(它实现了旧版本的规范)和Safari(它需要crypto.webkitSubtle前缀)除外。幸运的是,某些特定功能(如随机值的生成)的实现更好。因此,使用原生支持实现加密元素比以往任何时候都更容易。以下是一些关于如何正确执行此操作的指南:

  • MDN上的Crypto对象
  • MDN上的getRandomValues
  • GitHub上用于旧版浏览器的Web Cryptography API shim

国际化

如今,互联网访问的普遍性意味着访问您网站的访问者可以来自世界各地。由于人们更信任熟悉的事物,因此最好以他们的语言和他们习惯的格式呈现所有信息。这就是您需要国际化(也称为i18n)和本地化(或L10n)的地方。这听起来像是胡言乱语吗?让我们引用Aurelio De Rosa在他关于如何在JavaScript中实现国际化(i18n)的文章中的话:

国际化(也称为i18n)是创建或转换产品和服务的过程,以便它们可以轻松地适应特定的本地语言和文化。本地化(也称为L10n)是为特定区域或语言调整国际化软件的过程。换句话说,国际化是使您的软件适应支持多种文化(货币格式、日期格式等)的过程,而本地化是实现一种或多种文化的过程。

浏览器的支持比今年年初略好一些,Safari v10于9月份加入了行列。听起来很有趣吗?以下是一些让您走上正轨的资源:

  • MDN上的国际化API
  • JavaScript国际化API – 简要介绍
  • 如何在JavaScript中实现国际化(i18n)

处理媒体查询

响应式Web设计是当前高效网站的标准,使其成为可能的关键特性是媒体查询的存在。matchmedia将媒体查询从CSS引入JavaScript,为开发人员提供了更大的灵活性来优化各种设备的内容。一个很好的例子是处理移动电话和平板电脑从纵向模式到横向模式以及反向模式的更改。虽然有一个API可以处理设备方向的检测,但大多数浏览器的支持都是部分的,只有Microsoft Edge提供完全支持。以下是一些关于此主题的入门资源:

  • MDN上的测试媒体查询
  • MDN上的Window.matchMedia
  • SitePoint上如何在JavaScript中使用媒体查询

媒体源扩展

媒体源扩展(MSE)在不使用插件的情况下向视频和音频元素添加额外功能。这为您提供了自适应媒体流、实时流、拼接视频和视频编辑等功能。自2013年9月以来,YouTube一直在其HTML5播放器中使用MSE。浏览器的支持也相当好,只有iOS Safari和Opera Mini缺少此功能。仅当在Windows 8 上使用时,IE11才具有完全支持。不幸的是,IE11/Win7用户无法从这项技术中受益。无论您只是好奇还是真的想开始使用此API,您都会发现以下资源非常有用:

  • MDN上的MediaSource API
  • MSDN上的媒体源扩展
  • HTML5媒体源扩展:将制作视频带到Web上(Smashing Magazine)

变异观察器

JavaScript应用程序每天都在变得越来越复杂。作为开发人员,您需要控制页面上发生的更改,尤其是在DOM树更改或“变异”的时间。对这种监控的需求并非新鲜事物,实际上已经存在了一种解决方案——变异事件。此接口的问题在于,作为事件,它们既是同步的(在调用时触发,并可能阻止其他事件触发),也必须通过DOM捕获或冒泡。这反过来又会触发其他事件,从而使JavaScript线程过载,并在某些特殊情况下生成整个级联故障,导致浏览器崩溃。

因此,变异事件已被弃用并替换为变异观察器。您可能会问,有什么区别?首先也是最重要的一点是,观察器是异步的。它们不会阻止您的脚本运行。它们不是在每次变异时触发,而是在主要活动完成后批量传递结果。更重要的是,您可以微调观察器以观察节点的所有更改或仅观察特定类别的更改(例如仅子列表的更改或仅属性的更改等)。使用以下资源开始学习如何执行此操作:

  • MDN上的MutationObserver
  • 了解变异观察器
  • SitePoint上正在发展的新变异

页面可见性

选项卡浏览改变了我们与网络交互的方式。许多人同时打开数十个页面的情况并不少见。每个页面都执行自己的操作,运行其脚本,下载其拥有的资源等等。即使一次只能激活一个选项卡,所有打开的页面都在消耗CPU时间和带宽。某些应用程序可能定期通过连接发送和接收更新。但是,如果您没有在活动选项卡中打开该应用程序,它是否需要在后台每X秒更新一次?这似乎有点浪费,不是吗?尤其是在移动设备和数据计划中,每种资源都很宝贵。

这就是Page Visibility API发挥作用的地方。此接口允许开发人员知道他们的应用程序是否在活动选项卡中或在后台。让我们以我前面提到的执行更新的应用程序为例。使用Page Visibility API,您可以检测应用程序何时在后台,然后不要每5或10秒执行一次更新,而是每60秒甚至更少执行一次。一旦页面再次可见,您可以切换回正常的更新速率。很酷,不是吗?

那么,您还在等什么?查看以下指南,开始为页面可见性启动您的应用程序。您的用户会感谢您的:

  • MDN上的页面可见性API
  • SitePoint上页面可见性API简介

页面转换事件

您是否曾经使用过一个Web表单,当您尝试离开或关闭页面时,它会弹出一个消息,提示您有未保存的数据?如今,在您更改设置、个人资料详细信息等的页面上,这很常见。页面中的脚本如何知道您要离开?他们监听pagehide事件。

pagehide及其合作伙伴pageshow是页面转换事件的主要主角。我们上面已经看到第一个主要用于什么。pageshow的主要用途是确定页面是从缓存加载还是直接从服务器加载。这不是最常见的用途,但是,如果您需要任一功能,请查看以下资源:

  • MDN上的pageshow
  • MDN上的pagehide

requestAnimationFrame

Web上的动画已经走了很长一段路,从早期的<marquee></marquee><blink></blink>,到动画GIF、jQuery效果,再到当前的CSS、SVG、canvas和WebGL动画。所有这些方法中的一个常数是需要控制动画的流程并使其尽可能流畅。

最初的方法使用setInterval和setTimeout来控制动画的步骤。问题是结果并非可靠地一致,动画通常很粗糙。这就是为什么设计了一个新的接口——requestAnimationFrame。这种方法的主要优点是浏览器可以自由地将请求与自身的绘制周期匹配,从而明显地平滑动画。与它的对应物cancelAnimationFrame一起,这两种方法是现代JavaScript动画的基础。

像往常一样,以下是一些让您开始掌握此功能的资源。

  • MDN上的requestAnimationFrame
  • MDN上的cancelAnimationFrame
  • SitePoint上使用requestAnimationFrame进行简单动画
  • SitePoint上的观看:使用requestAnimationFrame进行性能测试

定时API

在线性能是当今的热门话题,每个人都尽最大努力减少资源,优化脚本并充分利用他们掌握的所有工具。有两种主要方法可以解决此问题:网络性能(站点和资源的交付速度)和用户性能(应用程序本身的执行速度)。

网络性能由两个API提供服务:Navigation Timing和Resource Timing。它们都提供与网络性能相关的所有类型的信息,例如DNS、CDN、请求和响应时间等。唯一的区别是Navigation Timing针对HTML页面本身,而Resource Timing处理所有其他资源(图像、脚本、媒体等)。

在用户性能方面,我们有一个API:User Timing。此API处理两个主要概念,称为Mark(高度详细的时间戳)和Measure(两个Mark之间的时间间隔)。使用这些概念可以测量代码的运行速度并识别需要优化的位置。不幸的是,Safari仍然不支持此API,因此可能需要polyfill。

掌握这些接口的使用对于确保网站或应用程序的最佳性能至关重要。这就是为什么我们为您提供一些学习资料的原因:

  • Navigation Timing
    • MDN上的Navigation Timing API
    • SitePoint上使用Navigation Timing API分析页面加载
    • SitePoint上Navigation Timing API:如何高效分析页面加载
  • Resource Timing
    • MDN上的Resource Timing API
    • Google Developers博客上使用Resource Timing API测量网络性能
    • SitePoint上Resource Timing API简介
  • User Timing
    • SitePoint上发现User Timing API
    • HTML5Rocks上的User Timing API
    • GitHub上的user-timing-rum.js和UserTiming.js polyfill

类型化数组

JavaScript类型化数组是类似数组的对象,并提供了一种访问原始二进制数据的方法。为了获得最大的灵活性和效率,实现是沿着两个概念进行的:缓冲区(原始数据的块)和视图(提供可以解释缓冲区数据的上下文)。有许多使用类型化数组的Web API,例如WebGL、Canvas 2D、XMLHttpRequest2、File、Media Source或Binary WebSockets。如果您的代码处理此类技术,您可能对以下资源感兴趣:

  • MDN上的JavaScript类型化数组
  • 类型化数组:浏览器中的二进制数据(HTML5Rocks)

WebSockets

我们前面讨论了Channel Messaging以及它如何使两个不同的脚本可以直接相互通信。WebSockets与此类似,而且功能更多。使用此API可以在浏览器和Web服务器之间创建持久通信通道。

与HTTP一样,WebSocket协议也有两个版本:不安全的(ws://...)和安全的(wss://...)。它还考虑了代理服务器和防火墙,通过它们打开隧道。实际上,WebSocket连接以正常的HTTP连接开始,确保与现有基础设施的兼容性。

WebSockets是一项引人入胜的技术(它们甚至有一个专门的网站),有很多东西需要学习。为了帮助您入门,以下是一些精选的资源:

  • WebSocket.org上的关于WebSocket
  • MDN上的WebSockets
  • SitePoint上HTML5 WebSockets API简介

Web Workers

默认情况下,所有JavaScript任务都在同一线程中运行。这意味着页面中的所有脚本都必须共享相同的处理时间队列。当处理器只有一个内核时,这很好且简单。但是,现代CPU至少具有双核,某些型号的CPU甚至达到4、6或8个内核。如果可以将某些任务移动到可以由可用额外内核处理的单独线程中,那不是很好吗?这就是发明Web Workers的原因。

使用Web Workers API,开发人员可以将命名脚本文件委托给在单独线程中运行的worker。worker只响应创建它的脚本,通过消息进行双向通信,可以运行XMLHttpRequest调用,并且不与DOM或窗口对象的某些默认方法和属性交互。在例外类别中,我们可以提到WebSockets(可以将WebSocket连接的管理分配给worker)或IndexedDB等数据存储机制。拥有自己的助手来处理次要任务,而主线程专注于运行整个应用程序,没有什么比这更好的了。

要开始使用此功能(包括可用于Web worker的函数和类的列表),请查看以下资源:

  • MDN上的Web Workers API
  • MDN上可用于Web Workers的函数和类
  • SitePoint上使用HTML5 Web Workers进行JavaScript线程处理

XMLHttpRequest高级功能

XMLHttpRequest的采用预示着Web开发的新时代。现在可以在浏览器和服务器之间交换数据,而无需重新加载整个页面。AJAX是允许每个人都喜欢的单页应用程序存在的新标准。

这种有用的技术将得到进一步发展,这很正常。这就是XHR获得新功能的方式,例如文件上传、传输进度信息或直接发送表单数据的能力。所有这些功能(在IE11或旧版Android的情况下存在细微的例外)在老IE退役后都受到主流浏览器的支持。

有关更多详细信息,请随时查阅以下资源:

  • MDN上的FormData
  • SitePoint上使用HTML5 FormData接口简化Ajax
  1. 其他功能

现代Web不仅仅是HTML、CSS和JavaScript。幕后还有许多看不见(和未被歌颂的)英雄辛勤工作,使我们的在线体验尽可能出色。下面,我们将讨论一些此类功能,这些功能与上述功能一样,不能在老IE浏览器上使用(它们因其安全漏洞和缺乏对现代功能的支持而臭名昭著)。

使用“async”和“defer”的非阻塞JavaScript加载

每个Web开发人员都会学习脚本是“加载阻塞”的,并且会一直阻止整个页面,直到它们加载完毕。我们都记得在之前加载jQuery的建议。但是,在单页应用程序的情况下,这种方法是无用的,因为网站的所有行为都是由JavaScript驱动的。这让我们回到了原点。

但事实是,在大多数情况下,您的网站或应用程序只需要它加载的所有JavaScript的一部分。其余部分将在以后需要,或者它们正在执行不会影响DOM的操作。显而易见的方法是以常规方式加载只有关键脚本,而以不会以负面方式影响应用程序的方式加载其余脚本。实际上,有两种这样的加载方法。

第一种方法是使用defer属性,用于标记不会影响DOM并打算在解析文档后执行的脚本。在大多数情况下,这些脚本处理用户交互,因此可以安全地以这种方式加载它们。第二种方法使用async属性,并标记一个脚本,该脚本虽然并行加载,但将在下载后立即执行。但是,不能保证加载顺序与执行顺序相同。

这两个参数带来的所有好处,它们正成为提高网站和应用程序性能的重要工具。查看以下资源,了解有关如何以及何时使用此技术的更多信息:

  • Google Developers上删除渲染阻塞JavaScript
  • SitePoint上使用HTML5 Async和Defer加载非阻塞JavaScript

内容安全策略

从一开始,Web上的安全性就是围绕“同源”模型构建的,这意味着只有来自同一域的脚本才能与给定页面交互。然而,随着时间的推移,我们必须将第三方脚本集成到我们的页面中:来自CDN的JavaScript库、来自Facebook、Google 或Twitter的社交媒体小部件以及其他类似案例。这意味着我们打开了大门,并允许“来宾”脚本运行到我们的隐喻庭院中。当恶意脚本也潜入进来并像其他脚本一样被执行时,问题就来了——我们都知道的一种攻击方法,称为跨站点脚本或XSS。

内容安全策略是对抗XSS的主要武器。此机制包含一组策略和指令,这些策略和指令指定允许执行哪些脚本,可以从哪里加载资源,是否可以运行内联样式或脚本等等。CSP基于白名单,这意味着默认情况下所有内容都被拒绝,只有指定的资源才能访问。这意味着,当规则微调后,即使恶意脚本插入到我们的站点中,它也不会被执行。

以下是一些资源,可以帮助您更好地理解此机制:

  • 内容安全策略参考
  • SitePoint上使用内容安全策略提高Web安全性
  • HTML5Rocks上内容安全策略简介

HTTP/2协议

从一开始,Web就运行在HTTP协议之上。然而,虽然第一个已经发展得非常快,但HTTP基本上保持不变。在现代网站和应用程序的复杂生态系统中,HTTP可能成为性能瓶颈。当然,有一些技术和实践可以优化此过程,但只能做这么多。

这就是为什么开发了协议的第二个迭代,名为HTTP/2,它基于Google的SPDY协议。它于2015年2月获得批准,规范于2016年5月作为RFC 7540发布。到目前为止,主流浏览器仅通过加密连接支持HTTP/2,并且很有可能在可预见的未来它将保持这种状态,以鼓励站点所有者切换到HTTPS。

HTTP/2的采用不仅仅是更改一些配置设置的问题。一些用于增强HTTP性能的最佳实践可能会影响HTTP/2上的性能。要确定您的网站是否已准备好使用HTTP/2,您可以查阅以下资源:

  • 为HTTP/2做准备:面向Web设计师和开发人员的指南(Smashing Magazine)
  • HTTP/2如何改变Web性能最佳实践(New Relic博客)
  • HTTP/2面向Web开发人员(Cloudflare博客)

资源提示:预取

Web性能是当今的热门话题,而且有充分的理由。正如该领域的所有工作人员都知道的那样,页面加载时间的很大一部分是由资源下载占据的。如果可以在页面加载后使用时间来预加载后续步骤的资源,那不是很好吗?这就是资源提示的用途。

资源提示是一系列指令,它们告诉浏览器提前提供以后将需要的特定资源。该列表包含五个提示,如下所示:

  • dns-prefetch
  • preconnect
  • prefetch
  • preload
  • prerender

在这五个可能的选项中,目前唯一具有良好浏览器支持的是prefetch。此提示告诉浏览器缓存用户很可能在当前页面之后请求的文档。这将其用途限制为可以缓存的元素。将其与其他类型的资源一起使用将不起作用。

如果您对此主题感兴趣,以下是一些提供更多详细信息的资源:

  • Medium上的资源提示文章
  • CSS-Tricks上的预取、预加载、预浏览
  • KeyCDN博客上的资源提示

严格传输安全

HTTPS正成为新的浏览标准,越来越多的网站只接受安全连接。普通连接(在HTTP上)通常会重定向到HTTPS版本,事情照常进行。但是,这种方法容易受到“中间人”攻击,在这种攻击中,重定向会改为发生到您想要的网站(通常是银行网站)的欺骗克隆,以便窃取您的登录凭据。

这就是严格传输安全标头发挥作用的地方。第一次使用HTTPS连接到所需网站时,标头将发送到浏览器。下次连接时,即使您只使用URL的HTTP版本,浏览器也会直接转到HTTPS版本,而不会经过重定向周期。由于没有在HTTP上建立连接,因此前面描述的攻击将无法发生。

有关严格传输安全标头的更多详细信息,请查看以下网站:

  • MDN上的HTTP严格传输安全

设备像素比

Window.devicePixelRatio是一个只读属性,它返回当前显示设备上一个物理像素的(垂直)大小与一个CSS像素的大小之比。这样,开发人员可以检测高密度屏幕(例如Apple的Retina显示屏或高端Android屏幕)。与媒体查询和MatchMedia(我们上面讨论过)一起使用时,此属性允许为最佳体验提供优化的资源。

  • MDN上的Window.devicePixelRatio

Web视频文本轨道

Web视频文本轨道(或WebVTT)是一种用于标记多媒体资源文本字幕的格式。它与HTML5<track></track>元素一起使用,并允许以同步方式向媒体资源(音频或视频)添加字幕、翻译、标题或描述。此文本信息的存在使媒体资源更容易访问。

有关如何开始使用此功能的说明,请查看以下资源:

  • MDN上的WebVTT
  • Dev.Opera上WebVTT和<track></track>简介
  • HTML5Rocks上Track元素入门

总结

我们在这里,在本系列文章的结尾,该系列文章始于一个简单的智力练习:“老IE消失了!让我们庆祝吧!(……几个小时后……)现在怎么办?”。我们涵盖了广泛的主题,从不再需要的技术和实践到我们现在可以自由地不做polyfill就能做到的所有新事物,无论是HTML、CSS还是原生JavaScript。我们甚至还涉及了更广泛的主题,例如性能优化和增强安全性。

您现在应该立即开始重构所有代码吗?很可能不会。必须根据重构成本与技术债务成本之间的平衡来做出此类决定。但是,如果您要启动一个新项目,请务必为未来构建它,而不是为过去构建它。

Internet Explorer退役后关于原生JavaScript开发的常见问题解答(FAQ)

Internet Explorer退役后原生JavaScript开发的重要性是什么?

Internet Explorer退役后原生JavaScript开发至关重要,因为它允许开发人员创建更高效、更有效的Web应用程序。随着Internet Explorer的停用,开发人员不再受限于通常与该浏览器相关的约束和兼容性问题。他们现在可以使用JavaScript的全部功能,包括其最新功能和更新,来构建更动态、更交互式和更用户友好的Web应用程序。

如何在我的浏览器中启用JavaScript?

在浏览器中启用JavaScript是一个简单的过程。对于大多数浏览器,您可以在设置或首选项菜单中找到启用或禁用JavaScript的选项。通常,这涉及导航到“安全”或“隐私”部分并查找与JavaScript相关的选项。确保启用它以获得更好的浏览体验。

Internet Explorer和其它浏览器中的JavaScript之间有什么区别?

是的,Internet Explorer和其它浏览器中JavaScript的工作方式存在显著差异。Internet Explorer具有不同的JavaScript引擎,这经常导致兼容性问题和限制。Chrome、Firefox和Safari等现代浏览器使用更高级的JavaScript引擎,这些引擎支持JavaScript的最新功能和标准,从而提高性能并减少兼容性问题。

使用原生JavaScript而不是库或框架的好处是什么?

与使用库或框架相比,使用原生JavaScript具有许多好处。它允许获得更好的性能,因为没有加载和解析不必要代码的开销。它还提供了对代码的更多控制,因为开发人员不受特定库或框架的约束。此外,理解和使用原生JavaScript可以使您更深入地了解该语言及其功能。

Internet Explorer的停用如何影响JavaScript开发?

Internet Explorer的停用对JavaScript开发产生了重大影响。开发人员不再需要编写额外或不同的代码来确保与Internet Explorer的兼容性。这导致了更高效的开发流程以及能够利用JavaScript的全部功能。它还导致了不同浏览器之间更一致的用户体验。

我可以在开发中使用JavaScript的一些最新功能是什么?

JavaScript不断更新,并增加了新的功能和改进。一些最新功能包括用于处理异步操作的async/await、用于扩展数组或其它可迭代对象的扩展语法以及用于更简洁函数语法的箭头函数。这些功能可以极大地增强您的JavaScript开发,并允许您编写更高效、更易读的代码。

如何确保我的JavaScript代码与所有浏览器兼容?

确保浏览器兼容性是JavaScript开发的一个重要方面。实现此目标的一种方法是使用特性检测,这涉及在使用特定功能之前检查用户浏览器是否支持该功能。另一种方法是使用polyfill,polyfill是为不支持它们的旧版浏览器提供较新功能功能的脚本。

Internet Explorer退役后JavaScript开发的未来是什么?

Internet Explorer退役后JavaScript开发的未来看起来很有希望。随着Internet Explorer的停用,开发人员现在可以专注于利用JavaScript的全部功能,而无需担心兼容性问题。这与语言的持续更新和改进相结合,预示着JavaScript开发效率更高、功能更强大、用途更广泛的未来。

学习更多关于原生JavaScript开发的一些好的资源是什么?

有很多很棒的资源可用于学习更多关于原生JavaScript开发的知识。一些流行的在线平台包括Mozilla Developer Network (MDN)、freeCodeCamp和Codecademy。这些平台提供关于JavaScript的全面指南和教程,涵盖从基础知识到更高级主题的所有内容。

如何有效地调试JavaScript代码?

调试是JavaScript开发中必不可少的一部分。大多数现代浏览器都带有内置的开发工具,可用于调试。这些工具允许您逐步执行代码、检查变量并查看发生的任何错误或异常。此外,使用良好的编码实践,例如编写清晰简洁的代码并注释代码,也可以使调试过程更容易。

以上是Internet Explorer之后的本地JavaScript开发的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn