- 浏览: 502134 次
- 性别:
- 来自: 北京
最新评论
-
caipeiming:
可以使用array的indexOf方法,参考JavaScrip ...
js-判断元素是否存在于array数组中 -
zhangyaochun:
这个不错,新属性哦~
html5新特性-- <a>标签新属性download -
housheng33:
空间和时间星型-雪花-ER一范式-二范式-三范式
浅谈多维模型 -
housheng33:
对不起,我已经24岁了。我已经没有能力和你谈那一场天真而不计得 ...
对不起,我已经24岁了。我已经没有能力和你谈那一场天真而不计得失的恋爱了。 -
zhangyaochun:
这篇整理的不错
js-清空array数组
文章列表
js继承---原型链
- 博客分类:
- JavaScript
原型链方式
默认继承机制,将需要重用的属性和方法迁移至原型对象中,而将不可重用的部分设置为对象的自身属性,但这种继承方式需要新建一个实例作为原型对象,效率上会低一些。
function Shape() {
this.name = '形状';
}
Shape.prototype.perimeter = function() { };
function Square() {
this.length = 1;
}
// Javascript中没有抽象类的概念,所以Shape是可以实例化的
// 子对象构造函数的prototype属性指向父对象的一个实例
...
一些概念:
本地仓库由 git 维护的三棵“树”组成:
第一个是工作目录,它持有实际文件;
第二个是 暂存区(Index),它像个缓存区域,临时保存改动;
最后是 HEAD,它指向最后一次提交的结果。
分支:用来将特性开发绝缘开来的。master 是默认的分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
里程碑即tag:其管理和分支管理非常类似。里程碑和分支一样也是以引用的形式存在的,保存在.git/refs/tags/路径下。引用可能指向一个提交,但也可能是其他类型(Tag对象)
一些命令:
检出仓库:
创建一个本地仓库的克隆版本:
git clone / ...
Grunt:自动任务运行器
- 博客分类:
- 性能优化
干什么用?
基于Node.js的一款能够按照预先设定的顺序自动运行一系列任务的工具。简化工作流程,减轻重复性工作带来的负担。
如何使用?
1.安装
sudo npm install grunt-cli -g
2.命令脚本文件Gruntfile.js--用于配置或定义任务、加载 Grunt 插件
1)grunt.initConfig:配置Grunt各种模块的参数
2)grunt.loadNpmTasks:加载模块文件
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-co ...
js脚本阻塞
- 博客分类:
- JavaScript
本文翻译整理自:http://yuiblog.com/blog/2008/07/22/non-blocking-scripts/
所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等。直到JS下载、解析、执行完毕后才开始继续并行下载其他资源并呈现内容。为了提高用户体验,新一代浏览器都支持并行下载JS,但是JS下载仍然会阻塞其它资源的下载(例如.图片,css文件等)
外部js脚本加载的时候常常会遇到脚本阻塞的问题,有什么解决方法呢?
1.there is an easy way to work around this problem: use dynami ...
Devices with -webkit-min-device-pixel-ratio: 1.0
All non-Retina Macs
Apple iPhone (1st generation)
Apple iPhone 3G
Apple iPhone 3GS
Apple iPad (1st generation)
Apple iPad 2
Apple iPad mini (1st generation)
Acer Iconia A500
Samsung Galaxy Tab 10.1
Samsung Galaxy S
Devices ...
RegExp.prototype.exec() 方法:用于检索字符串中的正则表达式的匹配。
语法:RegExpObject.exec(string)
找到了匹配的文本,返回一个结果数组,并且更新正则表达式对象的属性。
否则,返回 null。
var myRe = /ab*/g;
var str = 'abbcdefabh';
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = 'Found ' + myArray[0] + '. ';
//查找将从正则表达 ...
GIT和SVN之间的五个基本区别
- 博客分类:
- 性能优化
1.GIT是分布式的,SVN不是:
GIT:每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库,不能连接网络的时候,仍然能够提交文件,查看历史版本记录,创建项目分支等。只需要创建一 ...
NaN
- 博客分类:
- JavaScript
NaN 是一个全局对象的属性。
表示数据类型不是数字,是一个特殊的number
NaN === NaN; // false,与任何值都不相等,包括自己
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
typeof(NaN)); //number
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/NaN
XSS跨站脚本攻击
- 博客分类:
- JavaScript
XSS是什么?
(Cross Site Scripting)跨站脚本攻击:恶意攻击者往web页面插入恶意html代码,脚本执行来达到目的。
解决方法:使用encodeURIComponent()
---用于处理一个片段,对所有特殊字符进行编码
---不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
encodeURIComponent("<script>alert(1)</script>");
//防止脚本执行,被转义为:"%3Cscript%3Ealert(1)%3C%2Fs ...
css+div页面布局之3
- 博客分类:
- css
页面结构如下:
<div id="container">
<div id="wrapper"><!-- 主体文字 -->
<div id="content"><p><strong>1) Content here.</strong></p></div>
</div>
<div id="navigation"><p><strong> ...
使用user-select禁止网页选择文字
- 博客分类:
- css
http://www.wufangbo.com/css-jin-zhi-xuan-ze/
user-select有两个值:
none:用户不能选择文本
text:用户可以选择文本
注意:user-select不是一个W3C的CSS标准属性,浏览器支持的不完整,需要对每种浏览器进行调整。
body{
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; ...
jquery选择器匹配方式
- 博客分类:
- jquery
一直了解jQuery的优势之一是支持强大的选择器,只知道支持css1-3的几乎所有选择器。没有深入探究过具体选择器内部匹配是怎么实现的,查阅资料才了解这点,整理去下:
1.3版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升,支持了事件委托。
那么Sizzle是什么呢?
我们知道一般选择器的匹配模式,都是一个顺序的思维方式,需要递进式匹配。
Sizzle采取了相反Right To Left的实现方式。
比如页面现在有一个div嵌套一个span标签,$(‘div span’) 这样的匹配时:
1)一般选择器执 ...
HTTP状态码
- 博客分类:
- JavaScript
面试遇到这个问题了,平时最常见就是404了,记录下吧:
http状态码第一位规定了状态码的类型,
1** 信息类,收到web浏览器请求,正在处理
2** 成功,yoghurt请求正被正确接收理解和处理
3** 重定向,表示请求没成功,需要采取进一步措施
4** 客户端提交请求错误
5** 服务器错误,不能完成对请求的处理
具体如下:
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created ...
js-event绑定事件
- 博客分类:
- JavaScript
IE target.addEventListener(type,listener,useCapture)
type:字符串,事件名称:click、mouseover..
useCapture:一般默认false
高级浏览器 target.attachEvent(type,listener)
type:字符串,事件名称:onclick、onmouseover..
创建一个统一的事件处理
EventUtil.addEventHandler = function(oTarget,sEventType,fnHandler){
if(oTarge ...
Bower: 客户端库管理工具
- 博客分类:
- 性能优化
Bower是什么?
基于node.js的解决同一网页加载多个js库的问题并且针对浏览器端的一个库管理工具。
如何使用?
1.安装
npm install -g bower
//出现报错:Please try running this command again as root/Administrator记得使用
sudo npm install -g bower
2.bower.json文件配置:保存项目的库信息
name:项目名称
dependencies:json格式的依赖的库
private :将该属性设置为true意味着你想要这个包保持私有并且并不想在将来将它添加到r ...