文章列表
with语句也是一个功能强大的特性,但是它常常不能被正确的理解。它允许你把一个对象的所有属性放到with语句所指定的作用域中,这样这些属性就可以
想平常的JavaScript变量被使用。理解with语句是如何工作的,在你开发中会带来很大的好处。
JavaScript中with(){}语句是如何工作的
让我们首先通过一个小例子来看看with(){}语句的基本用法:
var use = "other";
var katana = {
isSharp: true,
use: function(){
this.isSharp = !!this.isS ...
网上惊现可以破解验证码的JavaScript脚本——GreaseMonkey!由“Shaun
Friedle”开发的这段脚本可以轻松搞定Megaupload站点的CAPTCHA。如果您不相信的话,可以到
http:///mu_captcha/亲自尝试一下!
现在,Megaupload站点提供的CAPTCHA在上述代码面前已经败下阵来,说实话,这里的验证码设计的不不太好。但更有趣的是:
1.HTML
5中的Canvas应用程序接口getImageData可以用来从验证码图像中取得像素数据。利用Canvas,我们不仅可以将一个图像嵌入一个画布
中, ...
背景:
如果遇到需要给滚动条加样式的情况,在ie浏览器下可以通过样式解决,像火狐和chrome就没辙了,与其用些畸形的样式或者技巧,还不如干脆自己做一个
功能:
1)保持浏览器默认滚动条的行为:当内容超过高度时给出滚动条;支持鼠标滚轴;当鼠标移动到顶部或者底部时,滚动条自动向上或向下移动,移动到顶端或者下端则停止;当添加内容时会重新渲染滚动条,中间的滚动块会根据内容等比例缩小
2)兼容各浏览器
属性:
id : 需要绑定的元素的id
moveSize : 每移动一个单位的像素
callback : 当移动到底部时会触发
方法
moveTo : 移动到给定的top值,到超过滑块高度时,会默认为顶端 ...
最近根据项目中的实际的问题,对原有模板进行了一些调整,修复了在复杂嵌套情况下的BUG
数据会分成3部分存放
this._tmp_cache = {}
缓存,通过$cache{value,key}设置
this.params = {}
所有参数,包括callbackObj + 自定义的参数
this.self_params = {}
自定义的参数
(注:callbackObj属于数据层的对象,但有时也许会想在基础上加上自己的参数,自定义参数与callbackObj同名,则会覆盖callbackObj)
从后台请求回来的数据比如是
var data = {
name : "cc& ...
任务原因,下周要实现一个模块,为了能提高效率,我做了一个通用工具类,其实也是在原基础上改的
以前的版本支持${..}这种样子的替换 比如
<div style="display:${display}">...
替换为
<div style="display:none">...
有些比如时间格式化和判断之类就必须在代码处理好了之后在将值传给模板,但格式化和判断逻辑基本都是一致的,于是我想这些直接通过视图模板就处理好些问题
$date:时间格式化
<span>$date{day,YY MM DD}</span>
...
js中可能你不知道的地方
JavaScript是弱类型,除了在switch语句中。当JavaScript在case比较时,它是非弱类型
var myVar = 5;
if(myVar == '5'){ //返回true,因为JavaScript是弱类型
alert("hi"); //这个alert将执行,因为JavaScript通常不在意数据类型
}
switch(myVar){
case '5':
alert("hi"); //这个alert将不会执行,因为数据类型不匹配
}
在window.onload执行document.write 会导致页面完全空白~ ...
前端的需要掌握的知识储备要远远的大于实践
浏览器安全模型规定,XMLHttpRequest、框架(frame)等只能在一个域中通信。从安全角度考虑,这个规定很合理;但是,也确实给分布式(面向服务、混搭等等本周提到的概念)Web开发带来了麻烦。
所谓的跨域就是,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象
第一种:
window.name:就是window对象上的一个属性,只要窗口不发生变化(打开的不为_blank),这个值是一直存在,不会发生改变
a.com/app.html:
a.com/proxy.html:内容空白
b.com/data.html
需求:a.co ...
javascript中最纠结的关系,就是对象与函数的关系,对象是函数(Object是一个函数:new Object),函数也是对象(function aa(){},aa有__proto__,说明aa也是一个对象)
为了方便理解:
我暂时把js里面分为两种对象,函数对象,非函数对象
为了解释这概念我举个栗子
function aa(){}
aa就是函数对象 , 而new aa()就是非函数对象了
可以说new aa()是aa的一个实例,也可以说aa是new aa()的一个模板
非函数对象的特点:只有__proto__属性
函数对象的特点:同时有__proto__,prototype,因为它也是对象 ...
a星算法的原理,网络上基本都有,这里就不在介绍了,网络上的a星和例子结合的过于密切,不利于复用,如果你只需要代码,不需要了解原理,此文会对你有帮助
图片见附件,代码如下:
window.AStar = {};
(function(aStar){
//start:起始节点[i,j] , end:最终节点[i,j] map:地图数据(2d)arr,marker:可以通过的标识(例子用的是1)
aStar.find_path = function(start,end,map,marker){
var open = [];
var close = [];
var s ...
num1:
ba = function(a) {
return a.call.apply(a.bind, arguments)
}
(以上的代码出之于google的adsence广告投放的代码)
单纯的call和apply其实好解释,但如果想上面这样写,就有点绕了。
下面来分析上面这种写法
<script>
var obj = { name : "cc"};
var fun = function(){
alert(1);
};
var fun2 = function(){
alert(2) ...
processing.js是jquery之父的又一给力js内裤
直接点以下链接(用狐火和chrome打开可以预览效果):
http://
processing 最初是用java开发的,然后前段时间他又实现了js的java虚拟机,我正仰慕不已的时候,现在又出了processingjs,我总算知道做虚拟机的目的是为什么了,为了无论在什么条件下都能正常运行web引擎,大神真是无所不能。。。
使用processing.js,有三种方式:
第一种:
<script src="processing.js"></script>
& ...
平时只进不出,感觉也不怎么厚道,第一篇技术博客奉献给大家,希望大家有所收获
声明一下
constructor 指向的肯定是函数
prototype 指向的肯定是对象,并且只有function对象才具有此属性
希望看本文之前能先了解一下原型链概念
下面是对两个属性深层次的分析,欢迎拍砖
function fun(name){
this.name = name;
}
function fun2(name,age){
fun.call(this,name);
this.age = age;
}
var f1 = new fun();
var f2 = new fun2() ...
|
|
来自: quasiceo > 《javascript》