摘要:两种方式实现URLFileReader html5 图片上传预览 URL.revokeObjectURL方法Opera不支持,FileReader除IE9及以下不支持,其它浏览器都支持。相关:https://developer.mozilla.org/en-US/docs/DOM/window.URL.createObjectURLhttps://developer.mozilla.org/en-US/docs/DOM/window.URL.revokeObjectURL
阅读全文
摘要:从cmc那看到的,分享给园友。以下是一个怪异的代码,谁放在面试题会很坑爹的,如下a = { m: function() { this.n = function(x) { alert(x+2) } return 1 }, n: function(x) { alert(x+1) }}a.n(a.m())定义一个对象a,有个方法m,n。n很简单参数x加1后打印。重点在m,它执行时会修改方法n,把x加2后打印。当执行a.n(a.m())是结果是什么呢,2还是3?测...
阅读全文
摘要:
.Callbacks是在版本1.7中新加入的。它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。整个.Callbacks 的源码不到 200 行,它是一个工厂函数,使用函数调用方式(非new,它不是一个类)创建对象,它有一个可选参数flags用来设置回调函数的行
阅读全文
摘要:工厂模式也是对象创建模式之一,它通常在类或类的静态方法中去实现。构造对象的一种方式是使用new操作符,但使用new时正是针对实现编程,会造成“耦合”问题,与具体的类关系紧密。导致代码更脆弱,缺乏弹性,在复杂逻辑的项目中建议是面向接口编程。先看简单工厂模式Person(name, age) { var obj = {} obj.name = name obj.age = age return obj}var p1 = Person('jack', 25)var p2 = Person('lily', 22)与构造函数方式写一个类的区别在于没有使用this,而是每次
阅读全文
摘要:方式一: 利用margin<!DOCTYPE html><html> <head> <title>块级元素水平,垂直居中</title> <meta charset="utf-8"> <style> .wrapper { height: 600px; border: 1px solid gray; } .box { width: 100px; height: 100px; background: gold; ...
阅读全文
摘要:正则里“g”表示全局(global)的意思,比如当替换字符串时,如果正则不加g,则只替换一次。str = 'hello, jack, hello, lily';reg = /hello/;res = str.replace(reg, 'hi');console.log(res); // 'hi, jack, hello, lily'第二个hello未被替换,正则reg换成“/hello/g”后则全部替换。“g”还有一个作用是它会记录上次匹配时的位置(lastIndex)。这道题如下var reg = /abc/g;var str = 'a
阅读全文
摘要:我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。启动Apache设置虚拟主机启动Apache打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本接着输入 sudo apachectl start,这样Apache就启动了。打开Safari浏览器地址栏输入 “http://localhost”,可以看到内容为“It works!”的页面。其位于“/Library(资源库)/WebServer/Documents/”下,这就是Apache的默认根目录。Apache的安装目录在:/etc/apach
阅读全文
摘要:子程序在不同的语言里有多种叫法,如过程、函数、方法。一、子程序定义及调用Perl定义使用关键字sub,调用子程序使用&。JS使用function定义,调用使用小括号()。sub sayHi { print 'Hi, everybody!';}&sayHiJSfunction sayHi() { alert('Hi, everybody!')}sayHi()二、返回值两者不显示使用return时都具有默认返回值,Perl是undef,JS是undefined。除此之外,Perl在返回确切的数据时可以省略return。其它情形和JS一样,比如在分支中
阅读全文
摘要:上一篇列出了Perl中定义数组,对象的方式与JS的异同。这里继续补充数组,哈希的相关操作。一、数组可以对数组进行增删,插入。与JS不同的是这些函数都是全局的,JS则是挂在Array.prototype上。1,对数组尾部的操作pop(删除最后的元素)、push(在尾部添加)@goods = qw/pen pencil/;pop(@goods); # @goods 变成 (pen)push(@goods, 'brush'); # @goods 变为 (pen, brush)在Perl中,函数调用时小括号是可选的(视上下文而定),就象前面使用的print。以下是等价的pop @goo
阅读全文
摘要:变量具有 六个属性, Perl将变量分成了标量,数组,哈希。分别以不同的前缀表示。
表示标量变量@表示数组变量, @, %后标示符要求同JS,由字符串,数字,下划线组成,不能以数字开头。一、标量变量
str=′Hello,world!′;length = 10;JS中一般用var声明,不使用var的默认是全局变量。这里Perl的
str,length也是全局变量(Perl可以使用my关键字定义私有变量)。var str = 'Hello, world!';var length = 10;二、数组变量列表是标量的有序集合,
阅读全文
摘要:一、数字和JS一样,用双精度浮点数(double-precision floating-point)表示。不同于JS的如下1,整数直接量中可以插入下划线,看起来比较清楚,如 11222333 等同于 11_222_333if (11222333 == 11_222_333) { print 'tru...
阅读全文
摘要:入门就是能写出一个HelloWorld,前提自然需要先安装语言环境。一、获取安装1,来这里下载Perl,按操作系统选下载版本。Unix/Linux/Mac OSX 自带了Perl环境。一般来说系统自带的版本会低于官网下载的,如我所在公司的Linux上Perl版本为5.8.8。想使用最新的仍然需要下载重新安装。我下载的是5.16.1,系统是Windows 7。2,双击下载文件,下一步下一步就哦了。3,打开命令行,输入perl -v,出现以下输出说明安装成功了二、编写Perl程序1,新建一个文件(任意后缀)first.pl,任意编辑器输入内容如下print "Hello, world!\
阅读全文