自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 ECMAScript6学习笔记-Generator

一、Generator函数概念Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。形式上,Generator 函数是一个普通函数

2018-03-09 14:10:29 279

原创 ECMAScript6学习笔记-Iterator,for...of

一、Iterator(遍历器)概念遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是 ES6 创造了一种新的遍历命令for…

2018-03-09 10:59:31 315

原创 ECMAScript6学习笔记-Promise

一、含义 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。 Promise对象有以下两个特点。(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、f

2018-03-08 15:16:15 334

原创 ECMAScript6学习笔记-Reflect

一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 1.将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect

2018-03-07 14:57:10 455

原创 ECMAScript学习笔记-Proxy

一、概念 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。 Proxy 对象的所有用法,都是上面这种形式,不同的只是handler参数的写法。其中,new Proxy()表示生成一个Proxy实例,target参数表示所要拦

2018-03-07 14:09:02 352

原创 ECMAScript6学习笔记-Set,Map

1.ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4Set 函数可以接受一个数

2018-03-06 17:45:55 230

原创 ECMAScript6学习笔记-Symbol

1.ES6引入了一种原始数据类型Symbol,表示独一无二的值。其它6中数据类型是:undefined,null,数值(Number),字符串(String),对象(Object),布尔(Boolean)。 Symbol 值通过Symbol函数生成。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。let s = Symbol();typeof s// "s

2018-03-06 14:56:05 236

原创 ECMAScript6学习笔记-对象扩展

1.ES6 允许直接写入变量和函数,作为对象的属性和方法。const foo = 'bar';const baz = {foo};baz // {foo: "bar"}// 等同于const baz = {foo: foo};ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值。function f(x, y) { return {x, y};}// 等同于fun

2018-03-05 16:44:55 274

原创 ECMAScript6学习笔记-数组扩展

1.扩展运算符 扩展运算符是三个点,将一个数组转为用逗号分割的参数序列。console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5[...document.querySelectorAll('div')]// [<div>, <div>, <div>]主要用于函数调用function add(x,

2018-03-05 11:41:49 1520

原创 ECMAScript6学习笔记-函数扩展

1.函数参数默认值function func(a,b="world"){ console.log(a+" "+b);}func("hello");//hello worldfunc("hello","china");//hello chinafunc();//undefined world2.参数默认值是惰性求职,每次调用都会重新计算表达式的值。let x = 99;functio

2018-03-02 17:32:49 277

原创 ECMAScript6学习笔记-字符串扩展

1.字符的Unicode表示法 JavaScript允许采用\uxxxx表示一个字符,xxxx是这个字符的Unicode码。"\u0061"//"a"这种表示法只能表示\u0000~\uFFFF之间的字符, 超出这个范围的字符必须用双字节的形式表示。"\uD842\uDFB7"// "��""\u20BB7"// " 7"上面代码中,如果直接在\u后面加超过0xFFFF的数值(20BB7),J

2018-03-01 16:10:56 409

原创 ECMAScript6学习笔记-解构赋值

一、数组解析赋值 1.ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。let [a,b,c]=[1,2,3];a;//1b;//2c;//32.模式匹配,只要等式两边的模式相同,左边的变量就会被赋予对应的值。let [a,[b],[[c]]]=[1,[2],[[3]]];a;//1b;//2c;//3let [,a,,b,c]=[1,2,...

2018-02-24 17:06:27 237

原创 ECMAScript6学习笔记-let,const命令

1.let命令,用于声明变量,用法类似与var命令,但是所声明的变量,只在let命令所在的代码块有效。{ var a=1;//var命令声明赋值一个变量 let b=2;//let命令声明赋值一个变量}a //1b //ReferenceError:b is not defined2.let命令不存在变量提升,即变量必须在声明之后才可以使用,否则会报错。var命令在声明之前也可

2018-02-24 11:48:15 252

原创 Dagger2使用详解

Dagger2是目前流行的一个依赖注入框架。使用它可以降低我们程序中类与类之间的耦合。类实例的创建,初始化,销毁及相互依赖都交由dagger2来管理。我们只需要专注于类本身的业务逻辑,提高我们编写程序的便利性。传统MVP案例MVP是我们项目中经常使用的一个应用框架。Model层负责具体的业务逻辑,View层负责界面的展示,Presenter层负责协调Model层与View层,通过调用Model层的业

2018-01-02 22:24:25 329

原创 Kotlin学习笔记(十一)集合,区间

集合Kotlin中,区别可变集合和不可变集合(lists,sets,maps等),不可变集合只提供了有关读的api,没有编辑的api,如果我们要修改集合,只能通过可变集合去修改。这样的设计有助于我们降低bug和设计良好的api。fun foo(){ var readOnlyList:List<Int>//声明一个只读list var mutableList= mutableListO

2017-06-16 12:04:52 633

原创 Kotlin学习笔记(十)解构声明

Kotlin中,我们可以将一个对象解构成多个变量:data class Person(val name:String="Kotlin",val sex:String="男",val age:Int=1)fun foo(){ var (name,sex,age)=Person() print("name=$name&sex=$sex&age=$age")}这就是解构声明。解构声明可以

2017-06-15 16:08:53 1388

原创 Kotlin学习笔记(九)函数,Lambda表达式

函数Kotlin中,使用fun关键字定义一个函数,函数参数使用 Pascal 表示法定义,即 name: type。参数用逗号隔开。每个参数必须有显式类型。fun foo(arg1:String,arg2:Boolean,arg3:Int):Int{ //do somethong return 1}当函数只有单个表达式时,可以省略花括号,直接写在=之后,如果返回值类型可由编译器推断

2017-06-15 10:43:42 8040

原创 Kotlin学习笔记(八)对象

提示:本文为作者阅读Kotlin中文站学习笔记,建议读者移步Kotlin中文站完整学习。有时候我们需要对某个类做轻微改动的类的对象,而不用为之显式声明新的子类。Java中用匿名内部类来处理这种情况,Kotlin中则用对象表达式和对象声明来实现。对象表达式要创建一个继承自某个类的匿名类的对象,我们可以这么写: fun addListener(){ var edt:EditText=

2017-06-14 14:10:22 556

原创 Kotlin学习笔记(七)数据类,密封类,嵌套类,内部类,枚举类

提示:本文为作者阅读Kotlin中文站学习笔记,建议读者移步Kotlin中文站学习完整教程。数据类开发中,我们经常需要创建一些只保存数据的类。Kotlin中,我们用data关键字定义一个数据类,编译器会自动从主构造函数中声明的所有属性生成以下成员:equals()/hashCode()对toString()componentN() 按声明顺序对应于所有属性如果这些函数中的任何一个在类体中显式

2017-06-14 10:25:17 808

原创 Kotlin学习笔记(六)扩展

提示:本文为作者阅读Kotlin中文站学习笔记,建议读者移步Kotlin中文站完整学习。Kotlin中,我们可以扩展一个类的函数和属性,而无需继承这个类或使用像装饰者这样的设计模式。声明一个扩展函数,我们需要一个接受者类型也就是被扩展的类型作为前缀,例如下面代码给Context扩展一个toast函数fun Context.toast(message: String, duration: Int =

2017-06-13 16:24:01 400

原创 Kotlin学习笔记(五)接口,可见性修饰符

提示:本文为作者阅读Kotlin中文站学习笔记,建议读者移步Kotlin中文站完整学习。接口Kotlin中,使用关键字interface定义一个接口。与Java8类似,接口中即可以包含抽象方法的声明,也可以包含实现。与抽象类不同的时,接口不保存属性的状态,属性要么声明为抽象,要么提供访问器实现。并且在接口中声明的属性没有幕后字段,所以在访问器中不能引用field字段。interface Base {

2017-06-13 11:46:53 1331

原创 Kotlin学习笔记(四)属性

属性Kotlin的类可以有属性。我们可以使用var关键字声明一个可变的属性,或val关键字声明一个只读的属性。class R{ var a:String=""//var 声明一个可变的属性 val b:String=""//val 声明一个只读的属性}声明一个属性的完整语法是:var <propertyName>[: <PropertyType>] [= <property_ini

2017-06-12 17:56:05 426

原创 Kotlin学习笔记(三)类和继承

类Kotlin中,使用class关键字生命一个类。类声明由类名,类头(指定其类型参数,主构造函数等)和大括号括起来的类体组成。class A public constructor(arg1:String){}Kotlin中,一个类可以有一个主构造函数或和一个或多个次构造函数。主构造函数是类头的一部分,跟在类名(和可选的类型参数)后面,如果主构造函数没有任何注解或可见性修饰符,可以省略construc

2017-06-12 16:25:34 484 1

原创 Kotlin学习笔记(二)循环,跳转

包源文件通常以包声明开头,源文件所有内容都包含在声明的包内,如果没有声明包,文件内容属于无声明的默认包。当我们创建一个Kotlin文件时,Android studio会帮我们在文件顶部自动声明包。package com.gyg.kolinKotlin会默认导入一些包到文件中,除了默认导入的包,开发者也需要导入自己的包,可以单独导入包下的某一个内容,也可以导入包下的所有内容。当命名冲突时,可以通过as

2017-06-12 14:07:00 602

原创 Kotlin学习笔记(一) 基本数据类型

提示:本文为作者阅读Kotlint中文站笔记,建议读者移步Kotlint中文站完整学习。在Kotlin中,任何变量都是对象,从这个意思上讲我们可以在任何一个变量上调用成员函数和属性。数字Kotlin提供了以下的内置类型表示数字:TypeBit WidthDouble64Float32Long64Int32Short16Byte8注意:Kotlin中字符不是数字。我们可以

2017-06-09 17:10:07 1664 1

原创 Android NFC开发-实践篇

在Android NFC开发-理论篇中,我们了解了在Android中开发NFC的一些理论知识,这篇我们继续应用我们上一篇学到的知识,实现对NDEF格式标签和MifareClassic格式标签的读写操作。基本操作配置AndroidMenifest.xml:<!--API level 9只包含有限的tag支持,包括: .通过ACTION_TAG_DISCOVERED来发布Tag信息 .只

2017-06-07 14:29:36 8932 2

原创 Android NFC开发-理论篇

近距离无线通信技术(Near Field Communication,NFC),是由飞利浦公司和索尼公司共同开发的一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC和智能设备间进行近距离无线通信。NFC提供了一种简单的、非触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。NFC整合了非接触式读卡器、非接触式智能卡和点对点(Peer-to—Peer)通信功能,为消费者开创

2017-06-06 16:39:31 6363 1

原创 备忘录模式(Cemento Pattern)

一、定义 在不破坏封装性的前提下, 捕获一个对象的内部状态, 并在该对象之外保存这个状态。 这样以后就可将该对象恢复到原先保存的状态。 二、示例 相信我们在工作中都用过word编辑器吧,word中有一项功能,当我们的编辑出错时,Ctrl+Z可以使我们回退到以前的文本,这样我们就可以在以前文本的基础上继续编辑,而不需要从头开始编辑。现在我们应用备忘录模式实现一下这个功能。 类图如下: 首

2017-05-24 18:24:57 359

原创 门面模式(Facade Pattern)

在以前信息不是很发达的时代,人们最快捷的信息往来方式就是通过书信,一般我们写一封书信,一般要经过一下几个步骤:在信纸上写上新的内容在信封上写上收件人的姓名,地址信息将信装进信封,贴上邮票把信送给邮局投递用类图表示就如下所示: 首先定义一个接口,规范写信的方法:package facade;/** * 写信接口 * @author 77473 * */public interf

2017-05-22 22:57:37 451

原创 React Native Animated动画

在React Native中,我们可以通过两种方式实现一个动画效果:LayoutAnimationAnimated关于LayoutAnimation,我之前写过一篇学习博客(React Native LayoutAnimation动画)。此主要用于在页面布局改变的时候添加一些动画效果,但如果想要实现一些更精细,复杂的动画,LayoutAnimation就会比较困难,所以React Native

2017-05-22 12:58:49 2289 1

原创 React Native LayoutAnimation动画

在React Native中,LayoutAnimation用于在页面布局发生改变时,添加动画效果。 LayoutAnimation使用简单,要实现动画效果只需要在setState()前添加LayoutAnimation动画方法://添加一张图片 _addImg() { //LayoutAnimation.easeInEaseOut();//在setState()前,添加L

2017-05-18 17:00:19 3110

原创 组合模式(Composite Pattern)

在项目开发中,有时候我们会遇到将一个对象组合成一个树形结构,来表示“整体-部分”的层次关系,但用户在操作的时候,不需要区分组合对象(树枝节点,包含子节点)或单个对象(叶子节点,不包含子节点),保持一致的操作体验。这时候我们就可以利用组合模式来实现我们的应用。 定义:将对象组合成树形结构以表示“部分-整体”的层次结构, 使得用户对单个对象和组合对象的使用具有一致性。 一、透明实现 1、在组合模式

2017-05-16 22:49:11 369

原创 React Native Realm数据库存储

前言: Realm 是一个专门针对移动平台设计的数据库,具有:1、简单易用;2、跨平台;3、高性能;4、提供高级功能等优点。Realm在设计之初为了彻底解决性能问题,核心数据引擎用c++打造,并不是建立在SQLite上的ORM,因此性能就比普通的ORM快很多,甚至比单独无封装的SQLite还要快。 下面我们通过一个本地数据库存储的实例来一步步学习Realm的使用规则。 一、环境 1、Real

2017-05-15 16:27:17 2688

原创 React Native Webview使用

RN为我们提供了WebView组件来加载一个网页。/** * Created by gyg on 2017/5/4. */'use strict'import React, {Component} from 'react';import { StyleSheet, View, Text, WebView, BackAndroid,} from 'r

2017-05-12 18:16:01 4426

原创 React Native 弹出框

RN为我们提供了一个跨平台通用的Modal组件,我们可以用它来实现一个弹出框的视图。 先上效果图: 代码如下:/** * Created by gyg on 2017/5/11. * 自定义弹出框组件 */'use strict'import React, {Component} from 'react';import { StyleSheet, View,

2017-05-12 15:25:43 5586

原创 React Native Get,Post请求

React Native为我们提供了fetch框架进行网络请求。Fetch请求static async request(url, method, body, params) { DEBUG && console.log("#REQUEST NetUtil# [" + method + "] url=" + url + ",body=" + body); var tim

2017-05-05 15:01:19 2879

原创 react-native 滑动标题栏

在我们的应用中经常有上面显示一行标题栏,下面分别每个标题对应一个页面,标题栏与页面联动的情形,在Android中我们可以简单用Toolbar和ViewPager来实现,react-native中至今还没有提供原生的组件供我们来应用,但我们可以通过依赖github大神skv-headless的react-native-scrollable-tab-view(https://github.com/skv

2017-05-05 11:18:39 3925

原创 react-native listview使用

listview是我们应用中的一个组件,用它我们可以展示列表数据。react-native为我们提供了ListView组件,方便我们实现列表数据展示。1.引入ListView组件:import { StyleSheet, ListView, View, Text, Image}from 'react-native';2.构造函数中初始化ListView的数据

2017-05-03 16:53:21 2086

原创 react-native tab标签

现在,我们的app中一般都要有底部导航栏的存在,但react-native并没有给我们提供原生的实现,github上有大神实现了相关模块(https://github.com/expo/react-native-tab-navigator),使用起来非常方便。 首先,我们要切换到我们的工程目录下面: 运行 npm install react-native-tab-navigator –sav

2017-05-03 16:20:20 2060

原创 React Native Android(二)Navigator知识点

知识点: Navigator 是React-Native原生的,跨平台的导航器组件。Navigator会维护一个路由栈,并提供一系列api帮助开发者完成程序内不同页面之间的跳转及参数传递。 Route 是标识导航器渲染标识每一个页面的对象。getCurrentRoutes() 返回当前的路由栈列表信息。push(route) 将route压入路由栈,跳转到route指定的页面。pop()

2017-05-03 15:16:38 720

AIDL示例代码

AIDL示例代码

2017-02-20

Mvp获取网络列表并显示

MVP 获取网络列表并显示。

2016-08-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除