原理:基于自定义的标签;
实现:目前只有文本框和密码域的验证
more
js
/*************************自定义的模式匹配函数
*********rule:匹配规则
*********vaule:匹配对象(表单元素的值)
*********warning:警告内容
*********note:显示警告的DIV层
************************************************/
function myReg(rule, value, warning, note) {
var reg = new RegExp(rule);
var noteDiv = documen
继续阅读 »
Airbnb 的 ES5 规范写的非常好,现在添加了 ES6 的部分。
另外阮一峰老师的 ECMAScript 6 入门值得参考。
more
类型
原始类型:值传递
string
number
boolean
null
undefined
```js
const foo = 1;
let bar = foo;
bar = 9;
console.log(foo, bar); // => 1, 9
```
复杂类型:引用传递
object
array
function
```js
const foo = [1, 2];
const bar = foo;
bar[0] = 9;
console.log
继续阅读 »
AngularJS的一个强大之处就在于依赖注入。在调用bootstrap的时候,会调用createInjector来创建一个注射器进行注入。该方法的代码简化如下:
```javascript
function createInjector(modulesToLoad, strictDi) {
strictDi = (strictDi === true);
var INSTANTIATING = {},
providerSuffix = 'Provider',
path = [],
loadedModules = new HashMap([], true),
继续阅读 »
介绍
一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来,一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。)
来认识一下我们的特工英雄
在接下来的几周里会逐渐向你介绍我们的超级英雄...
红色大鸟(大兄弟)
红色大鸟兄弟依靠 IIFE 的力量进行攻击,IIFE 是一切私有化的基础。封装你的代码,保护代码免受其他代码的干扰。
译注:IIFE (Immediately-invoked Function Expression) 立即调用的函数表达式
蓝色小鸟(分身
继续阅读 »
通过绑定规则来确定this的绑定对象。
默认绑定
默认绑定规则看作是无法应用其他规则时的规则,
独立函数调用是最常用的函数调用方式。比如:
```
function foo() {
console.log( this.a );
}
var a = 2;
foo(); // 2
```
此时foo在调用的时候是默认绑定,因为没有指定上下文,所以默认上下文
是window,而var a = 2;这句意思是给window添加了一个a属性,并赋值为2,
所以会打印2。
如果使用严格模式(strict mode),那么全局对象将无法使用默认绑定,因为
this会绑定到undefined.
隐式绑定
另一条需要考虑的规则是调
继续阅读 »
xmake里面的lua脚本加载插件,可以让你方便调试和编写一些自定义的lua脚本,这个时候xmake就是一个纯lua的加载引擎。。
例如,我想写个简单的hello xmake!的lua脚本,可以自己建个 hello.lua 文件,编写如下脚本:
lua
function main()
print("hello xmake!")
end
main是入口函数,就跟平常写c类似,然后加载执行下这个lua脚本就行了:
bash
xmake lua /home/xxx/hello.lua
or xmake l /tmp/hello.lua
下面在来个稍微高级点的,我要传递
继续阅读 »
今天一不小心在 /opt 文件夹下执行了 chmod -R 777 *
然后。。/opt下的所有软件都无法执行了
Google得知是权限的问题,文件夹默认权限755,文件默认权限664
于是编写以下脚本
#/bin/bash
#Auth: veryyoung
#Desc: chmod 目录权限为755,默认文件权限为644。
function my_chmod(){
for file2 in `ls -a $1`
do
if [ x"$file2" != x"." -a x"$file2" != x".." ];then
if [ -d "$1/$
继续阅读 »
最近在网上看到有部分人在面试(比如1月面试记)的时候被问到了LazyMan,而且网友也有不同的实现方式。这里我用两种方式实现了lazyman,以供参考,如有更好的方法,欢迎留言。
队列
这种方式,每次都是往queue里添加执行函数,next函数用来决定什么时候调用下一个函数。
``js
var LazyMan = function LazyMan (name) {
if (!(this instanceof LazyMan)) return new LazyMan(name);
this.queue = [() => {
console.log(hello ${name}`);
继续阅读 »
Introduction
Quickly new Activity/Service/BroadcastReceiver/ContentProvider in Android Project with a wizard and configurate in AndroidManifest.xml.
Main function list:
- New Activity/Service/BroadcastReceiver.
- Customize action and category for intent-filter.
- New ContentProvider.
- Customize authorities
继续阅读 »
content
{:toc}
本文将介绍如何使用 JavaScript 创建文件,并自动/手动将文件下载。这在导出原始数据时会比较方便。
先上代码
js
/**
* 创建并下载文件
* @param {String} fileName 文件名
* @param {String} content 文件内容
*/
function createAndDownloadFile(fileName, content) {
var aTag = document.createElement('a');
var blob = new Blob([content]);
aTag.download = fil
继续阅读 »