JS的发展历程

JavaScript013

JS的发展历程,第1张

JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

JavaScript作为赋予网页生命的前端基础技术,它可以实现相应的效果和交互,是前端开发不可或缺的基本配置之一,今天来就来了解一下JavaScript的前世今生。具体内容包括JavaScript的诞生、语言版本的更迭以及应用领域等等。让大家在入门开始学习JavaScript之前,对JavaScript的发展历史有一个大致的了解。

1、JavaScript的诞生

JavaScript诞生于1995年,当时,它的主要目的是处理以前由服务器端需要负责的一些没有输入验证操作。在JavaScript问世之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,是否输入了无效的值。Netscape Navigator希望通过JavaScript来解决这个问题。在人们普遍使用电话拨号上网的时代,能够在客户端完成一些基本的验证任务绝对是令人兴奋的。毕竟,拨号上网速度之慢,导致了与服务器的每一次数据交换事实上都成了对人们耐心的一次考验。由此诞生了JavaScript!

JavaScript在1995年2月一经发布就获得了巨大的成功,Netscape随后在Netscape Navigator 3(网景浏览器)中发布了JavaScript 1.1版本。JavaScript发展至今不断迭代,已经取得了伟大成就;但是JavaScript是由公司开发而成的,不便于其他公司拓展和使用,同时JavaScript开发者也在丰富自己的代码和选择使用框架方式,让JavaScript运行在标准兼容的、无障碍的网页中。

2、JavaScript的定义

JavaScript是一种在网络浏览器上运行的编程语言,这种编程语言我们称之为脚本。而脚本语言是在浏览器执行的语言,是一段程序,不是软件。脚本语言可以添加到使用HTML和CSS构建的网站中,在页面加载时会自动执行,并在实现各种页面动态效果、交互方面发挥重要的作用;例如,在购物网站购物时,购物车的使用和成本估算就需要JavaScript,如果没有JavaScript就无法完成结算,购物车的各项操作将无法实现。

3、JavaScript语言版本更迭

为了让JavaScript能够运行在标准兼容的、无障碍的网页中,也就是需要解决JavaScript的兼容问题;因此,欧洲计算机制造商协会ECMA牵头制定JavaScript标准,取名为ECMAScript,至此,JavaScript 的核心语言ECMAScript产生。ECMAScript 是一门由 ECMA TC39 委员会标准化的编程语言,其规定了JavaScript的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JavaScript语法工业标准。其在1997年正式发布第一版,历经十数年的迭代更新,于2018年发布了ECMAScript 8,其功能空前强大,增加了更加丰富的新特性。JavaScript语言版本更迭的发展历史如下

4、JavaScript的应用领域

经过多年发展,JavaScript成为现代技术世界中最受欢迎和增长最快的编程语言之一,同时成为前端开发人员的最爱。那么,为什么JavaScript能够有如此高的热度呢?因为JavaScript有着丰富的用途,几乎所有浏览器都支持它,是互联网上最流行的脚本语言。只要是稍微对前端感兴趣,你肯定听说过“大前端”,“全端”,JavaScript 完全符合这一趋势,JavaScript可以写前端、后端、客户端,甚至可以写各式应用以及操作系统!下面这张图表示JavaScript的实际使用功能与领域:

回顾JavaScript的发展历史,JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端,足以证明JavaScript无处不在的魅力。

我认为的2020年前端开发者最应该掌握的一些比较火爆的技术与知识点。

1,前端框架和语言层面

9月份 Vue3.0 发布,声称对 TypeScript 有着更好的开发体验,通过从不同框架级别 TS 支持上,我们可以看出社区的整个风向从2019年的大家都去学习应用 TS,变成了大家如何把 TS 用的更好这个方向上来了。

所以我认为今年 TypeScript 的火热程度还是应该排名很靠前的,我今年也使用 TypeScript 重构了 Daruk 的服务框架推出了2.0版本,让 TS 开发者拥有更好的 TS 开发体验。

接下来就是两大重磅框架的更新历程对比,Vue3 前面说了一句。而 React 也在十月也发布了 React 17 的 release 版本。这两大主流框架的频繁更新,也说明了社区和作者都在一同演化。

在 Vue 3中除了更好的支持 TS 外,还更新了Composition API。而 React 17 主要是集中精力在升级体验上,虽然没有新的 Feature 但是提升了和解决了很多之前版本潜在的问题。

要说哪个最火还是要看个人实际的使用场景和喜好,但是2020年来看还没有别的框架可以与之一战。

         

            2,大前端相关技术栈

今年基于Chromium的微软edge浏览器也已经推出。google 在 web 端的发展产生了对开发者深刻的影响。Chrome 80+ 也已经发布多个版本,提供了一系列的新特性,比如Core Web Vitals标准,Desktop PWA等都值得我们去关注。

         

            我们说完了浏览器相关的那点技术之后,再聊聊大前端相关的一些技术实践,比如 Flutter。

很多前端在今年已经从 web 开发转型为 Flutter 开发,学习和使用 Dart 技术来构建 UI,这是很多大厂的前端工程师正在经历的事情(包括我的部门也在尝试这个事情),这个趋势应该在未来几年还会持续。

客户端 electron 在今年也有着长足的进展,一年内多次更新版本一路到了10.1.5。随着疫情影响,国内在线教育的又一波兴起。很多桌面软件,网课软件都在采用这个技术来进行开发,市场上的岗位也开始变多,electron 技术可以说在今年也有火的趋势。

         

            然后我们再看看BFF 层,nestjs依然坚挺,越来越多的人开始跳过学习 express 和 koa 开始学习更丰富的 web 框架了,比如 egg 或者我的 daruk,开发者已经在慢慢形成共识,在 web framework 的路上开始越走越远,裸写 nodejs web 服务的时代已经开始慢慢褪去。

         

            不得不提的还有 serverless 在前端的普及,在2020年到达了一个新的高潮。阿里云,腾讯云,头条云等等国内的互联网厂商也都开始大玩 serverless 概念。从对内服务开始转向对外服务,普及的势头很猛,也有落地的趋势和场景。今年的 D2同样也有 serverless 的专场,可见受重视程度非比寻常。

3,工程化提效和个人素质提升

再离我们近一些的推动生产力的技术,比如据我所知在用 CI/CD 和 pipeline 管理上线流程的公司越来越多,这种去年还可以出去吹一吹的东西,今年也逐步变成了业界标配基础能力,如果不会的同学可要抓紧学习了。

         

            2019年前大家都疯狂吐槽面试刷 medium 题目没用,而2020年后大家开始默认面试某些公司都至少要刷到medium程度的题目。这对很多前端来说是一个心智和素质的提升与转变,大家在接触新技术的同时,也慢慢发现,前端整个职业环境的变化,越来越多的公司对人的整体综合素质要求变高了。

通过js新技术(ajxa技术)来添加记录,并改变按钮文字,很简单的

1先创建xml.js文件,代码如下

//表单xml判断

var xmlHttp = false

var xmlHttpcar = false

try{

if( window.ActiveXObject ){

for( var i = 5ii-- ){

try{

if( i == 2 ){

xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" )

xmlHttpcar = new ActiveXObject( "Microsoft.XMLHTTP" )

}

else{

xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" )

xmlHttp.setRequestHeader("Content-Type","text/xml")

xmlHttp.setRequestHeader("Charset","gb2312")

xmlHttpcar = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" )

xmlHttpcar.setRequestHeader("Content-Type","text/xml")

xmlHttpcar.setRequestHeader("Charset","gb2312")

}

break

}

catch(e){ xmlHttp = falsexmlHttpcar = false}

}

}

else if( window.XMLHttpRequest ){

xmlHttp = new XMLHttpRequest()

xmlHttpcar = new XMLHttpRequest()

if ( xmlHttp.overrideMimeType ){ xmlHttp.overrideMimeType('text/xml')}

if ( xmlHttpcar.overrideMimeType ){ xmlHttpcar.overrideMimeType('text/xml')}

}

}

catch(e){ xmlHttp = falsexmlHttpcar = false}

2再在asp页面里面引用xml.js代码

然后内陷js触发事件代码

function showvn(paraaction,paracmd,parapage,paraid,xothervalue){

var action=paraaction

var cmd=paracmd

var page=parapage

var id=paraid

var othervalue=xothervalue

var url = "/ajxaother.asp?fl="+action+"&cmd="+cmd+"&page="+page+"&id="+paraid+"&formvalue="+othervalue

xmlHttp.open("GET", url, true)

xmlHttp.onreadystatechange = updateVN

xmlHttp.send(null)

}

function updateVN() {

if (xmlHttp.readyState <4) {

document.getElementById("viewernum").innerHTML="<img src='/images/loading.gif'/>"

}

if (xmlHttp.readyState == 4) {

var response = xmlHttp.responseText

document.getElementById("viewernum").innerHTML=response

}

}