什么是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);
var num = Boolean(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():它是一个万能方法
闭包
定义:闭包就是函数调用外部定义的变量
对象基础
定义: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.属性:将属性绑定到原型上面
BOM(浏览器对象模型):
BOM提供了独立于内容,而与浏览器窗口进行交互的对象
所有的BOM和DOM都不能用来继承
Window →|document → |links
|images
|location
|Frames :是一个框架集合
|History :操作浏览器的,比如说浏览器上面的前进、后退等
|location 连接
|navigator
|screen
DOM(文档对象模型):
每个html里面的节点都对应一个对象
独立于网页内容的
Form表单:
表单是一个高级html组件
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
事件
定义:
事件是DOM模型的一部分,
事件也是一个特殊的方法
事件和函数是息息相关的
事件触发函数,而函数监听事件(一个事件对应一个函数)
触发事件,调用函数(事件不是通过浏览器直接得到的,而是通过操作系统得到的)
事件监听函数/处理函数:
定义:事件是用户或浏览器进行特定的行为,用于响应某个事件而调用的函数
事件函数分配方式:
1.javascript
2.HTML
它不属于HTML事件,它只是分配到HTML里面的
所有HTML里面的标签都有
事件分为:
1.鼠标事件:
用户进行特定操作的时候触发
2.键盘事件:
使用键盘进行操作的时候触发
|按下事件
|按键事件
|放开事件
3.HTML事件:
窗口页面发生改变的时候触发
突发事件:底层DOM结构发生改变的时候触发
HTML事件和鼠标事件、键盘事件没有一点关系的
事件原理
是一个树状结构图,根节点就是window,所有的标签和事件都是它的子节点,它是通过冒泡来一层一层往上执行,最终通过window来完成这个事件
所有的事件都是通过第三方(window)来完成的
模块对话框:
当你产生一个对话框之后,别的事件就不能对这个对话框进行操作了
正则表达式
正则表达式是通过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(); 这样是错误的)
大括号里面的永远是对象,中括号里面的永远是数组,/这个里面的是正则表达式/
分享到:
相关推荐
本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法...
《Head First JavaScript源码》是2010年出版的一本中文版JavaScript学习书籍的源码,这本书以其独特的视觉设计和易理解的方式深入浅出地介绍了JavaScript编程语言。JavaScript是一种广泛应用于网页和网络应用的脚本...
《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...
《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...
Author David Herman, with his years of experience on Ecma’s JavaScript standardization committee, illuminates the language’s inner workings as never before—helping you take full advantage of ...
在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...
JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...
JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨...
《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第1章 JavaScript程序设计案例教程.pdf《JavaScript程序设计案例教程》课件(共13章)第...
简单地说,JavaScript是一种运行在浏览器中的解释型的编程语言。在Web世界里,只有JavaScript能跨平台、跨浏览器驱动网 页,与用户交互。 《JavaScript全栈教程》是小白的零基础JavaScript全栈教程。从基础入门在...
这两本书籍,"JavaScript从入门到精通(第2版)" 和 "高性能JavaScript",分别涵盖了JavaScript的基础知识和优化技巧,对于想要深入理解并提升JavaScript技能的开发者来说是宝贵的学习资源。 "JavaScript从入门到精通...
JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在客户端脚本方面扮演着核心角色。这份"javascript试题(附答案)"是为初学者设计的,旨在帮助他们更好地理解和掌握JavaScript的基础知识。 一、变量与数据...
ArcGIS JavaScript API 介绍与示例 ArcGIS JavaScript API 是 ESRI 提供的一种基于 JavaScript 的开发工具,允许开发者创建交互式的 Web 地图应用程序。本文将对 ArcGIS JavaScript API 进行详细的介绍,并提供多个...
JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,高分项目)。 JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,高分项目)。 JavaScript 动态网页设计期末大作业CHASMISH眼镜网(纯手打,...
jQuery将JavaScript编程量精简为寥寥数行代码,使JavaScript变得更直观,更富魅力。iQuery还允许同时为一个或多个元素设置样式,使得通过JavaScript操纵CSS变得分外轻松。 在这本面向项目的精品书籍的指引下,即使是...
JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责实现客户端的交互效果、动态更新内容以及处理用户输入。在"JavaScript结课大作业.zip"这个压缩包中,我们可以推测这是一份关于JavaScript编程的...
3- JavaScript参考手册.chm 4- JavaScript参考手册中文版.chm 5- Javascript高级教程.CHM 6- JavaScript使用手册.chm 7- 网页制作完全手册.chm 8- 样式表滤镜中文手册.CHM 9- 样式表中文手册2.0.CHM
JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...
《JavaScript权威指南(第6版)》全面介绍了JavaScript语言的核心,以及Web浏览器中实现的遗留和标准的DOM。它运用了一些复杂的例子,说明如何处理验证表单数据、使用cookie、创建可移植的DHTML动画等常见任务。...
JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)...