美文网首页
reactnative学习-JS的基础知识

reactnative学习-JS的基础知识

作者: 码字农民工 | 来源:发表于2018-04-30 21:16 被阅读34次

JavaScript简介

JS是一个轻量级的,解释型的讲函数视为一级公民的程序设计语言。他是一种基于原型的多范式动态脚本语言,支持面向对象,命令式编程和函数式编程。

属性的声明

我们直接上一张表来看下

语法 含义 定义范围
var 变量 全局/类/函数
let 局部变量 函数
const 常量 全局/类/函数
static 静态函数 全局/类/函数

数据结构和类型

类型 含义
Boolean 布尔值,true/false
null 空类型
undefined 没有定义的类型
Number 数字类型
String 字符串
Symbol 值类型(不可变的,可以作为key)
Object 这个就不用说了吧

流程控制

类型 含义
if,else 条件判断
switch 循环
for 循环
while 条件循环
break 跳出整个循环
continue 跳出当层循环
return 跳出当前函数

以下值在JS中是会识别为false

false
undefined
null
0
NaN
空字符串 ("")

注释

写法 含义
// 单行注释
/* */ 多行注释
{/* */} 视图注释

函数

函数的定义,由function关键字声明,例如function 函数名()在()添加参数,参数不需要声明类型。当在类中定义的时候,不需要funciton关键字

箭头函数(Arrow functions)

对于刚开始没有接触过js语法的萌新来说下面这段代码有点蒙蔽。

//调用本类的loadData()方法
onPress={() => this.loadData()}
//还可以使用下面的写法
onPress={() => {
    //具体的实现
    ...
  }
}

其实这种写法有种像android中的lambda表达式。
() => {}()代表需要传入的参数,=>代表指向的意思,{}代表内部具体的代码实现。如果指向的是一行代码可以省去外面的{}括号。

Promise

在ES6中原生提供了 Promise 对象。Promise其实就是一个对象,用来传递异步操作的消息。Promise有三种状态:Pending(事件执行中)、Resolved(事件完成)和 Rejected(事件失败)。

优点:有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise 对象提供统一的接口,使得控制异步操作更加容易。

缺点

  • 无法取消 Promise,一旦新建它就会立即执行,无法中途取消
  • 如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部。
  • 当处于 Pending 状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)

可能这些概念性的东西大家听的有点蒙蔽,那咱们就直接上代码吧。先来一个简单的使用例子:

var promise = new Promise((resolve, reject) =>{
  //这里是异步处理方法,最终得到data结果(Promise状态)
       ...
  //然后根据data的status属性决定处理结果是否正确。
  if(data.status == true){
    resolve(data); //Resolved状态
  }else{
    reject(error); //Rejected状态
  }
});

//使用
promise.then((data)=>{
  //这里处理resolve回调方法
}).catch((error)=>{
  //这里处理reject回调方法
});

由于promise执行then/catch方法时会再返回一个Promise对象,所以是还可以再次执行then或者catch方法,所以Promise还可以写成方法链的形式:

const promise = Promise.resolve(1)
promise
    .then((value) => {
       console.log(value)
    })
    .then((value) => {
       console.log(value)
    })
    .catch((error) => {
       console.log(error)
    })
    

如果上个then函数想给下个函数返回值让其使用也是可以的,继续上代码。

const promise = Promise.resolve(1)
promise
    .then((value) => {
        return value + 1
    })
    .then((value) => {
        return value * 2
    })
    .then((value) => {
       return console.log(value)
    })
    .catch((error) => {
        console.log(error)
    })

相关文章

网友评论

      本文标题:reactnative学习-JS的基础知识

      本文链接:https://www.haomeiwen.com/subject/tydtrftx.html