javascript

                                                 JavaScript

什么是JS:
1.javascript是一种侵入在网页中的脚本语言,它是由浏览器解析运行的。
2.javascript是一种 基于对象 和 事件 驱动型语言。

什么是基于对象:
基于对象不具有封装、继承、多态。

JS里面的面向对象都是伪面向对象。

javascript的解析:
javascript是有文本字符串的形式供浏览器解析的。javascript的解析速度的java的1/50倍,是C语言的1/500倍。

语法:
javascript标示符:
1.它的变量是区分大小写的。
2.它的变量是弱类型的。
3.每一行结尾的分号(;)都是可有可无的。

值类型:
原始值:存储在栈中的简单数据,它们的值就是变量的值,直接存放在变量的访问位置
  原始值的数据类型:
  1.undefined(String,它的长度是可变的)
  2.Null(是由undefined派生出来的)
  3.Boolean(true、false)
  4.Number(数字类型)
  boolean、String、number是伪对象(拥有对象的一些特性、属性和方法)

  var b = new Boolean(false);
  b = Boolean(false);
 
  var n = new Number(123);
  Number n = 123;

  将一个数字转换为boolean型:
  var num = Boolean(123);

  var b = Boolean("string");
  parseInt();
  parseFloat();
引用值(指针):可以指向一个变量,也可以指向一个对象,还可以指向一个函数。存储在堆中的对象,存储在变量处的值是一个指针,它指向存储对象的内存处

object类型:
javascript中所有的对象(类)都是从object继承而来
object类型里面的属性:
1.prototype:对该对象的原型的引用
2.constructor:构造器的引用

算术运算符:
&&、||、==

流程控制:
if
else
while
swith等、和java里面的一样。

元运算符
1.delete
 删除对以前对象属性和方法的引用
2.void(这里放的是对象)
 如果是原始值的话就返回一个undefined

函数(function)
函数的定义:它是一个特殊的引用类型,函数是一组可随时运行的语句,所有的函数都是从function类继承过来的。
函数如果没有返回值,那么就返回undefined
所有的函数中,会默认的给你一个arguments对象,把函数里面所有的形参(以数组的形式)放在这个arguments对象里面
function 函数名 (参数){}
javascript中有值传递和引用传递
引用传递:函数名永远都是指向函数的指针
function();是一个匿名函数

eval():它是一个万能方法


闭包
定义:闭包就是函数调用外部定义的变量


2010年7月28日 09:44:08

对象基础
定义:javascript对象是属性和方法的无序集合,它就相当于是一个集合
javascript有四种能力:封装、继承、多态、聚集
javascript里面所有的权限都是公有的
继承:
主要有两种,重写和重载,在javascript里面重写和重载都是方法的覆盖,把父类里面的属性和方法拷贝到子类里面了,有相同的话就把子类覆盖了
聚集:
 把一些属性聚集到一个类里面,一个类拥有装载和引用原始值和引用值的能力

javascript对象的生成和实例化:
 var v = new Object();对象后面的这个括号是可有可无的
 n = null;

javascript提供的对象分为三大类:
本地对象、
 独立于数组环境(提供生命的环境),有javascript(ECMAScript)实现提供的对象
 它提供了:object,afunction,Function、Array、Date、String、Boolean;
Array对象:是javascript中性能最高的一个对象。
内置对象、
 定义:它也是由javascript实现提供的,它也是独立于数组环境的对象,它是由浏览器实例化之后,你只要拿过来用就可以了
Global对象:比如说parseInt我们就可以直接用,因为它是global里面内置提供给对象的。它不能被其它对象引用
 
宿主对象
 定义:所有的非本地对象都是宿主对象,就是由数组环境提供的(浏览器),所有的标签都对应一个对象,比如<p></p>这样的标签就是对应着一个对象
DOM(document object model)和BOM(browser object model)都是数组对象
object可以使用{}来简写
绑定属性:
var o = new Object();
o.name="value";
o["属性名"]="value";
晚绑定:
  定义:编译器或者解释器在创建对象之后,将属性绑定
早绑定:
  定义:编译器或者解释器在创建对象之前,将属性绑定

在javascript里面只有变量,而没有属性,所以,方法之外不能访问变量,如果要访问,就要使用this关键字
例:
   function Student(){
   this.name = "zhangsan";
   this.age = 18;
  }
  var s = new Student();
  document.write(s.name);

-*-*-*-*-*-*-*-*-*-*-*-*-*-重点*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
this:
 this永远指向该方法的那个对象


创建对象的方式:
function a(){

}

a = function(){

}

var o = new Object(){

}
var o = {

}

原型方式:
  函数有一个原型属性,原型有一个构造器属性,构造器属性里面还有原型属性,这两个属性将无限循环
  构造器.prototype.属性:将属性绑定到原型上面

2010年7月29日 09:37:52
BOM(浏览器对象模型):
  BOM提供了独立于内容,而与浏览器窗口进行交互的对象
  所有的BOM和DOM都不能用来继承

Window →|document → |links
                |images
        |location
  |Frames  :是一个框架集合
         |History :操作浏览器的,比如说浏览器上面的前进、后退等
         |location  连接
         |navigator 
         |screen

DOM(文档对象模型):
 每个html里面的节点都对应一个对象
 独立于网页内容的


Form表单:
  表单是一个高级html组件


-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
2010年7月31日 09:41:02
    事件
定义:事件是DOM模型的一部分,
事件也是一个特殊的方法
事件和函数是息息相关的
事件触发函数,而函数监听事件(一个事件对应一个函数)
触发事件,调用函数(事件不是通过浏览器直接得到的,而是通过操作系统得到的)

事件监听函数/处理函数:
定义:事件是用户或浏览器进行特定的行为,用于响应某个事件而调用的函数

事件函数分配方式:
1.javascript
2.HTML
它不属于HTML事件,它只是分配到HTML里面的
所有HTML里面的标签都有

事件分为:
1.鼠标事件:用户进行特定操作的时候触发
2.键盘事件:使用键盘进行操作的时候触发
     |按下事件
     |按键事件
     |放开事件
3.HTML事件:窗口页面发生改变的时候触发
突发事件:底层DOM结构发生改变的时候触发
HTML事件和鼠标事件、键盘事件没有一点关系的

事件原理
是一个树状结构图,根节点就是window,所有的标签和事件都是它的子节点,它是通过冒泡来一层一层往上执行,最终通过window来完成这个事件
所有的事件都是通过第三方(window)来完成的

模块对话框:
  当你产生一个对话框之后,别的事件就不能对这个对话框进行操作了

ATM事件
javascript事件


2010年8月2日 09:46:03

正则表达式
正则表达式是通过ECMAScriptRegExp来实现的
正则表达式是匹配模式额外的指令
g(global):代表全部命令(全局匹配)
i:代表不区分大小写
multiline:多行

var re = new RegExp("",""); 第一个参数就是匹配类型,第二个参数就是命令
var re = /匹配类型/命令;  一定要有严格的规范

RegExp对象里面就只有二个方法使用,一个就是test(),还有exect()方法,其它的都是在String对象里面。
如果不加全局,当匹配到第一个的时候就不会往下匹配,返回真。

简单模式: 一个正则表达式具有很多组成部分,这些组成部分包括匹配模式和命令,如:指定字符、元字符、字符类和量词等组成的简单匹配模式

元字符:被正则表达式所占用的字符就是元字符,如:【(】【[】【{】【\】【^】【$】【?】【+】【*】【.】【}】【]】【)】
(,[,{,\,^,$,?,+,*,.,},],) 中括号里面的就是元字符

预定义字符:\t,\r,\f,\n,\a,\e...等

字符类:包含在中括号中的字符,告诉正则表达式要匹配其中的某一个,比如说要匹配a到z里面的某一个字符就使用[a-z]

负向字符类:不包含中括号中的字符,告诉正则表达式呀匹配不在某个范围内的字符,比如说不要匹配a到z里面的某个字符就使用[^a-z]

组合字符类:[a-z0-9] 就是说可以匹配a到z和0到9之间的字符a-z和0-9之间不能加空格,因为空格也算是一个字符

预定义类:
 .[^\n\r] :除\n\r以外的字符
 \d[0-9]
 \D[^0-9]
 \w[a-z0-9A-Z]
 \W[^a-z]

量词:表示数量的多少
硬性量词:指定了数目的多少
软性量词:没有指定数目的多少

 ? :0次、一次
 * :0次、多次
 + :1次、多次

?、*、+都属于软性量词

 {n} :指定出现n次
 {n,}:出现n次以上
 {n,m}:出现n-m次
{n}、{n,}、{n,m}都属于硬性量词

量词分为:
 贪婪的量词:它首先读第一个字符串正则匹配,如果第一个不成功,那么它继续往下匹配,如果有匹配的话,那么就把前面的那个字符串删掉,如果字符串长度不为0,那么它就继续往下匹配
 惰性的量词:首先看第一个字符是否匹配,如果这个字符不够的话,那么它继续读下一个字符,组成两个字符,一直这样下去,如果匹配,就删除掉,又一次重新开始(只以出现最少次匹配)
 支配性的量词:


选择类:用在分组里面的

复杂模式
复杂模式:
定义:它是由分组反向引用前瞻和其它一些强大的正则表达式功能组成

分组:是一对小括号包含一系列的字符组成

边界:就是字符串的开头和结尾。比如说我要控制用户名的长度为6-12之间,那么就可以用边界符^表示开头,$表示结尾,表示:
     var reg  =/^\w{6-12}$/gi
电话号码的正则表达式:
 var reg = /^1[358]\d$/g
Email正则表达式:
 \w{6,30}@\w{1,10}.\w{1,10}


2010年8月3日 09:56:20
   javascript继承

prototype:
 prototype是一个类的原型对象,而对象没有prototype.

对象冒充:
 构造函数使用this关键字,用this关键字给所有的属性和方法赋值,(即采用类声明的构造函数方法,因为构造函数只是一个函数,所以可使A的构造函数成为B函数的方法,然后调用它【B函数的那个方法】,B函数就会收到A构造函数中定义的属性和方法)
继承的例子:
 var A = {
  name:'zhangsan',show:function(){
   alert(this.name);
  }
 }
 var B = {};
 for ( var i in A) {
  //alert(i+"="+A[i]);
  B[i]=A[i];
 }
 B.show();

call方法:
 代替另一个对象调用它的方法或访问它的属性

apply方法:
 应用某一对象的一个方法,用另一个对象替换当前对象。和call方法的用法是一样的,不过这个方法里面要传一个参数,这个参数呢是一个数组

原型链:
 就是用原型方式绑定一个属性,但是这个属性是指向另外一个类的实例.
B.prototype = new A();  不能给它的属性绑定(B.prototype.a=new A(); 这样是错误的) 

大括号里面的永远是对象,中括号里面的永远是数组,/这个里面的是正则表达式/

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值