arguments.callee()是一个指针,指向拥有这个arguments的函数!其应用在经典的阶乘函数中可以体现出来:
<script type="text/javascript"> //阶乘函数 function factoria[......]
arguments.callee()是一个指针,指向拥有这个arguments的函数!其应用在经典的阶乘函数中可以体现出来:
<script type="text/javascript"> //阶乘函数 function factoria[......]
JavaScript For…In声明用法,官网文档解析:
For…In 声明用于对数组或者对象的属性进行循环操作
for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
for …in声明对于对象字面量的操作还是相当实用的!
for (变量 in 对象) { 在此执行代码 }
“变量”指定的可以是数组元素的下标索引,也可以是对象的属性。
实例:
[……]
问题:$("input[type=’text’]:eq(0)").val().trim() ,ie7/8报错:对象不支持“trim”属性或方法
解析:trim()方法是原生的js方法,高级浏览器中已经默认支持 trim() ,但ie6、7、8都不支持这个新加的方法,所以ie8及以前的版本会报“对象不支持“trim”属性或方法”。
解决方法:
方法1:
使用jquery里面的全局函数$.trim()代替原生js方法trim():
$.trim($("input[type=’text’]:eq(0)").val().trim());
方法2:
使用原生js来扩展String方法
1.写成类的方法:[ 调用格式: str.trim(); ]
<script type="text/javascript">
Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
};
if(String.prototype.trim){ //判断下浏览器是否自带有trim()方法
String.method('trim', function() {
return this.replace(/^\s+|\s+$/g, '');
});
String.method('ltrim', function() {
return this.replace(/^\s+/g, '');
});
String.method('rtrim', function() {
return this.replace(/\s+$/g, '');
});
}
</script>
可运行的参照实例:
[……]很多时候,我们需要判断用户执行了何种操作:是缩放窗口?还是拖拉滚动条?具体怎么实现呢?
思路:用jq方法先绑定'resize scroll' 事件,再在内部使用event.type来绑定用户操作,具体实现代码↓
源码:
[……]
Date类型使用自UTC(Coordinated Universal Time,国际协调时间;旧时又叫GMT即格林尼治标准时间)即1970年1月1日午夜(零时)开始经过的毫秒数(ms)来保存日期。
在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间。[……]
实现效果:点击当前项添加class名:active,其它同级项移除该class名
实现原理:设置一变量(实例是num)用于记录当前点击项的所在索引值,当发生点击事件时先去掉原先记录到索引值对应项的class名,再为当前点击项添加class名!关键是点击项所在索引值的记录!
实例源码:
[……]在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数;
而函数对象的另一个属性:caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null。
实例代码:
[……]
导航栏当前项加class定义高亮方法,它能让用户知道自己当前所在的栏目,虽是细节但也能对用户体验形成一定的影响!需要说明的是:单纯的靠js去实现这个需求,未尝不可但却是有缺陷的,更致命的是这些缺陷就js而言还是不可修复的,致命硬伤啊! 附js实现源码: [……]
\r是回车,英文是Carriage return,作用:使光标到行首
\n是换行,英文是New line/line feed,作用:使光标下移一行
如果用过机械打字机,就知道回车和换行的区别了。
回车就是把水平位置复位,不卷动滚筒。
换行就是把滚筒卷一格,不改变水平位置。
[……]