Hexo


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

diary

发表于 2018-01-03

前几天一直在忙面试,拖更好久,赶车淋雨还有些咳嗽,明天再更博客了。希望好运,good luck

app.local和res.local的选择

发表于 2017-12-25

最近几天有些不舒服,都没怎么开工,今天来补篇博客~

app.locals

app.locals是一个JS 对象,可以被认为是全局变量,也就是global。一旦进行了设置,app.locals属性在应用程序的整个生命周期一直存在。在模板引擎中,我们用app.locals传递希望放在每个单页上的东西。

res.locals属性只在request的生命周期内才有效,res只响应特定的response,例如:

1
2
3
app.get('/abc',function(req, res){
res.locals.name = req.name;
});

阅读全文 »

JS定时器之杂谈

发表于 2017-12-23

从一个经典的问题说起

1
2
3
4
5
6
7
function myTimeoutFunction()
{
doStuff();
setTimeout(myTimeoutFunction, 1000);
}

myTimeoutFunction();

1
2
3
4
5
6
7
function myTimeoutFunction()
{
doStuff();
}

myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
阅读全文 »

typeof(array)===object和如何判断array & object 的问题

发表于 2017-12-21

上篇留了个遗留问题 typeof([]) // object ,如果typeof将array返回的是object那我们要怎么判断,传进来的变量array和object呢?
下面来走进…JS。

type([])

在JavaScript的数据结构中有提到
JS有7种数据类型

The latest ECMAScript standard defines seven data types:
Six data types that are primitives(原始类型):
Boolean
Null
Undefined
Number
String
Symbol (new in ECMAScript 6)
and Object(对象类型)

阅读全文 »

JS truthy 与 if 判断

发表于 2017-12-21

以前写代码,想判断是否是空数组的时候,常常写if([]),结果程序怎么都调不通。现在就来说说这个新手常常会感到困惑的问题。
在浏览器中运行如下代码:

1
2
3
4
if([]){
console.log('abc')
// abc
}

我们会发现if([])是作为true,这个问题要说深了很复杂,我抛砖引玉谈谈自己的看法。
下面我们来看这样一行代码

1
typeof([]) // object(惊不惊喜意不意外,不是array是object)----这里为啥是object之后再说,先用这个结论

阅读全文 »

JS字符串操作

发表于 2017-12-20

今天忙着写简历,好累啊,希望可以拿到不错的offer!废话不多说还是更完这篇string methods, 绝不拖更!

横向对比一下

String.slice( begin [, end ] )
str.substring(indexStart[, indexEnd])
String.substr( start [, length ] )

对于这三个,第二个参数都是可选的。如果不选就从当前的index一直截取到末尾。

阅读全文 »

JS数组操作splice & slice

发表于 2017-12-19

javascript中slice(),splice(),split(),substring(),substr() 总是容易混淆…今天记录一下我的体会,也方便各位的使用。
这篇专注于数组操作,下篇再说字符串(才不是因为我太懒2333

Array.splice() vs Array.slice()

  • splice 返回一个数组中被删除的项目,slice返回被选择的项目,并作为一个新数组返回。
  • splice改变原有array, slice不改变
  • splice可以带有多个参数(作为插入值使用)
阅读全文 »

sessionStorage ,localStorage和Cookie之我见

发表于 2017-12-19

从开博客开始…突然觉得自己高产了起来(一个水货的自我修养哈哈哈哈。作为一个选择困难症(逃,希望这篇文章可以帮助大家了解sessionStorage ,localStorage和Cookie,以方便各位的使用。废话不多说,开始

localStorage & sessionStorage

sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。(cookie发送)
这两兄弟都是H5的新特性,都是对Storage的拓展,区别不是特别大。主要(基本)体现在持久性上。

  • sessionStorage仅仅适用于同一个窗口,如果 窗口关闭 或者 浏览器关闭 sessionStorage就会被删除。
    但是当页面刷新(reloads)和保存(restores)依然存在。来源
    画个重点,就是页面刷新可以,关闭就没了
阅读全文 »

jsonwebtoken

发表于 2017-12-19

前言

由于我也只是JWT新手,今天在写一个小项目的时候用到了,就自己整理了一下。如下内容均为自己整理,资料来自官网和标准和少数博客。受限于自身技术水平,和翻译水平,难免有些错误,我已经尽可能避免,还是希望不要误导了别人。

JWT是一种新的认证机制,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。

传统session面临的问题

  • session 每次进行验证,服务器都会做出记录,久而久之服务器压力很大
  • 由于记录多保存在服务器上,这意味着用户下次请求还必须要请求在这台服务器上,这也意味着限制了应用的扩展能力。
  • 可能受到CSRF攻击

token

Token验证是无状态的(stateless),并不需要在服务器上储存,所以解决了session可能面对的一些问题

阅读全文 »

Nodejs path.resolve 和 path.join

发表于 2017-12-18

Nodejs的path模块,相比大家都不陌生。引入静态文件 各种path.join(_dirname,”XXX”),而path.join和reslove虽然概念很清晰,前者解析相对路径,后者解析绝对路径,但不上例子还是容易混淆。先看官网描述:

  1. The path.join() method joins all given path segments together using the platform specific separator as a delimiter, then normalizes the resulting path.

上述说明简单来说 path.join()就是连接路径,使用 系统的 分隔符

  1. The path.resolve() method resolves a sequence of paths or path segments into an absolute path.
    The given sequence of paths is processed from right to left, with each subsequent path prepended until an absolute path is constructed. For instance, given the sequence of path segments: /foo, /bar, baz, calling path.resolve(‘/foo’, ‘/bar’, ‘baz’) would return /bar/baz.

而path.resolve() 从右往左,解析成绝对路径,直到绝对路径被构建,其他没有使用的变量就不再使用。

阅读全文 »
12
Daniel Chen

Daniel Chen

15 日志
8 标签
© 2018 Daniel Chen
由 Hexo 强力驱动
主题 - NexT.Muse