最新日志

查询数据库里的一段数据


一个查询SQL:
查询第M条起的N条记录(形式分页)

SELECT TOP N *
FROM [0791idc_Product]
WHERE (ID NOT IN
(SELECT TOP N(页数-1) id
FROM [0791idc_Product]
ORDER BY id))
ORDER BY ID

比如这样就是查询第7条到12条记录
MS里好像没有LIMIT或行号
SELECT TOP 6 *
FROM [0791idc_Product]
WHERE (ID NOT IN
(SELECT TOP 6 id
FROM [0791idc_Product]
ORDER BY id))
ORDER BY ID

闭包笔记(一)

闭包的定义:
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

其实每个函数都是闭包.
-----------------------------以下个人观点(^^如有不妥,请砸砖头)---------------
闭包其实是作用域链的一种表现而已^^.
当进入一个函数中时.会创建一个执行环境,其中包括一个调用对象,这个调用对象里包括当前函数里的变量(属性),方法.
函数进行执行里,会根据这个当前调用对象向上进行查找,顶部对象是window对象.
有个要注意:
|----------JavaScript的变量作用域是在定义时被确定而不是在被执行时--------|
看别人的Code例子吧
1.
var name = "The Window";
  var object = {
    name : "My Object",
    getNameFunc : function(){
      return function(){
        return this.name;
      };
    }

  };
 alert(object.getNameFunc()());

一个实例里包含了一个属性和一个方法,方法里又返回了一个方法,返回的这个方法里返回一个this引用对象的name属性;
执行的时候是object.getNameFunc()().先执行对象object的公用方法.
然后再执行公用方法里返回的那个匿名函数,这时的作用域会查找this.name.匿名函数里没有定义.找getNameFunc方法,getNameFunc方法里也没有,由于getNameFunc方法是公用方法,再向上查找就是window对象即全局变量.
|----------------------this是执行时的上下文对象--------------------------|

2.



运行后,发现点击都是5;
当badClosureExample函数执行后,badClosureExample里的click的匿名函数的i值已为5,可click事件并没有执行,而i相对click事件的匿名函数是外部变量;
所以解决的方法是让每个i成为click事件的私有属性
不管是

function badClosureExample(){
for (var i = 0; i <document.getElementsByTagName('a').length; i++) {
var element =document.getElementsByTagName('a');
element[i].i=i;
element[i] .onclick = function(){
alert(this.i);
};
}
}


还是

function badClosureExample(){
for (var i = 0; i <document.getElementsByTagName('a').length; i++) {
var element =document.getElementsByTagName('a');
element[i] .onclick = new cloS(i);
}
}

function cloS(i){
return function(){
alert(i);
};
}

其实都是为click的那个匿名函数创造一个作用域保存私有变量.防止它调用它的外部(或者说是父级里的属性);


|------------------------看看,都是作用域问题^^还得研究ing....-------------------------|

定位中用absolute实现fix效果(支持IE6)

前阵,在做一个项目时.代码本身就很乱.因为数据较大.又得单屏显示.又是单页面.又不得大改原来的代码.所以用overflow:scroll;来布局.其中,在做一个选项卡,用position:relative;时发现这个背景也随着滚动条漂了起来.于是乎.便有了下面的一些事儿.
先看一个demo:如下:



看到了么.像fix一样.定位到右下角.而且在IE6中无闪动.^ ^是不是很极品呀.
再看一个demo



CSS部分如下:
* { padding:0; margin:0; }
html, body { width:100%; height:100%; }
html { overflow:hidden; }
.html { overflow:scroll; overflow-x:hidden; width:100%; height:100%; background-color:#dcdcdc; }
.tool { position:absolute; left:0; width:100%; top:0; background-color:#85B148; color:#FFF; height:30px; }


不多说了.具体杂回事.我也不清楚.希望#三思哥#快快研究告诉小弟,^ ^.

JavaScript词汇表(Glossary)

ASCII 字符集

美国标准信息交换编码 (ASCII) 的 7 位字符集,它被广泛地用来表示标准的美国键盘上的字母和符号。ASCII 字符集与 ANSI 字符集中的头 128 个字符 (0–127) 完全相同。

Automation 对象

通过 Automation 接口可以被其他应用程序或编程工具使用的对象。

按位比较

对两个数值表达式中相同位置上的位进行的逐位比较。

Boolean 表达式
一个值为 true 或者 false 的表达式。如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:

所有的对象都被当作 true。
当且仅当字符串为空时,该字符串被当作 false。
null 和 undefined 被当作 false。
当且仅当数字为零时,该数字被当作 false。


字符编码

用来表示一个集合,诸如 ASCII 字符集,中特定字符的数字。



对象的形式定义。类的作用就相当于一个模板,在运行时可以根据此模板来创建对象的一个实例。类定义对象的各种属性并且定义各种方法以便控制对象的操作。

注释

程序员向代码中添加的文本,用来说明代码是如何工作的。在 JScript 中,一行注释通常以 // 开头。如果要创建多行的注释,请使用 /* 和 */ 定界符。

比较运算符

表示两个或更多的表达式或值之间关系的字符或符号。这些运算符包括小于 (<)、小于或等于 (<=)、大于 (>)、大于或等于 (>=)、不等 (!=) 和等于 (==)。

复合语句

用大括号 ({}) 括起来的语句序列。复合语句可以被用来在需要使用单行语句的地方完成多项任务。

构造函数

一种 JScript 函数,具有两个特殊的性质:

由 new 运算符来调用此函数。
通过 this 关键字将新创建对象的地址传递到此函数。
请使用构造函数来初始化新的对象。


表达式

关键字、运算符、变量以及文字的组合,用来生成字符串、数字或对象。一个表达式可以完成计算、处理字符、调用函数、或者验证数据等操作。

固有对象

固有对象是作为标准 JScript 语言一部分的一种对象。所有的脚本都可以使用这种对象。JScript 中的固有对象包括 Array,Boolean,Date, Function,Global,Math,Number,Object,RegExp,Regular Expression,和 String。

本地时间

本地时间指的是脚本被执行的服务器或客户机上的时间。

区域设置

对应于给定语言或国家/地区的一系列信息。区域设置影响预定义编程术语所使用的语言并影响一些跟区域设置相关的设置。在下面两种情况下区域设置信息很重要:

代码区域设置影响术语,诸如关键字,所使用的语言并定义与区域设置相关的设置,诸如十进制分隔符和列表分隔符、日期格式、和字符排序的顺序等。
系统区域设置影响一些与区域设置相关的功能的执行方式,例如,显示数字或将字符串转换为日期等。可以在操作系统所提供的“控制面板”实用程序中调整系统“区域选项”的设置。

null

null 值指出一个变量中没有包含有效的数据。产生 null 的原因是:

对一个变量显式地赋值为 null。
包含 null 的表达式之间的任何操作。


数值表达式

数值表达式指的是任何值为数字的表达式。这种表达式的元素可以包括关键字、变量、文字和运算符的任意组合,只要此组合能够生成一个数字。在特定的情况下,如果可以的话,字符串也可以被转换为数字。

基本

一种数据类型,是 JScript 语言的一部分并通过值来进行操作。在 JScript 中,数字、Boolean、字符串和函数等数据类型都被看成 primitive。而对象和数组则不是基本数据类型。

属性

对象的一种命名的特性。属性定义了对象的一些特性,诸如大小、颜色和屏幕位置,或对象的状态,诸如可用的或禁止的。

运行时错误

代码运行过程中出现的错误。如果一条语句试图进行非法操作,那么就会导致一个运行时错误。

范围

定义一个变量、过程或对象的可见性。在函数中定义的变量仅在函数内部可见,在调用该函数时并不能保持其值。

字符串比较

两个字符序列之间的比较。除非在进行比较操作的函数中指出,所有的字符串比较操作都是二进制的。在英语中,二进制比较区分大小写;而文本比较则不区分。

字符串表达式

任何值为一个连续字符序列的表达式。一个字符串表达式的元素可以包括返回字符串的函数,字符串文字,String 对象,或者字符串变量。

未定义

在变量被创建之后和被赋给值之前分配给该变量的一个特殊值。

全球标准时间 (UTC)

全球标准时间指的是由世界时间标准设定的时间。原先也被称为格林威治标准时间或者 GMT。

用户定义对象

由用户在源代码中创建的对象。

变量

用于按名称来保存并操作值的位置。因为 JScript 的类型是自由的,在一个脚本过程中,单个变量可以保存不同的数据类型。

包装器

一种对象,被创建来为一些其他类型数据提供对象风格的接口。Number 和 Boolean 对象就是包装器对象的例子。

Object.prototype.toString





toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型:

Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date 返回日期的文字表示法。
Error 返回一个包含相关错误消息的字符串。
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:
function functionname( ) { [native code] }
Number 返回数字的文字表示。
String 返回 String 对象的值。
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。