javascript 安全模式实例化类

1
2
3
4
5
6
7
8
9
10
11
var Book = function(title,price,type){
if(this instanceof Book){
this.title = title;
this.price = price;
this.type = type;
}else{
return new Book(title,price,type);
}
}

var book = Book('javascript','2014','js');

微信小程序scrollTo

需求: 在“subat视频”微信小程序首页实现播放完一个视频后继续播放下一个视频并自动scroll到当前播放的视频。
实现思路: 播放下一个视频当然不是问题,获取当前视频index并找出下一个视频,播放就可以了。
问题:问题就是上面提到的需求。
解决方案: 在视频列表给每个视频设个id,然后通过官方提供的SelectorQuery wx.createSelectorQuery()wx.pageScrollTo(Object object)来实现。
具体实现函数如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
scrollToVideo(videoId){
if(videoId){
const query = wx.createSelectorQuery();
query.select('#video-'+videoId).boundingClientRect();
query.selectViewport().scrollOffset();
console.log(query,'query');
query.exec((res)=> {
console.log(res,'res');
// res[0].top // #the-id节点的上边界坐标
// res[1].scrollTop // 显示区域的竖直滚动位置
wx.pageScrollTo({
scrollTop: res[1].scrollTop+res[0].height,
duration: 300
})
})
}
}

Atom add snippets for weapp view tag

这里应该得用'.source.wxml',但是我这样写一直不起作用,只能用*来设置全局了。

1
2
3
4
'*':
'Snippet Name':
'prefix': 'view'
'body': '<view class="${1:}"></view>'

git-pull-multiple-project-with-shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash

for dir in $(ls)
do
if [ -d $dir ]
then
# echo $dir
cd $dir && echo $dir
if [ -d ".git" ] && $dir != 'frontend'
then
git pull origin master
else
echo "文件夹还没有git(或者忽略git pull),请注意把代码保存的远程仓库哦!"
fi
cd ..
fi
echo '----------------------------------------'
done

fibonacci 斐波那契数列

最近复习一些算法和数据结构,看完二叉树后再看递归。发现斐波那契数列跟二叉树是一回事(二叉树就是用递归实现的)。而且也进一步了解了函数的执行过程(其实调试就知道)。

测试代码如下

1
2
3
4
5
6
7
8
9
10
11
12
let i = 0
function fibonacci(num,name){
console.log(i,name,num);
i++;
if(num === 1 || num ===2 ){
return 1;
}
return fibonacci(num-1,'left') + fibonacci(num-2,'right');
}

let sum = fibonacci(6,'root');
console.log(sum,'sum');

控制台输出结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0 "root" 6
1 "left" 5
2 "left" 4
3 "left" 3
4 "left" 2
5 "right" 1
6 "right" 2
7 "right" 3
8 "left" 2
9 "right" 1
10 "right" 4
11 "left" 3
12 "left" 2
13 "right" 1
14 "right" 2
8 "sum"

二叉树图片(只是结构一样)

继续写博客

起源

我都不记得这是第几个博客,上大学后有了自己的电脑,可以为所欲为了。虽然以前也很好奇电脑,但是那时候还没有碰过编程。买过两本书,一本是c语言的,另一本是JavaScript(很厚的一本书)。那时候还不知道怎么入门,偶尔看看书,但是没敲过代码。大学选的是计算机科学与技术专业,这下当然得敲代码了。还有跟朋友一起开始折腾网页了。大一就买了个域名,用WordPress建站,开始写博客了。

WordPress

WordPress是不得不提的一个重要话题,想起来都很激动人。为了把主题弄成自己想要的状态,先学习了HTML和Css改动原有的主题。后来发现这还远远不够,看主题代码学会了怎么写主题了。那时候博客上主要记录大学生活和有关WordPress的一些技术文章(都是一些小伎俩)。
那时候写博客的人也比较多,社区也很活跃。学好了怎样写主题后就自己写几个主题分享,都很受欢迎。后来就客户找上门来了。完成了一些个人博客主题,完成了几个小企业网站,就有了小小收入,很开心!

Typecho

Typecho另一个博客驱动程序,仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。这个比起庞大的WordPress很轻量,自己能看懂程序源码,也可以动手写一些插件。但是觉得很好用,一下子就把语言包翻译成维吾尔文了。
有了收入,就买了DigitalOcean的服务器,开始折腾Linux了。就因为用服务器好几次出问题,重新装系统,丢失了几篇文章。慢慢学会怎样搭建环境,备份数据库和文件等。

现在还记得我总结过2016年,以前的博客文章在netlify上留了一份(因为GitHub上clone的项目太多,最近批量删除,原带文件没了)。
记下来的东西都是珍贵的,这样我还知道当时在干啥。2017年好像没写博客了,现在都不知道时间去哪儿了。

对博客的看法

工作后学习了很多新知识,刚开始还有一些记录,但慢慢觉得那些内容网上有很多,而且都很详细,我就产生为什么还要写博客的疑问。就这样不写博客了。有时候看到一些技术大牛的博客产生一些火花,但心动不如行动,没法开始。
原来博客是我自己的东西,那些记录下来的东西不是给别人看,而是给自己的。在项目中遇到的问题和解决办法记录下来,自己的一下新老想法记录下来。那都是都是我们走过的痕迹呀!如果不留点痕迹,时间过了就过了。

新博客起航

既然改正好态度,那就踏踏实实的写下去。不要太多关注驱动程序和界面,友好、能用就差不多。因为很多外国技术大牛的博客就光是文字加几行代码,把核心内容记录下来。所以我也用了hexo,放在GitHub上。文章都是markdown格式保存,没有数据库,省的麻烦。