摘要:
JS在页面加载过程中顺序执行。但是分块预编译、执行。JS在执行前会进行类似”预编译”的操作,而且先预声明变量再预定义函数。此时注意,是声明,不是定义,如:var a = 1; 在预编译中,只是执行了”var a”没有赋值,即在预编译结束时a 为undefined。(注意)并不是先全文编译完在执行,而是块编译,即一个script块中,预编译再执行,然后(按顺序)下一个script块,预编译再执行,但此时上一个块中的数据都是可以用的,但下一个块中的函数,声明的变量都是不可用的。变量没声明就引用,会报错,但对象方法,对象变量没声明,是undefined在函数中变量不声明就赋值,会被认为是全局变量,用 阅读全文
摘要:
原文地址:http://www.cnblogs.com/lln7777/archive/2012/03/21/2409404.html比如一个网页的聊天室,滚动条会随着内容的增加自动往下滚动。当用户鼠标在滚动条上按下的时候,我们可以假设他(她)正在浏览聊天内容,那么这个时候好的用户体验就不能让滚动条再自动滚动了。为了实现这个功能,可能大家首先会想到的就是mouse down 和 mouse up事件了。可是具体实现的时候我们会发现在滚动条上按下鼠标左键再松开的时候,捕获不到mouse up了。如下面例子<html> <head> <title></ti 阅读全文
摘要:
setCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由 document、window、object之类的自行来处理。这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰。另外,还有一个很重 要的事情是,在Win32上,mouse move的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一个mousemove,windows会周期性检查mouse 的位置变化来产生mousemove的事件。所以,如果是一个很小的页面对象,比如一个直径5px的圆点,如果没有setCapture和 rele 阅读全文
摘要:
编译处理指令 既然Objective-C是面向对象的程序语言,所以理应支持可重用的数据和函数的封装体,即类。 类是在结构体的基础上发展的产物,结构体只能处理数据,在结构体之上增加对该数据处理的函数,就构成类的概念。类使程序总能提供对数据专门处理函数的安全调用,使得一系列的机能作为一个子系统供安全且重复的使用。 像结构体一样,类在使用之前必须先声明,但是Objective-C并没有像其他面向对象语言那样提供声明类的专用关键字或者语法,而是用编译处理指令来实现,特征是类声明语句都须以@符号开始。 类声明的编译处理指令以@interface开始,以@end结尾,在这之间代码便是类变量的定义和... 阅读全文
摘要:
面向 对象的C语言 提及面向对象的语言,大多数Windows下的开发者会首先想到的是C++,C#或者Java。但是,如果你首先想到的是Objective-C,那么你应该是一位Mac OS下的开发者,这个现代计算机系统中,最多应用Objective-C的Apple公司Mac OS X。Object-C和C++ Object-C是在C语言的基础上,吸收了Smalltalk的面向对象成分创造出的,这与大多数以Java为基础的面向对象语言非常的不同。 而且,与其他面向对象语言隐藏类在内存上的构造不同的是,Object-C用C语言来实现类,也就是说,和现代面向对象的思维方式相反,不是在语言中重新引... 阅读全文
摘要:
转自:http://www.wufangbo.com/ie-inline-block/1、display:inline-block让一个元素具有“区块元素”的属性(可以设置width和height),又具有“内联元素”的属性(不产生换行)。2、IE中的inline-blockIE6不支持这个属性,但IE8开始支持这个属性。让IE6内联元素具备inline-block特性由于inline-block会触发IE的layout,所以IE6中只要设置{display:inline-block;}即可。让IE6区块元素具备inline-block属性,有两种方法A、可以先触发layout,再设置为inl 阅读全文
摘要:
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。首先,来了解一下C语言的变量是如何在内存分部的。C语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码:#include<stdio.h>intg1=0,g2=0,g3=0;intmain(){staticints1=0,s2=0,s3=0;int 阅读全文
摘要:
转自:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html前言您是否是动态分配的 C/C++ 对象忠实且幸运的用户?您是否在模块间的往返通信中频繁地使用了“自动化”?您的程序是否因堆分配而运行起来很慢?不仅仅您遇到这样的问题。几乎所有项目迟早都会遇到堆问题。大家都想说,“我的代码真正好,只是堆太慢”。那只是部分正确。更深入理解堆及其用法、以及会发生什么问题,是很有用的。什么是堆?(如果您已经知道什么是堆,可以跳到“什么是常见的堆性能问题?”部分)在程序中,使用堆来动态分配和释放对象。在下列情况下,调用堆操作:事先不知道程序所需对象的 阅读全文
摘要:
原文:http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教,这对于大家学习会有很大 阅读全文
摘要:
推荐参考地址:Mailing list ARChives 官方讨论区http://marc.info/?l=nginxNginx 常见应用技术指南[Nginx Tips]http://bbs.linuxtone.org/thread-1685-1-1.html本日志内容来自互联网和平日使用经验,整理一下方便日后参考。正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!- 阅读全文