搜索
首页web前端前端问答javascript主要是为了解决什么

javascript主要是为了解决什么

Feb 24, 2022 pm 04:54 PM
javascript

javascript主要是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,验证步骤浪费的时间太多;于是Netscape开发了Javascript,提供了数据验证的基本功能。

javascript主要是为了解决什么

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。

当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

JavaScript的诞生背景

在上世纪90年代,欧美各国的web程序日益流行,但是当时用户上网还都在使用电话拨号上网,通过调制解调器,网速仅仅只有28kb/s。而web程序的展现却日渐丰富。当时在没有JavaScript的年代,表单验证等操作都是在服务器端执行的。

举个例子,用户进入到一个注册页面,填写用户名,密码,个人信息,点击注册,好,事大了。。。

发送信息,开始网络传输,等了十几秒,服务器接到浏览器客户端发送的信息,开始处理,然后把处理信息返回客户端浏览器,用户突然发现提示用户名填写要大写字母开头,修改,然后点击注册。。。

然后重复上一步,最后又提示密码太短,不够安全。仅仅一个简单的注册页面可能在表单验证花费大量时间,浪费带宽。这对用户是难以忍受的。

在这种背景下,社会急需一种客户端语言,来解决这类问题。当时处在科技前沿的Netscape(网景公司)开始着手开发一种客户端脚本语言。

1995 就职于Netscape的布兰登.爱奇在网景浏览器2.0中开发一个称之为 LiveScript 的脚本语言,为了赶上和媒体热炒Java的热潮,改名为JavaScript。从此JavaScript诞生。

JavaScript标准化

人怕出名猪怕壮,JavaScript一经推出在社会引起广泛关注,不同版本的JavaScript语言纷纷出来,当时比较流行的有:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的ScriptEase。这对于程序员来说如果要开发一个对用户友好的web程序,或许兼容性就是一大工作量,毕竟有的用户用的浏览器各不相同,而内嵌的脚本语言也不相同。对于JavaScript标准化就凸显出来了。

在1997年,由sun,微软,等一些科学家,程序员,坐在一起开了个会,并制定了ECMA-262标准,规范化ECMAScript从此浏览器各大厂商将ECMAScript作为JavaScript实现的基础。

JavaScript的组成

JavaScript由ECMAScript、BOM、DOM三部分组成,其中ECMAScript为JavaScript的核心,规定了JavaScript的变量,类型,关键字,函数等基础语言。DOM为文档操作对象,是操作HTML,XML元素的接口;BOM为浏览器对象,可以对浏览器窗口进行访问和操作。

在ECMA262标准只定义了ECMAScriptd的标准,对于DOM。BOM并没有标准,BOM,DOM是属于宿主对象。

所谓的宿主就是JavaScript的运行环境,比如现在所看到的浏览器。不同的浏览器对于宿主对象略有差别,所以做前端面临最痛苦的兼容问题主要就是BOM和DOM引起的。

JS 可以做什么

JavaScript 可以用于 Web 开发的各个领域,例如:

  • Web 应用开发:日常生活中我们所浏览的网页都是由 HTML、CSS、JavaScript 构成的,通过 JavaScript 可以实时更新网页中元素的样式,并可以实现人与网页之间的交互(例如监听用户是否点击了鼠标或按下了某个按键等),还可以在网页中添加一些炫酷的动画;

  • 移动应用开发:除了可以进行 Web 应用开发外,JavaScript 还可以用来开发手机或平板电脑上的应用程序,而且我们还可以借助一些优秀的框架(例如 React Native),让开发更加轻松;

  • Web 游戏:我们在网页中玩过的那些小游戏,都可以使用 JavaScript 来实现;

  • 后端 Web 应用开发:以前我们都是使用 JavaScript 来进行 Web 应用程序前端部分的开发,但随着 Node.JS(一个 JavaScript 运行环境)的出现,使得 JavaScript 也可以用来开发 Web 应用程序的后端部分。

【相关推荐:javascript视频教程

以上是javascript主要是为了解决什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
React强大的社区和生态系统的好处React强大的社区和生态系统的好处Apr 29, 2025 am 12:46 AM

React'sstrongCommunityAndecoSystemoffernumerBeneFits:1)立即使用PlatplatformslikeStackAckoverFolflowSloffloflowlflowandGithub; 2)awealthoflibrariesandtools,sustasuicoconponentslibrolarieslibrarieslibechakaakaakrauii;

反应移动开发的本地:构建跨平台应用程序反应移动开发的本地:构建跨平台应用程序Apr 29, 2025 am 12:43 AM

ReactNativeischosenformobiledevelopmentbecauseitallowsdeveloperstowritecodeonceanddeployitonmultipleplatforms,reducingdevelopmenttimeandcosts.Itoffersnear-nativeperformance,athrivingcommunity,andleveragesexistingwebdevelopmentskills.KeytomasteringRea

用react中的usestate()正确更新状态用react中的usestate()正确更新状态Apr 29, 2025 am 12:42 AM

在React中正确更新useState()状态需要理解状态管理的细节。1)使用函数式更新来处理异步更新。2)创建新状态对象或数组来避免直接修改状态。3)使用单一状态对象管理复杂表单。4)使用防抖技术优化性能。这些方法能帮助开发者避免常见问题,编写更robust的React应用。

React的基于组件的体系结构:可扩展UI开发的关键React的基于组件的体系结构:可扩展UI开发的关键Apr 29, 2025 am 12:33 AM

React的组件化架构通过模块化、可重用性和可维护性使得可扩展UI开发变得高效。1)模块化允许UI被分解成可独立开发和测试的组件;2)组件的可重用性在不同项目中节省时间并保持一致性;3)可维护性使问题定位和更新更容易,但需避免组件过度复杂和深度嵌套。

用反应的声明性编程:简化UI逻辑用反应的声明性编程:简化UI逻辑Apr 29, 2025 am 12:06 AM

在React中,声明式编程通过描述UI的期望状态来简化UI逻辑。1)通过定义UI状态,React会自动处理DOM更新。2)这种方法使代码更清晰、易维护。3)但需要注意状态管理复杂性和优化重渲染。

React的生态系统的大小:浏览复杂的景观React的生态系统的大小:浏览复杂的景观Apr 28, 2025 am 12:21 AM

TonavigateReact'scomplexecosystemeffectively,understandthetoolsandlibraries,recognizetheirstrengthsandweaknesses,andintegratethemtoenhancedevelopment.StartwithcoreReactconceptsanduseState,thengraduallyintroducemorecomplexsolutionslikeReduxorMobXasnee

React如何使用密钥有效地识别列表项目React如何使用密钥有效地识别列表项目Apr 28, 2025 am 12:20 AM

RectuseSkeyStoeficelyListifyListIdifyListItemsbyProvidistableIdentityToeachelement.1)keysallowReaeActTotRackChangEsInListSwithouterSwithoutreThoutreTheenteringTheEntirelist.2)selectuniqueandstablekeys,避免使用

在React中调试与密钥相关的问题:识别和解决问题在React中调试与密钥相关的问题:识别和解决问题Apr 28, 2025 am 12:17 AM

KeysinrectarecrucialforOptimizingTherEnderingProcessandManagingDynamicListSefectefection.tospotaTandFixKey与依赖的人:1)adduniqueKeykeystoliquekeystolistItemStoAvoidWarningSwarningSwarningSwarningSperformance和2)useuniqueIdentifiersIdentifiersIdentifiersIdentifiersFromdatainSteAtofIndicessuessuessessemessuessessemessemessemesseysemessekeys,3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具