变量提升,就是当变量或者函数不管在哪里声明的时候,都会被提升到该作用域的顶部来声明
这里有三个要注意的地方,我们也会在等下的例子里一个一个的说到
JavaScript没有块级作用域
函数声明会覆盖变量声明,但不会覆盖变量赋值
函数声明会提升,函数表达式不会被提升
继续阅读 »
来新西兰已经将近9个月了,心情经历了从新鲜、兴奋、担忧、烦恼、挣扎、坦然这样一个跌宕起伏的过程。移民初期的酸甜苦辣也许我还会继续经历很久,这9个月或许只是漫长移民过渡期的一瞬而已。
生活在一个国家与到一个国家旅游的感受会截然不同。旅游是通过很短的一段时间感受一个国家的精华,跑景点、吃小吃、逛商场,这种体会跟移民初期很像,到处都是新鲜和刺激。然而,对文化、民风的了解却只是蜻蜓点水,不关注也不关心。而生活在一个国家,当你把蓝天白云都看腻了,还是要开始为柴米油盐酱醋茶操心。当你开始关注生活的细节时,你会突然发现,原来国外的月亮并不是每天都会圆。
继续阅读 »
大部分浏览器都会请求当前网页根目录下的 /favicon.ico ,如果处理得不得当,会返回 404,有的甚至会引其它意想不到的错误,比如被拦截器拦截到。
more
各个浏览器请求 /favicon.ico 的策略会不同。
继续阅读 »
观察者模式很好理解,类似于邮件订阅和RSS订阅.
当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。
其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!
对象之间是一种一对多的关系。先来看看关系图:
我解释下这些类的作用:SubjectClient类就是我们的主对象,Observer1和Observer2是依赖于AbstactSubject的对象,当AbstactSubject变化时,Observer1和Observer2必然变化。AbstractSubject类中定义着需要监控的对象列表,可以对其进行修改:增加或删除被监控对
继续阅读 »
在开发过程中很容易遇到去多张表查询数组组合成一个对象的场景。
有两种方案:
一条大sql直接搞定
把大sql拆分成多条小sql,在程序代码里面再组装对象
more
下面分别分析下各自的优缺点:
大sql
优点:一目了然,程序代码简洁,只需要建立一个连接,在数据量小的情况下效率会高很多。
缺点:在数据量大的情况下响应慢,可能一条大SQL就把整个数据库堵死。垂直拆分情况下sql改动会很大。
多条小sql
优点:在数据量大的情况下效率高。对垂直拆分友好。
缺点:程序代码会变得异常啰嗦,难以维护。
各有利弊,要权衡使用场景。
如果在表数据量巨大的情况下或者数据字段比较有可能做垂直切分的情况下建议或者在做报表这种耗时操
继续阅读 »
在实现一个功能,推荐好友注册。
大致意思是注册的时候带上手机号,后端验证下手机号,就ok了
对用户mobile进行页面间的传递,但又想把用户mobile进行加密后传递,这样更安全.
在这个过程中会出现一个问题,就是URL编码问题,如果不对URL进行编码直接加码,那么在解码时,如果字符串存在“+”这种特殊符号,在解码时会出它替换成“ ”,此时在解密就会无法解开,导致错误的结果。
解决方法:
加密后,进行URL编码,然后到另一页面后,进行URL解码,再解密
解决方法2:
先对字符进行URL编码,再加密,这时不会出现+号等字符,然后到另一页面后,再解密,然后再解码即可。
解决!
思路比较简单,就不贴代码了。
继续阅读 »
1. 什么是路由
在Web开发过程中,经常会遇到『路由』的概念。那么,到底什么是路由?简单来说,路由就是URL到函数的映射。
2. router和route的区别
route就是一条路由,它将一个URL路径和一个函数进行映射,例如:
/users -> getAllUsers()
/users/count -> getUsersCount()
这就是两条路由,当访问/users的时候,会执行getAllUsers()函数;当访问/users/count的时候,会执行getUsersCount()函数。
而router可以理解为一个容器,或者说一种机制,它管理了一组route。简单来说,route只
继续阅读 »
以前我是完全不理解类的概念的,我只是把它当成一个Record来看,只不过它里面可以包含函数和过程罢了。但深入VCL学习后我才发现,原来面向对象的世界是这么精彩。
大家都应该见过闹钟吧?随便给一个人一个闹钟,他都会用,不管是电子钟还是机械钟。但如果给一个人一堆零件,有谁能够将他们组装成一个闹钟呢?如果没有专业的知识,恐怕没有人会。为什么呢?为什么人人都会用但很少人懂得其内部结构呢?因为闹钟这一类事物提供一个标准的操作接口,如发条、钟表盘等。不管是液晶屏还是钟表盘,虽然他们形式不同,但他们都是用来显示时间的;同时,闹钟有隐藏了其内部实现的细节,用一层外壳将他们“封装”起来,使外界无法接触其内部,保持了内部的稳定性以及保证了机械运作的安
继续阅读 »
文/Robin
昨天提到的 OKEx 暂停提币事件,这个真是一个影响非常大的事情,后面估计会有不少连锁反应。BitMEX 事情很大但是对国内影响小,但是 OKEx 主场都在国内。朋友圈观察到的现象,各大去中心化钱包、硬件钱包都在推广,各个交易所出来辟谣自己是怎么保障安全的。
提到硬件钱包,随之而来的重要概念就是助记词以及私钥。你保存的硬件钱包私钥,往往都是助记词的形式。昨天在读者群提到保存私钥是个技术活,今天笔者就给大家详细介绍下。
通常购买的硬件钱包都会赠送一张助记词卡片,方便用户将助记词抄写到卡片上进行保管。笔者认为这是一种非常笨拙的保管方式。第一,这张卡片可能会被用户乱扔乱放,等真正要找备份的时候,发现不见了。不见有
继续阅读 »
文/Robin
橙皮书出品的第 85 期的「预言家周报」,@李画 推荐了一款产品,叫做 RoundlyX,去了解了下,挺有意思,分享给大家。
RoundlyX 是一个怎么样的产品呢?简单讲就是在你用借记卡、信用卡消费的时候,RoundlyX 会帮您自动补齐零碎。当积累的零碎达到一定的数额,会在交易所自动帮您买成加密货币。比如说您一笔消费了 $1.8,RoundlyX 会帮您积累 $0.2 凑个整。
至于为什么这个产品叫做 RoundlyX,因为 round 函数是 Excel 中的一个基本函数,作用按指定的位数对数值进行四舍五入,其他编程语言也有类似的函数实现。这个产品取名 RoundlyX,有意思吧。
注册 Round
继续阅读 »