javascript笔记

来源:互联网 发布:c语言ceil 编辑:程序博客网 时间:2024/06/05 19:29
1.JavaScript是一种脚本语言(动态语言),它嵌入在网页中由浏览器解析运行,它是一种基于对象,事件驱动型语言。
2.面向对象具有继承封装多态,而基于对象不具有,只对对象(将数据和处理数据的过程捆绑为一个整体)操作。
3.javascript以字符串形式解析的,字符串越多,解析越慢。
4.js标识符:1.变量区分大小写的。
           2.变量是弱类型,var代表所有的数据类型,没有其他的类型。
           3.每一行后面的分号必须要有(实际上是可有可无的)。
           4.注释和Java是一样的。
           5.变量命名开头必须以字符和美元符,下划线。
           6.骆驼命名首字母要小写,pas命名首字母要大写,匈牙利命名方式是_类型(int只写i)__再加大写字母。e.g:iMySql
           7.关键字
       8.保留字
5.数据类型:1.基本类型(原始类型):存储在栈中间的简单数据,变量的值直接存放在变量的访问位置(地址处)。         
           2.引用类型:存储在堆中的对象(复杂数据),存储在变量处的值是一个指针,直接指向对象的内存处。
6.js的5种原始类型:Undefined(变量默认值为这个,方法没有返回值的时候也是默认为这个)。
                  Null(只有一个值null从Undefined继承过来的)。
              Boolean(true,false  js中所有的undefined,null,'',"",0都为false)
                  Number(32位的,分为整数和浮点数)。
              String(是一个可变长度的字符串,定义的时候用''或者"").
7.强制类型转换:1.转换为布尔 var b=Boolean(字符串);
               2.转换为数字 var b=Number(字符串);
               3.转换为字符串 var b=String(字符串);
               注:转换失败后会提示NSN
8.Number,String,Boolean都是伪对象(既属于原始类型又属于对象类型,可以new对象)。
9.引用类型(所有的对象都是从Object那里继承过来的):有2个很重要很重要很重要很重要的属性prototype(对象原型引用),constructor(对象构造器引用)。
10.delete是用来删除的,是删除运算符。void是一个空运算符,void(变量)在这括号里的东西不管是什么都返回undefined。
*11.函数:是一个特殊的引用类型,函数名是用来指向这个函数的指针。
function A()  A=function()  function() var A=new Function();
12.js中没有方法重载,只要函数名相同,后面的函数会覆盖前面的方法,只要函数名相同就会覆盖,参数不同也覆盖。
13.闭包:函数定义调用函数外的变量。
e.g:var a=123;
    function a(){
        alert(a);
    }

1.对象:是属性和方法的无序集合。
2.javascript的面向对象:继承,封装,多态,聚集(一个对象拥有另一个对象的能力)。
3.对象由属性(可以是原始值和引用值)和方法构成的。
4.创建object实例的方法:var o=new Object()这个括号可有可无;简单方法是var o={};该对象没有引用时这个对像就被销毁了。
5.对象分类:1.本地对象:独立于宿主环境,由js实现提供的对象(object,Funcion,String,Array,Number,boolean,Date,RegExp).
Array:是一个栈结构,是先进后出。var a=new Array(3);但是这里面可以装多的东西,数组的效率在js是最高的,最多放40亿项。var0=[];数组缩写形式。
Date:是用来操作和访问当前日期的。
           2.内置对象:独立于宿主环境的对象,在javascript解析执行之前已经实例化好了,有2个属性:Globle Math它实际也属于本地对象。
           3.宿主对象:所有非本地对象都是宿主对象。所有的BOM(Brower object model),DOM都是宿主对象。
6.关键字this永远指向调用该方法的那个对象。
7.类就是对象,对象就是函数,函数就是构造器,构造器就是类。
8.早绑定:在实例化对象之前定义对象的属性和方法。
9.晚绑定:在实例化对象之后定义对象的属性和方法。
10.

1.BOM(浏览器对象模型):它提供了独立于内容与浏览器进行交互的对象。
2.window:
     document:
         ancluvs
         frames
         images
         links
         location
         frames
         history
         location
         screen
         navigator
1.DOM(document object model)是文档对象模型。DOM对象是BOM对象的一部分,同时也是HTML DOM的HTML(Hypertext Markup Language) document的一种表现形式。
2.HTML每一个标志都对应着一个dom对象。
3.dom解析器提供了一种html和xml的编程接口。
4.HTML是一份特殊的xml文档,HTML是一个树状结构,它提供了一种结构化的表示方法,它可以改变文档的内容和表现形式。
5.DOM
     document
6.获得对象:
    1.document.getElementById()
    2.document.getElementsByName()// option时可直接传id号获得对象

1.组件:text,password,radio
2.所有表单的值都是表单的子元素。
3.可以这样访问元素form["name"]

1.typeof 判断变量的数据类型。
2.instanceof 引用数据类型。
3.arguments  参数列表,不管什么情况下参数都放在这里面。

1.事件:JavaScript和hmtl之间交互,是通过用户和浏览器页面引发的事件来处理的。
2.事件监听函数:用于响应某个事件而调用的函数。
3.事件类型:鼠标事件:是鼠标操作时触发的事件。
           键盘事件:在键盘上敲击触发的事件(键盘按下事件onkeydown,onkeypress,onkeyup)。
           html事件:bom和dom改变触发的事件(网页页面加载)
           突变事件:底层dom发生改变时触发的事件。
4.处理事件分配方式:HTML中
           JavaScript中
5.事件也是DOM的一部分。
6.onload网页加载时触发的事件,onunload写在网页时触发的事件。
7.事件信息是封装事件对象里面的,事件是交给浏览器来处理的

1.正则表达式:用来判断字符串是不是属于那种匹配模式。
2.javaScript中对正则表达式的支持是通过RegExp这个类来实现的。
3.创建正则表达式的实例new一个,有2个参数,第一个参数是正则表达式的匹配模式,第二个是正则表达式命令。
4.i命令是忽略大小写,g命令代表全局匹配。gi忽略大小写且全局匹配。

5.exec方法只返回了一个元素的数组。
  test() 条件成立时返回true;
6.简单模式:就是由指定的字符,元字符,字符类,量词等组成的正则表达式匹配模式。
7.元字符:就是在正则表达式中被正则表达式所占用的字符,要使用元字符必须进行转义。
8.元字符(关键字):(),[],{},\,^,$,|,?,*,+,.
9.预定义字符:\t制表。\r换行。\n回车。\f换页。\b回退。\0空字符。
10.字符类:是用于测试字符类组合,它是放在中括号中,代表一个字符,测试出现在括号里面的数字。
11.字符类负向类:是用于测试字符类组合,它是放在中括号中,测试不能出现在括号里面的数字。
12.范围类:在中括号中。[a-z]
13.负向范围类:[^a-z].
14.组合类:多个范围类。
15.预定义类:(.除换行回车以外的字符)。
             \d[0-9]
          \D[^0-9]
             \w指A-Z,a-z,0-9.[A-Z,a-z,0-9,_].
             \W[^A-Z,a-z,0-9,_].
             \s匹配所有的空白字符
             \S匹配所有的非空白字符
16.量词:硬性量词:指定出现次数。
    软性量词:指定出现范围。
?代表0或者1次。
+代表1次或者多次。
*代表0次或者多次。
{1}必须出现一次。
{1,}代表出现一次或多次。
{n,}代表出现n次或多次,包括n在内。
{n,m}代表出现n到m次。
*17.空正则表达式匹配字符永远返回空。
18.量词分类:
        贪婪量词:首先看整个字符串是否匹配,如果匹配则不进行下一次匹配,如果不匹配读第一个字符进行匹配,如果数量不够继续往下,直到数量足够,如果数量足够还是不匹配就删除最前一个字符,从第二个字符进行匹配,如果数量不够继续往下,直到数量足够,如果数量足够还是不匹配就删除第二个字符。
如果有匹配就把匹配的截取删掉,直到找到匹配的为止,到现在为止我们学的量词都是贪婪的。
        惰性量词:先看字符串中的第一个字符是否匹配,如果单独这个字符还不够,再读取下一个字符组成2个字符进行匹配,以此类推,如果找到匹配的就删除。只以最少次数匹配。惰性量词只要在贪婪量词后面加个?。
19.复杂模式由分组,反向引用,前瞻,候选和其他一些方法组成的正则表达式匹配模式。
20.分组:/(dog){3}/相当于dogdogdog。
21.候选:(dog|cat).
22.边界:^(边界的头) $(边界的尾)。

1.继承的第一种方法:1.对象冒充:构造函数使用this关键字给所有的属性和方法赋值(即采用类声明的构造函数方式,因为构造函数只是一个函数,所以可使A构造函数成为B类的方法,然后调用B类的方法,B类就会收到A构造函数中的方法和属性)。
2.call:调用一个对象的一个方法,以另一个对象替换当前对象
A.call(thisobj,参数);

3.apply:应用某一对象的一个方法,用另一个对象替换当前对象
A.apply(this,参数是个数组);
4.原型方式:原型只是一个对象的模板,要实例化的对象都以这个原型模板为基础,总而言之原型对象的任何属性和方法都传递给那个类的所有实例。

1.xml Http对象:Http是一种浏览器对象可以用于模拟Http发送get post请求,它无需刷新页面可以向服务器发送请求或者响应请求,它是一套可以嵌套在JavaScript,vbscript,JScript。
2.事件监听句柄就是事件监听函数。
3.同步:要排队,效率低,适合小量数据,且是要等待服务器响应
4.异步:不要排队,适合大量数据,且不要等待服务器响应。
5.selectSingleNode()访问xml文档中的节点。

1.ext它提供了一套非常绚丽的UI,与后台无关的框架。
2.ext是一套开源的框架。
3.容器组件用来装组件的。
4.ext.form.FormPanel用来装表单组件的。
5.容器是用来装东西的(记好了)。
6.所有的表单组件都继承field组件。
7.组件(都是BoxComponent下面的组件):基本组件,工具栏组件(tbar下面的组件),表单组件(表单下面的组件)。
8.所有的组件销毁都是引用BoxComponent来的。
9.ext中一个组件代表一个类,要用组件直接new一个就可以,默认的情况下所有的组件都初始化了。
10.当对象指向rendering以后,每一个对象都对应一个DOM。

1.Ext的核心组件(component):自动支持了标准的隐藏,显示,启用,禁用等,Ext中每一个组件都对应着一个xtype属性,在Ext中xytpe直接可以创建组件,所有的组件都可以通过renderTo来进行渲染html页面。
2.组件的生命周期是:创建,初始化,销毁。
3.Ext.container有两个重要的属性:1.layout2.items。
4.页面布局都交给Viewport来管理。
5.Ext实用工具:1.onReady()
6.js中没有静态的,静态的就是一个函数。
7.get方法是获取HTML元素或者ext元素的一个函数,返回来的数据类型是Ext.element,必须通过id或者dom对象。
8.getCmp用来获得一个Ext组件。
9.getBody返回当前body的element。
10.borderLayout布局:把界面分成了5部分,东南西北中,中是一定要的(如果没有中,就报布局出错)。

1.表单标记必须放在form布局下面才能显示表单标签。

2.表格控件:Ext.grid.GridPanel,必须包含表头(列定义)columns对应的列表信息是一个数组,数据存储器(Ext.data.store)。
3.data:本地初始化数据,这个也要解析器。
4.proxy:对象{},提供了数据访问。
5.reader:对象{},解析器。
6.URL:如果被传递了,就会自动创建一个HTTP代理,record指数据项,只认识这个。
7.header:代表表头要显示的表头名字。
8.dataIndex:代表表头要隐藏的表头名字。

1.Tree:ext中的树结构是由treePanel,有两个很重要的属性loader(加载数据),root()


1.事件:Ext.lib.Event它封装了不同浏览器之间的处理函数,它为组件提供了统一的接口。
2.Ext.util.abservable:为事件提供了最基本的功能。
3.Ext.Event.Manager:事件管理器,它提供了一系列最常用的事件处理函数。
4.EventObject:对事件进行了封装。
5.EventManager:对事件进行管理。