全栈工程师成长记录(2)

1LSGO软件技术团队

贡献人:马燕鹏

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。

If you like the content here, the greatest helpyou can give meis forwarding, so tell your friends and encourage them to learn together.

这是自己全栈工程师成长记录的第二篇日志,在上一篇全栈工程师成长记录(1)中有网友问我,“你的学习笔记中怎么都是C#与JavaScript混合的,成为全栈工程师,除了C#和JavaScript还需要学习什么吗?”

通常学习新的知识最好的途径就是找到与自己原有知识的连接点,把新的知识囊括到自己现有的知识体系中,这样才能更好的掌握这门知识或技术。大学毕业后的第一份工作是在东莞的一家软件公司做程序员,当时用C++来做医疗信息平台,后来在中山大学读书时用Delphi + ArcObject来做地理信息系统,毕业后来华电教书,主要用C#来做石化系统以及电力系统的相关项目,为了更快地验证一些数学模型和深度学习算法,开始用Matlab,Python。要说比较熟悉的语言还得数C#了,所以在学习JavaScript的时候是以C#为标的来学的。现在基本入门了吧,前天在火车上看GitHub上利用JavaScript写的区块链项目,也基本上可以看懂了。

至于自己的全栈工程师之路,为啥要从JavaScript开始呢,我的回答是“自己比较懒,学一种前后端通用的语言就好。”,学会了JavaScript在看看HTML和CSS,前端就搞定了,后端学一下Node.js,数据库部分如果要求不高的话,主要掌握基本SQL语句就OK了,这样就可以把自己的一些想法做出来上线了,至于如何优化,如何做缓存,如果进行分布式存储都是后面在考虑的事情,先掌握最小核心知识,用起来再说啊。

我属于哪种学东西很慢的人,如果我都能快速入门,并拿出一些自己的作品,我相信大部分人都可以,我们一起努力!

学习笔记:

JavaScript 与 C# 一样,利用 typeof 关键词 获取数据的类型。

JavaScript 与 C# 一样,利用包装对象的方式,把普通值类型包装成对象类型,JavaScript 对于包装后的类型,使用 new 一个的方式定义对象,否则当成对应方法。

JavaScript 与 C# 都利用 Date 来进行时间的操作,但 JavaScript 中的月份从0开始计数,绝对坑爹!避免时区问题,记录时间的时候最好使用时间戳 Date.Now()。

JavaScript 与 C# 都是通过正则表达式来对用户输入的文本进行验证的。

正则表达式由元字符、集合范围和量词组成,可加入 g , i , m 对搜索范围进行扩充,可通过加入 ? 进行贪婪匹配与懒惰匹配的转换。

JavaScript通过RegExp对象的test方法对字符串进行检验,exec方法对字符串进行分组。

JavaScript通过String对象的split方法对字符串进行分割。

C# 与 JavaScript 都有序列化与反序列化的概念。C#的序列化通常分为三种: 二进制格式的序列化、XML格式的序列化、Soap格式的序列化,我们通常把内存中的对象序列化成文件,或者序列化成网络流通过 Socket 进行网络的数据传输。JavaScript的序列化是通过 JSON 来实现的。

JSON可以看成是 JavaScript 对象的另外一种表达形式,序列化就是把对象转化成字符串,反序列化就是把字符串转化成对象。

C# 与 JavaScript 都可实现继承关系,JavaScript 的继承关系体现在原型链上,原型链尾部对象继承头部对象(Object)到自己的所有对象中的属性和方法。

JavaScript可以为对象指定自己的原型,也可通过 let Child = Object.create(Parent) 或者通过 let Child = new Parent() 让 Child 链接到原型链中 Parent 的后边。

C# 与 JavaScript 都可通过 new 构造函数来创建对象,C# 创建对象本身而 JavaScript 创建原型链的下一个对象。

JavaScript 每个函数都具有 prototype 属性,默认存储一个原型实例 { constructor : f},f为其本身,即通过该属性把构造函数转换为对象(JavaScript中函数即为对象的根本原因)。

JavaScript 每个对象都具有 constructor 属性,默认存储创建这个对象的构造函数。

C# 通过“:”实现类之间的继承,JavaScript通过原型链实现对象之间的继承。

JavaScript 原型链中非尾端原型对象中的函数在内存中只有一份拷贝,从而实现了内存共享。

JavaScript 通过中间函数F,可以实现原型链的延伸。(这块,是 JavaScript 给我带来惊喜的地方!)

JavaScript在ES6版本终于无法忍受原型对象与原型链这种面向对象的模型,开始引入class关键词,用extends表达继承关系,super表达父对象,与Java语言一致。

JavaScript 提供了访问浏览器元素的对象:window,navigator,location,history。

经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。

欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。

本微信公众平台长期系统化提供有关机器学习、软件研发、教育及学习方法、数学建模的知识,并将以上知识转化为实践。拒绝知识碎片化、耐心打磨技能、解决实际问题是我们的宗旨和追求。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407B00SEV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励