Android开发学习JavaScript系列(一):准备

Android开发为什么要学习JavaScript?

这个其实也可以不学。正如我之前在《黑客与画家》的读书感悟中的介绍,编程语言会返过来对程序员的思维造成一定的影响,现在用多了Java 6做为开发语言的Android应用开发人员学习一门动态语言是很有必要的。所以,我觉得你可以不学JavaScript,但一定要选择一门动态语言(如Python或者Ruby)来体验一下。

学习JavaScript的如处:

1.前端、后端和移动端现在都可以用JavaScript开发,这个好处是显而易见的。
2.JavaScript语言很简洁,有很多的学习资源;
3.记得著名的Atwood定律吗?“凡是能用JavaScript写出来的,最终都会用JavaScript写出来。 ”
即使不介绍JavaScript语言本身的好处,单微信小程序选择JavaScript开发都可以引起我们的重视。对于很多移动端的开发来说,React Native、Weex或者微信小程序对我们是一种冲击,但其实也是机会不是吗?你至少比只会JavaScript开发的人更了解原生,有更多的经验,我们不妨抛弃以前的语言偏见(或者看不到其他语言的短见),来体验一把JavaScript带给我们的全新感受。

JavaScript的历史

1995年面市的JavaScript其实和Java关系并不大(除了借鉴一些语法样式),在当时有可能只是做为一种营销手段,所以才效仿当时已颇为有名的Java,将名子由最初的LiveScript改为JavaScript。稍微了解一下JavaScript的语言规则就会发现,JavaScript和Python或者Ruby这样的轻型脚本语言,或者Lisp之类的以函数作为主体的程序设计语言很相似。

JavaScript简史:
这里写图片描述
网景公司和微软公司都在开分各自的JavaScript的实现版,为了防止因两家公司独自开发而导致JavaScript分裂及其他的一些问题,网景公司提出了名为Ecma Interational的JavaScript标准化组织,将语言规则的制定权交给了中立的标准化组织。

所以,现在你接触的JavaScript是一种符合ECMAScript标准的程序设计语言,虽说某些时候JavaScript会是ECMAScript标准的超集,往往很多功能是先由JavaScript实现最后才会被ECMAScript定为标准。即是说ECMAScript的标准有很多个实现版本,如微软的IE、Google的Chrome都有各自的JavaScript引擎,兼容老板本的IE也是一个让开发头痛的问题。

目前主流的流览器都支持ECMAScript 5版(到了2012年底,所有主要浏览器都支持ECMAScript 5.1版的全部功能),2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”。ECMAScript 6版加入了些新的元素,不过浏览器还不完全支持ECMAScript 6的语法,所以之后你会遇到一个转换程序帮助你把E6的代码转换成E5的。

太多的细节现在也不需要知道得太多,我们只要有一个概念:ECMAScript是规范,而每个浏览器产商都有各自的实现。

JavaScript的特点

JavaScript程序设计语言有如下几个特点:
*解释型语言
*类似于C和Java的语法结构
*动态语言
*基于原型的面向对象
*字面量的表现能力
*函数式编程

稍后的章节我们会解释这几个特点。2009年,Node.js项目诞生,它标志着JavaScript可以用于服务器端编程,从此网站的前端和后端可以使用同一种语言开发。

在Node.js把JavaScript的领域扩展到后端之前,人们的印象中JavaScript大多数用在客户端(浏览器),所以JavaScript和DOM感觉密不可分,但实际上DOM对于客户端JavaScript来说,仅仅是一个宿主对象。JavaScript中对于不同的运行环境,有着不同的内置宿主对象,浏览器客户端JavaScript的全局对象被称作window对象。在启动中,JavaScript从宿主环境获取的对象树被称为宿主对象。

DOM(Document Object Model) 是一套对文档内容进行抽象和概念化的方法、是对外提供的操纵浏览器内容的API。JavaScript对网页进行的所有操作都是通过DOM进行的、用于改变浏览器呈现的内容与方式。
在Android应用中或者说在传统的编程习惯中,我们喜欢找到main函数(程序的入口),这样我们才能知道代码从哪里开始执行。在Android应用中,一个APK的应该是以Application.onCreate做为起点。

在Android的Application中,虽然还有attachBaseContext会更早被调用,但我们一般还是以onCreate做为自己应用的起点。
而JavaScript代码的执行起点在哪里呢?

JavaScript是一种描述型脚本语言,它不同于java这种编译性语言,它不需要进行编译成中间语言,而是由浏览器(或者执行引擎)进行动态地解析与执行。而你熟知的Android应用是会被编译成字节码(dex),最后由DVM虚拟机执行dex。

JavaScript的代码块被读取解析时,执行顺序是至上而下的。引擎是从JavaScript文件的顶部由上到下逐条执行语句,直到文件尾部执行完每一条代码。没有我们所说的main入口。而且一个脚本定义的函数或全局变量,后面加载的脚本也可以调用,这也是一个让静态语言习惯的开发不适应的地方。

环境准备

环境其实很容易准备,一是直接利用浏览器客户端,建议用Google的Chrome,IE有些版本的话问题比较多。所以我们需要写一个Html解本来引入我们的JavaScript代码,然后在浏览器打开这个Html文件即可运行我们的代码。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>学习JavaScript</title>
</head>
<body>
<h1>学习JavaScript</h1>
<p>
  Android开发学习JavaScript系列(简书:goeasyway)
</p>
<script>
  console.log('Hello World!');
</script>
</body>
</html>

用Chrome浏览器打开这个文件,在Console选项可以看到console.log的执行结果:
这里写图片描述
二是利用Node.js(安装请点击:https://nodejs.org ),写JavaScript代码后通过“node xxx.js”查看结果。如testjs.js文件内容如下:

console.log('Hello World!');

输入如下命令可以看到结果。

node testjs.js

当然还有其他的方式来测试代码,如一些在线测试JavaScript的网站。不过对于我们之后的学习来说,有这两种方式已经足够了。至于IDE工具大家可选择自己喜欢的,如Sublime、Webstorm或者其他的一些文本编辑器都可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值