要编写一个React Native要涉及到的语言基础还是挺多的。不像之前学习Android开发,只要会Java就可以了。发现前端的项目,都是各种语言混合在一起使用的,React Native估计也类似,还是乖乖把基础语法大概过一下吧。
第一个语言基础,就是JavaScript以及新特性ES6的基础学习。
JavaScript语法
网上搜索一下,参考各路大神的推荐,可惜动不动就推荐入门者看犀牛书,红宝书这些,看页数先暂时放下吧!毕竟才刚刚入门,而且我们目标是先写一个React Native应用。
比较之后,选择《JavaScript DOM编程艺术》,很薄的一本书籍,熟悉语法的同时,也熟悉一下DOM编程的思路,不过只是看了前几章。
然后,直接在W3c或者廖雪峰的JavaScript教程熟悉一下语法。
JavaScript经典书籍及资料
- JavaScript权威指南(犀牛书)
- JavaScript高级程序设计(红宝书)
- JavaScript语言精粹(蝴蝶书)
- JavaScript DOM编程艺术(第二版)
- W3school JavaScript
- 廖雪峰 JavaScript教程
- ECMAScript 6 入门
DOM
什么是DOM
DOM的定义:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和修改文档的内容、结构和样式。
简单来说,通过DOM,你就可以用HTML标记一个页面元素,然后,通过CSS为这个页面元素定义位置样式,然后,可以用JavaScript改变它的位置。但是,CSS或者JavaScript怎样去找到HTML写的这个元素呢?就是通过DOM。
感觉有点类似Android开发中,UI的控件添加一个id属性,然后,在Java中,就可以通过findViewById()获取到该控件,然后对该控件进行修改。
基本语法
加载JavaScript语法
1 | <script> |
打印日志
1 | console.log("log") |
定义变量
1 | // 没有声明或者声明后没有赋值的变量值为undefined |
注释
1 | // 我是一行注释 |
数组
1 | // 定义数组,数组内可以包含任意数据类型 |
容器
Map,一个key只是对应一个value,相同key后添加的会覆盖前面的
1 | let mMap = new Map(); |
Set,一组key的集合,key不能重复,输入相同key会被自动过滤
1 | let mSet = new Set(); |
扩展运算符...
1 | let a = [1,2,3,"yuan"]; |
解构
1 | let[a,b,c] = [1,2,3,"yuan"]; |
函数
1 | // 传入的参数比定义的多和少都没有问题,如果没有传进去,默认参数为undefined。所以,在使用之前,要对参数进行检查,避免收到undefined而进行处理。 |
arguments,默认指向所有传入的参数,类似Java中的main方法中的args,只是不需要自己定义。一般可以用来判断传入的参数长度。
1 | function fun(x){ |
函数return,总结下来就是有指定返回,就返回指定值,没有就返回undefined,return后面会自动添加;
作为语句的结束标志。
1 | // 没有写return,默认return undefined |
箭头函数
ES6中,允许使用“箭头” =>
定义函数,有点类似于lambda表达式,更接近于函数的数学符号表达。
1 | # class外部 |
使用例子
1 | // 没有参数或多个参数 |
对象
1 | // 创建对象,对象是一组由键,值组成的无序集合 |
模块的导入和导出
一个独立的js文件可以说是一个模块,该文件内部的所有变量,外部无法获取,不像Java中是有私有、共有变量这些概念的。如果你希望外部能够读取该模块,那么就用export输出该模块的对外接口,用import导入该模块提供的接口。
1 | // 导入模块 |
如果a文件导出为default,有且仅能一个default,那么b.js的import可以不加{},名字可以为AAA或者BBB都无所谓,都是指向a.js的AAA
1 | // a.js文件 |
如果a文件导出,没有default,则b.js的import,必须加{},而且名字必须和a.js中导出的名字一样,如果想进行修改,则使用关键字as
1 | // a.js文件 |
注意
- JavaScript是区分大小写的
- JavaScript不要求语句后面必须加
;
,但是建议开发的时候加上
参考资料
- 《JavaScript DOM编程艺术》
- 《ECMAScript 6 入门》
- 深入浅出ES6(十四):let和const
- ES6,import时如何正确使用花括号’{ }’
- ECMAScript 6 入门 Module 的语法