标签信息
  获得0次关注
  发布9篇文章

王老迪 2018-04-11 09:14:35

这几天了解了一下web发展史,这里总结一下。

1.什么是web

QQ图片20180410094133.png

从上图中能看到,web最终表现是终端(pc,移动设备)通过联网(wifi)的方式看到浏览器从而能够访问到公网再到Web服务的一个整体。

2.web是怎么诞生的呢?

    这里从三个层面来解答

        1.物理机联网/分包数据交换(物理及协议)

image.png

     ARPANET是美国国防部,最开始是有国防部为了解决机器互联的问题(1969年),在这个过程中诞生了ip/icp协议(网络协议的联通,1983年),物理机的联通跟网络协议的联通,当中就会产生数据的交换,就诞生出来了FTP协议。

        2.http/html/web服务器(软件层面)【在物理机联网20年之后】

            前篇文章已经讲过,软件层面一些的架构主要是由Tim Berners Lee一个人独立完成的,是在1989年的3月在欧洲的核子研究组织中诞生的,诞生原因:,这个组织有超前的工具(强子对撞机,不知道写错了没有。。),并且他提出了一个信息管理的建议(这个原因告诉我们独立思考很总要)

        3.浏览器

            以上的完成了之后,就需要一个获取信息的界面,在同年(1989年),首部带有UI的电脑(neNT)问世,出自乔老爷之手(他只是个产品经理,一起鄙视,哈哈- -!~),在后一年,第一个可以获取信息的浏览器开始诞生,它就是Netscape(也是由Tim Berners Lee完成的哦)。以下是web的发展过程。

image.png


接着终于来到了浏览器是时代了。

    是的,1994年(俺出生的那年,虽然没什么关系),网景跟javascript诞生啦(这一年还诞生了php哦)。不过比较惨的是javascript是一由一个老大哥10天内就整出来的,所以相当不严谨(都是泪,相信写javascript的童鞋都经历过,这里我就不单独一篇文章去介绍javascript的诞生了)。

    关于js,由于技术的发展,10年后,就会出现各种库来解决开发效率的问题,最早的js库就是prototype,也是最早用$符号的。然而奠定js基础的架构其实是YUI框架,2006年,借鉴于前面的js框架,Jquery也出来了(是你偶像吗?),在2010年后,也就出现了更多的库了。

    接着,在1996年开始出现了css(一开始其实css不是想作为一个描述语言,是想作为一个逻辑型语言执行的),css的出现,是的整个浏览器感觉焕然一新(每年的4月9日是css的裸奔节哦)。

image.png

    上图中我们能看到js的变迁过程中,我们就能知道,web开发工程师到现在,一共14年的历史。而ued和fe,这个主要是描述WEB工程师的工作环境的。

    UED时代

        在这个时代,前端开发人员还很少,但是分工又很多,具体可看下图

image.png

        这个时期用户页面开发程序员刚起步,大部分页面开发人员是由设计师转成的,而大部分的js开发则是由服务端工程师去完成的。这个时代下,就会有天花板问题,一是设计师的天花板就比较低,一旦往后一些工作就不能够定期的完成,一个是项目周期比较长,测试难以测试。

      FE时代

            image.pngimage.png

            这个时代就是前几年啦(王老迪刚入职时基本就是这个时代),随着项目周期长跟各种语言库的积累,对程序员的要求也降低了很多,但同时,一个人完成能完成多个环节也是大大的提高了效率,在这个基础上,前端开发就包揽了页面的重构已经js的开发还有后端页面的开发。这个过程其实学习的东西还是比较多的,网上一收一大把,但还是建议我们多多的掌握好基础,基础就是不断变化中核心不变的这一类

            1.数学,2.编译原理,3数据结构,4操作系统

        新时代(大前端和全栈工程师)

             大前端:web端+android端+ios端

             全栈:node.js+web端

            这可以说是web前进的路线,我希望自己能走全栈的路线,相信大家一会有属于自己的那个选择。

王老迪 2018-04-20 09:50:36

走到了js这里,从思维的角度就跟css和html就不一样了,css跟html更像是画画记住然后去创造(组合能力),JS就相当于数学了(理解比较重要),也是编程的乐趣跟痛苦所在。

想把工作经验总结一下的就是,js其实跟做数学题差不多,当然想得到满分,但是小时候的经验告诉自己,做题一直比较马虎(从没考到过100分),所以不希望自己在继续跟题目死磕,在工作上,解决需求的方法多种多样,要学会变通。但是初心还是有一点,也是写这个网站的初心,把过程中遇到的一些问题记得补上,花点时间有点自己的输出。


ps1:“倒着推”是我工作当中比较常用的方法。

ps2: 跟做解答题一样,工作的事情想清楚了在动手。


扯远了,接下来进入正轨(我的优先级当然是以自己的角度去进行理解,如果有人有幸看到这里,觉得表达的不对或者不理解的地方可以找我交流哈。。)


JavaScript类型

    1.js的五个类型和一个特殊类型

        undefined,number,string,boolean,null   + object

        前五个属于基本类型:

                undefined  属于已经创建但是没有赋予值(php中的 isset())

                null             根本没有创建(php中的isnull()或empty())

                boolean      常用的转换方法 !!code

                number       常用的转换方法 ++num, num + string || bool , num++

                string          常用的转换方法 string+num,tostring(),String()

        主要经常会迷惑的地方在object这个类型上

                null也是object类型 且相当与object在boolean中的false值(所以一般对象类型初始化一般用null来表示)

                function也属于object类型中的一种


javaScript作用域

     1.作用域链

        内部函数能使用自身的变量,也能使用'父'级以及'祖先'的变量,但不能使用'子'级的变量。

      2.没有块级作用域

         image.png                

          如上图所示,if语句的作用域里面声明的变量,在外面依然可以使用,在js中,如果想延长作用域链条,只能通过定义函数的的方法。