Abigale's Blog


  • Home

  • Categories

  • Archives

  • Tags

  • About

  • Search

typescript的使用场景

Posted on 2018-01-22 | In Front-End |

React

  • 接口定义 使用interface

    1
    2
    3
    4
    interface IMProps {
    num: number,
    str: string
    }
    Read more »

初涉Charles

Posted on 2017-10-16 | In tools |

了解Charles

  • Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。
  • Charles是一个简单的基于HTTP协议传输的调试工具,可以帮助开发人员分析数据和加快调试BUG的效率。
Read more »

原型上小心被共享

Posted on 2017-09-18 | In Front-End |
1
2
3
4
5
6
7
8
9
10
11
12
function Person() {
}
Person.prototype.friends = ["abigale"]
Person.prototype.sayFriends = function() {
console.log(this.friends)
}
let p1 = new Person()
let p2 = new Person()
p1.friends.push('ypc')
p2.sayFriends() // [ 'abigale', 'ypc' ]

我们在 实例 p1 上添加了一个朋友,但从 实例p2 打印出朋友名单却意外得出加在 p1 上的朋友,这是因为 (画重点)

  • 包含引用类型值得原型属性会被所有实例共享
  • JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一改变。

另一种情况,等同于上述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Person() {
this.friends = ['abigale']
}
Person.prototype.sayFriends = function() {
console.log(this.friends)
}
function SubPerson() {
}
SubPerson.prototype = new Person();
let p1 = new SubPerson()
let p2 = new SubPerson()
p1.friends.push('ypc')
p2.sayFriends()

第二种示例,其实就是SubPerson.prototype.friends 它是共享的

如果将上面数组类型改成基本类型就不会出现这种情况了,如Person.prototype.friends = 'abigale'

前端模块化

Posted on 2017-08-21 | In Front-End |

简单说一下前端模块化标准的基础用法~~

CommonJS

CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

Read more »

微信小程序的登录态、身份验证和敏感信息获取

Posted on 2017-08-11 | In Front-End |

微信小程序有一套严格且小复杂的登录方案,为了疏通整个登录流程,我花了好几天的时间画图与测试,终于开花结果喇~

流程如下:
微信小程序登录流程

登录态的作用

  • 检测登录是否过期
  • 通过调用微信登陆接口获取登录凭证,进而获取敏感信息
    Read more »

如何用cookie,session,token去做身份验证

Posted on 2017-07-28 | In Front-End |

解决几个疑惑

  • HTTP 是一个无连接且无状态协议,客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据关联起来呢?
  • 如何对用户进行身份验证?

关键字 token、cookie和session 的理解

token 令牌

是验证身份的一种方式。最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。

Read more »

window.open()被浏览器拦截了

Posted on 2017-07-21 | In Front-End |

在项目中遇到一个问题:JavaScript脚本用 window.open 打开一个窗口被浏览器拦截了。

Read more »

Object.prototype.toString.call() vs typeof

Posted on 2017-07-05 | In Front-End |

可以从下面例子找到答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var toString = Object.prototype.toString;
var strLit = 'example';
var strStr = String('example')​;
var strObj = new String('example');
console.log(typeof strLit); // string
console.log(typeof strStr); // string
console.log(typeof strObj); // object
console.log(strLit instanceof String); // false
console.log(strStr instanceof String); // false
console.log(strObj instanceof String); // true
console.log(toString.call(strLit)); // [object String]
console.log(toString.call(strStr)); // [object String]
console.log(toString.call(strObj)); // [object String]

prototype和__proto__

Posted on 2017-07-05 | In Front-End |

Object/Function/Array/String 原型链

注入一个奇怪的观念:

  • Function.prototype 独立于/先于 Function 存在;
  • Object.prototype 独立于/先于 Object 存在

prototype和__proto__

Read more »

React Native DEMO

Posted on 2017-07-01 | In Front-End |

demo介绍

这是一个聊天APP

GitHub

https://github.com/abigaleypc/react-native-demo.git

安装项目

  • git clone https://github.com/abigaleypc/react-native-demo.git
  • cd demo
  • npm install

    Read more »
123…6
Abigale

Abigale

56 posts
4 categories
32 tags
© 2015 — 2018 Abigale
欢迎你呀 小伙伴 ^_^