ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

为什么建议学习 ES6?

先从我的经历说起吧!小编大二的时候,开始接触 web 开发,那时候 web 开发技术栈基本上是 php+html+Javascript, JavaScript 功能十分强大,但是学习曲线非常陡峭,对新手不够友好。

后来,我上研究生的时候,Python 凭借大数据火了,我的主流开发语言就变成 Python 了。与此同时,前端也迎来了从 MVC 架构到 MVVM 架构的变革,出现了组件化开发,前后端分离开发, SPA 单页应用等新概念,产生了代表性的框架 Vue, React 等,在 Facebook、阿里、腾讯等大厂得到了大规模应用。使用这些框架不必再去了解晦涩难懂的原生 JavaScript 了,就像当初 jquery 代替原生的 JavaScript 一样。而这些前端框架几乎都是基于 ES6 的,改版后的ES6, 上手难度大大减小。

React vs Vue

从本科到研究生,再到现在工作,Python 和 ES6 一直是我最喜欢的语言。

我选择这两个语言搭配的理由是:

  1. Python+ES6 配合使用,基本算一个全栈工程师了,本人也算半个全栈吧,使用这两个语言能让我够轻松应对爬虫、前端、后端、机器学习、NLP 开发等日常工作。掌握一些前端的技术,是十分有用的,毕竟有时候,算法再酷,也需要产品包装一下。研究生期间,这套技能组合,让我接到了一些业余的小项目,现在工作了,虽然自己是 NLP 算法工程师,但有过排期经验的都懂,一个需求下来就是一个月,因此偶尔也会自己去撸 demo。
  2. ES6语言容易上手,因为很多语法都是借鉴Python的。说出来可能有些夸张,我压根没有系统的去学习ES6,做项目的时候,看一看别人的例子,很多代码直接就写出来了,很多语法按照Python的理解,基本上都能猜出来。

为了解释为何ES6学习成本如此之低,我找到一篇博客,整理的非常好:https://blog.logrocket.com/how-python-can-help-you-learn-es6/

程序员最讨厌的两件事:不写注释和写注释

之所以没有做更多的注释,除了想偷个懒之外,我觉得把两个语言放在一起,代码的意思不言自明。

基本数据类型对比

基本数据类型

数组/列表操作

// JavaScriptlet arr = [1,2,3,4,5]arr.push(5)console.log(arr) // [1,2,3,4,5,5]arr.pop()console.log(arr) // [1,2,3,4,5]
# Pythonl = [1,2,3,4,5]l.append(5)print(l) // [1,2,3,4,5,5]l.pop()print(l) // [1,2,3,4,5]

字符串切片

// JavaScriptlet s = '123456'console.log(s.split('')) // ["1", "2", "3", "4", "5", "6"]
# Pythons = '123456'print(s.split('')) / ["1", "2", "3", "4", "5", "6"]

变量定义对比

// JavaScriptlet coerced = 1;let concatenated = coerced + 'string';
# Pythonnot_coerced = 1concatenated = str(not_coerced) + 'string'

函数对比

// JavaScriptfunction drSeuss(catInTheHat, thing1, thing2) {if (catInTheHat == true &&    thing1 == true &&    thing2 == true) {console.log('is cray');  } else if (catInTheHat != true) {console.log('boring');  } else {console.log('so boring');  }}
# Pythondef dr_seuss(cat_in_the_hat, thing1, thing2):if cat_in_the_hat == True and    thing2 == True and    thing2 == True:print 'is cray'elif cat_in_the_hat != True:print 'boring'else:print 'so boring'

模板字符串对比

// JavaScriptlet exclamation = 'Whoa!';let sentence = `They are really similar to Python.`;

console.log(`Template Literals: ${exclamation} ${sentence}`);
# pythonprint '打印: {} {}'.format('Whoa.', 'Quite!')# 打印: Yup. Quite!

参数默认值对比

// JavaScriptfunction nom(food="ice cream") {console.log(`Time to eat ${food}`);}

nom();// Time to eat ice cream
# Pythondef nom(food="ice cream"):print 'Time to eat {}'.format(food)

nom() # Time to eat ice cream

类对比

// JavaScriptclass Mammal {constructor() {this.neocortex = true;  }}

class Cat extends Mammal {constructor(name, years) {super();this.name = name;this.years = years;  }

  eat(food) {console.log('nom ' + food);  }}
# Pythonclass Mammal(object):  neo_cortex = True

class Cat(Mammal):def __init__(self, name, years):    self.name = name    self.years = years

def eat(food):print 'nom %s' % (food)

fry_cat = Cat('Fry', 7)fry_cat.eat('steak')

模块导入对比

# JavaScriptimport { myvar, myfunc } from "./mymodule";console.log(myvar);myfunc();
# Pythonfrom mymodule import myvar, myfuncprint myvarmyfunc()

后记

最近在看 Martin Fowler 的经典老书《重构 改善既有代码的设计》,第一版 2003 年出版,用的是 Java 来讲解的,2019 年第二版发布了, 并用 JavaScript 语言重写了代码范例,读起来就像看 Python 代码一样浅显易懂,感兴趣的可以翻一翻。

重构(第2版)全彩精装版

历史文章推荐阅读:从零开始深度学习Pytorch笔记(2)——张量的创建(上)从零开始深度学习Pytorch笔记(1)——安装Pytorch【心得体会】聊一聊在国内计算机读研,遇上的那些导师们...你不知道的Python环境管理技巧,超级好用!Python快速安装库的靠谱办法你只会用Python的pip安装包?别错过这些好用功能!

扫码下图关注我们不会让你失望!你点的每个在看,我都认真当成了喜欢

cs架构用什么语言开发_我为什么建议Python开发者将ES6作为第二语言相关推荐

  1. cs架构用什么语言开发_用Rust语言开发微信小程序

    由于stdweb已经好久没有更新了,本人又写了另外一篇: JiaYe:用Rust语言开发微信小程序:wasm-bindgen​zhuanlan.zhihu.com stdweb可以轻松将Rust代码编 ...

  2. cs架构用什么语言开发_学了C语言,能开发什么项目?

    直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,JAVA等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?小编作为专门下载了这两种语言的底层源码 ...

  3. cs架构用什么语言开发_C、C++、Go 语言、Linux服务器开发高级架构师进阶之路

    C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性. 现在C++的使用范围比以前已经少了很多,Java.C#.Python ...

  4. boss直聘用什么语言开发_我不在乎开发人员使用什么工具。 我根据基本原则聘用。...

    boss直聘用什么语言开发 by Ben Cheng 通过本诚 我不在乎开发人员使用什么工具. 我根据基本原则聘用. (I don't care what tools a developer uses ...

  5. java做机器视觉_机器视觉用什么语言开发_机器视觉用什么硬件

    机器视觉用什么语言开发 目前可以开发机器视觉的相关计算机语言有C++,C#,JAVA,PYTHON等,甚至简单的PHP和JAVASCRIPT也可以开发相关的功能. 机器视觉需要用到图像处理库,有很多免 ...

  6. 即时通讯开发用什么语言开发_如何开始开发者通讯

    即时通讯开发用什么语言开发 Developing software has become a collaborative effort. Many development platforms are ...

  7. python安卓app开发_[实例教程] 用python开发android应用

    Python是动态语言,比较简洁.Android不直接支持使用python开发应用,需要使用其它中间件或者库.PythonForAndroid提供了在android平台上对python语言的支持:CL ...

  8. python软件基金会在哪个国家举行_官宣!Python 开发者大会(PyCon US)提供在线订阅啦!...

    今年一开年,我们就遇到了一个天大的"黑天鹅"事件,如今它已蔓延成为了一个全球性事件,而且似乎还要持续一段挺长的时间. 各行各业的人们都受到了牵连,各种计划和安排也要被迫作出调整.今 ...

  9. 奔跑吧火柴人c语言开发_小学数学智力题:这两个火柴棍趣味题,你能做出来吗?...

    数学也可以很有趣,甚至还能检测和开发孩子的智力呢,今天小编跟大家分享两个数学智力题,大家一起加入我们,看看这两个经典的火柴趣味小学数学智力题吧! [题目1]错误的等式 上图这个由火柴拼出的等式是错误的 ...

最新文章

  1. java errorlevel_bat中errorlevel与%errorlevel%的区别
  2. silverlight 中javascript 代码与托管代码的互调用 以及一些思考
  3. sql server 2005中新增加的try catch学习
  4. 配电技术——配电线路系统电气设备详解
  5. angular-file-upload+springMVC的使用
  6. 后端技术趋势指南|如何选择自己的技术方向
  7. java 安全库_国家信息安全漏洞库
  8. android ndk 文件管理,Android NDK开发指南(二)Android.mk文件
  9. linux 中禁用USB存储
  10. Json.NET特殊处理64位长整型数据
  11. 登录mysql 1130_解决远程登录mysql数据库报1130错误-阿里云开发者社区
  12. CentOS 上MySQL报错Can't connect to local Mysql server through socket '/tmp/mysql.scok' (111)
  13. jmeter处理带表单的接口请求
  14. Vim 编辑器的兼容模式
  15. iOS开发——策略模式
  16. CSDN的MD编辑器【写作技巧】
  17. 深度学习论文-Cyclical Learning Rates for Training Neural Networks
  18. nyoj_71 独木舟上的旅行
  19. 1000内不能被7整除的数
  20. 2019上半年阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总...

热门文章

  1. WPF的ListBox的数据绑定,但需要添加控件在里面的时候
  2. .NET中的异步编程(一)-为什么需要异步
  3. 解析Json的格式.
  4. 回首我的2007 12/25
  5. Python_多线程编程
  6. JNI开发笔记(一)--Android Studio安装与环境搭建
  7. OpenCV3学习(5.1)——图像变换之缩放、金字塔、仿射、透射
  8. mysql-mmm_MySQL-MMM高可用群集
  9. R7-3 福到了 (10 分)
  10. HTML5自定义数据属性data-*