Web 占据互联网的世界以来,JavaScript 语言的地位越来越高,其所发挥的作用也越来越大。
JavaScript 的应用领域越来越广
从 MVC 架构的后端渲染 HTML 页面,纷纷被基于 JavaScript 生成的单页面应用(SPA)应用所取代。
桌面客户端的市场,也由于 Electron 的横插一脚,让 JavaScript 在桌面应用开发上也占据了一席之地。
甚至于在传统的服务器后端,也能借助 express 等框架实现 JavaScript 的全栈开发。
至于移动端的APP,早已有 React Native、Uni-APP等方案被市场认可:
就算咱们不需要写前端页面、桌面客户端、移动APP,可能也还是需要学习和了解一下 JavaScript。
毕竟,写爬虫采集数据的时候,遇到的 SPA 网站越来越多,反爬虫的手段越来越变态,简单的进行HTML解析和JSON解析已经很难满足需求了,难免需要再进行一些 JavaScript 逆向还原和解密破解的工作。
鉴于此,咱们还是很有必要学习和了解一下 JavaScript 的。
作为高级语言,JavaScript 和 Python 具有很多相似的东西,接下来咱们就对比 Python 简单入门学习一下 JavaScript。
声明变量
在 Python 中,我们可以直接对变量进行赋值,比如:
a = '字符串'
b = 100
c = 20 * 20
虽然 JavaScript 也是类似的,但是最好还是在使用变量之前声明变量。
JavaScript 中有三个用于声明变量的关键字:
- const
- let
- var
const
是英文单词 constant 的缩写,用来声明一个不可更改的变量,例如:
const myname = 'zmister'
如果我们在声明变量之后,对变量再进行新的赋值,就会发生提示异常:
与const
不同,let
声明的是一个可变的变量,通过它声明的变量,我们可以随时进行新的赋值,如下所示:
同时,let
声明的是局部变量,作用域县域它所处的代码块内。
还有一个var
,是 JavaScript 中最古老的变量声明关键字,其声明的是全局可变的变量。
数据类型
数据类型就像是现实世界工厂内的零部件,是任何编程语言都必不可少的东西。
下面我们粗略映射一下 Python 和 JavaScript 的基础数据类型:
对于布尔类型,Python 中的 bool
和 JavaScript 中的 boolean
在使用上一致,但是 Python 中的布尔类型继承自int类型。
在 Python 中只有一个 None
表示空,而在 JavaScript 中 有 null
、undefined
除此之外,JavaScript 还有一个symbol
基本数据类型,用于为对象创建唯一标识符。
对于类型的判断,在 python 中,我们使用内置的type()
函数获取变量的类型:
a = 'zmister'
type(a)
而在 JavaScript 中,也有一个内置的类型判断函数typeof()
:
数组和对象
Python 中的列表和字典,可以对应于 JavaScript 中的数组和对象。
数组的创建和使用如下所示:
对象的创建和使用如下所示:
条件判断
条件判断是程序逻辑中的重要组成部分,在 Python 中,有if
语句可以进行条件判断,JavaScript 也支持if
语句进行条件判断,两者基本相似,但是限于语言风格,有些许差异:
for循环
接着是 for 循环:
实际上,JavaScript 中也有for...in
的循环结构,但是这个for...in
循环与Python的for...in
循环用法不一样。
JavaScript 中的for...in
用于循环遍历对象中的键,比如:
While循环
其他循环
除此之外,JavaScript 还有一些 Python 没有的循环结构,比如for...of
循环用于循环遍历数组、元组和字符串类似于 Python的for...in
:
通过上述循环,我们还可以发现,在 Python 中使用+=
、-=
对数据进行叠加或叠减,而 JavaScript 则使用的是++
和--
进行处理。
函数
函数是程序模块化的基础,使用函数对代码进行包装,用于处理相同的问题,极大地提高了编码的效率。
Python 和 JavaScript 对函数的处理是相似的,我们可以看看下面的例子:
不过在 JavaScript 中有三种方式声明一个函数:
第一种是通过函数声明,通过function
关键字声明一个函数:
function addOne(val) {
return ++val
}
第二种是通过变量进行函数声明:
const addOne = function(val){
return ++val
}
第三种则是箭头函数:
const addOne = (val) => { return ++val }
注释
对于代码而言,注释必不可少,python 使用#
作为注释,而 JavaScript 则使用//
进行单行注释,使用/**/
进行多行注释。
最后
这样对比起来,是不是觉得 JavaScript 和 Python 的语法相差并不算大。
作为高级编程语言,其发展已经有愈加融合的趋势了。也就是你的特性我拿来用,我的特性你拿来用。
这样,也方便学习和使用者触类旁通快速掌握并进行编码。