标签:
1.1什么是JavaScript(表示网页行为的语言)
历史:
1.JavaScript是一种专门设计用来给网页曾加交互性的编程语言,其代码通常嵌入在网页中。
2.最初由Netscape公司发明,交给欧洲计算机制造商协会(ECMA)。
3.ECMA将JavaScript标准化,将其命名为JavaScript,使其成为一个通用、跨平台、中立与厂商的脚本语言。
4.Netscape最初给JavaScript起的名字是LiveScript。
概念:
1.JavaScript与Java语言基础语法相同的部分(包括大小写 敏感、运算符、表达式、语句、注释等)
2.不同的是 JavaScript是一种解释型语言,这意味着JavaScript代码不需要预习编译就可以执行
3.JavaScript是一种脚本语言,通常只能通过web浏览器去完成某种操作
4.JavaScript因为需要浏览器,JavaScript只能局限哎浏览器环境中
5.JavaScript目的在于为网站增加可用性,so不允许读写用户文件(cookies除外),只允许来自同域的交互,
不读取历史记录,不能为上传的表单设置值
1.2JavaScript能做什么
概念:JavaScript专门针对网页编程的脚本语言,可用完成如下任务
1.给程序员一种全面控制HTML网页中所有元素的能力(增加、删除、修改元素包括元素的属性)
2.在HTML中放入动态文本
3.响应用户在使用网页时产生的事件
4.用于校验用户输入的数据
5.检测访问者的浏览器
6.用于创建cookies
1.3JavaScript技术体系
JavaScript技术体系包含五个方面的内容:
1.JavaScript核心语言定义:每一种编程语言都有自己的核心语法,包括数据类型、变量、常量、运算符、语句
2.原生对象和内置对象:为方便程序员工作,类似Java类库的API(基于核心语言),ECMA发布JavaScript时同样附带了一些称为内置对象的程序
3.浏览器对象模型BOM:网页是嵌入在浏览器中运行,我们有时候需要对浏览器的导航栏、浏览器窗口等进行控制。
JavaScript提供了一系列与浏览器相关的程序,来方便我们队浏览器进行控制
4.文档对象模型DOM:为了通过程序对网页上所有元素进行控制,并且可以动态修改网页,JavaScript提供了一个可以控制网页文档上所有元素的一系列特定程序--文档对象模型
5.事件处理模型:为响应网页事件,JavaScript中定义了一些处理网页事件的机制。通过此机制,我们可以在JavaScript脚本代码中将自己编写的用于处理事件的JavaScript代码
与特定网页事件绑定在一起,从而实现网页事件触发时执行相应的JavaScript代码
注:JavaScript核心语言以及内置对象是标准化的(所有浏览器都是一样的),而DOM,BOM事件处理模型却非标准化,存在不兼容问题
1.4将JavaScript添加到XHTML文档中啊
几种方式:script、或者script src 外联
1.4.1使用<script>元素
1.4.2链接外部脚本
1.4.3将脚本包含在XHTML事件处理程序中
概念:为标签绑定onclick事件
1.5JavaScript变量
概念:JavaScript中的变量是用var运算符(variable的缩写)加变量名定义,JavaScript是弱类型语言,定义变量时无需明确的数据类型声明,而且变量不一定要初始化
1.6JavaScript数据类型(5种原始类型Undefined、Null、Boolean、Number和String)
1.6.1原始数据类型
1)typeof运算符(用于判断是否是原始类型,是的话进一步判断是那种类型,然后返回判断)alert(typeof abc) alert(typeof 90)
2)Undefined类型(未定义):当声明变量未初始化,该变量的值是undefined
3)Null类型(空型),只有一个值null,但undefined是null派生来的,所有JavaScript把他们定义为相等的
注:null表示尚未存在的对象,而undefined是声明了变量但未对其初始化赋予该变量的值
4)Boolean类型(布尔值:有两个值true和false)
5)Number类型(这种类型可以表示32位的整数,还可以表示64位的浮点数)
注:几个特殊值也被定义为Number类型:
1.Number.MAX_VALUR(表示最大外边界)
2.Number.MIN_VALUR(表示最小外边界)
注:所有JavaScript数都必须在这两个值之间
3.生成数字大于最大外边界时JavaScript会赋值Number.POSITIVE_INFINTY(意味不在有数字值)(无穷大值)
专门表示Number.POSITIVE_INFINTY的值为Infinity
4.生成数字小于最小外边界时JavaScript会赋值Number.NEGATIVE_INFINITY(意味不在有数字值)(无穷大值)
专门表示Number.NEGATIVE_INFINITY 的值为-Infinity
注:当返回的是无穷大值那么生成结果不能在用于计算,由于无穷大数可以是正数或者负数,可以对任何数调用isFinit()方法,确保概数不是无穷大
5.NaN(表示非数(Not a Number)):这种特殊类型一般出现在转换类型失败时,不可用于计算,而且它与自己不同(自己和自己严格相等是为false值)
6)String类型(唯一没有固定大小的原始类型,可以用字符串储存0或更多的Unicode字符,由16位整数标识(Unicode是一种字符集))
特点:首字符从0开始,可以使用“”或者‘’声明
7)数据类型转换(JavaScript中一切数据实际上都是一个伪对象,意味有属性和方法)
1.toString()方法,返回字符串
2.parseInt()和parseFloat(),前者转换为整数,后者转换为浮点数
3.Boolean(value)方法:把给定的值转换成Boolean
4.Number(value)方法:把给定的值转换成数字(可以是整数或者浮点数)
5.String(value)方法:把给定的值转换成字符串(优点在于转换布尔值返回字符串而不报错(NaN))
1.6.2引用数据类型(对象)(引用数据类型:对象;JavaScript的运行时间库中,提供了大量封装好的对象给我们使用,同时,还可以创建自定义对象)
对象的三种类型:
原生对象:
所谓原生对象是JavaScript提供的、独立于宿主环境的对象,这些对象在JavaScript程序执行时就已存在,就是ECMA标准中定义的对象
包括:
Object、Function、Arrat、String、Boolean、Number、Date、Rate、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
内置对象:内置类对象JavaScript中提供的、独立于宿主环境的对象,这些对象在JavaScript程序执行时就已经存在。内置对象实际上也是原生对象的一种,但是与原生对象不同的是
内置对象不需要显示地初始化,因为它已经初始化了。ECMA-262中只定义了两个内置对象:Global和Math
宿主对象:
宿主对象是指与浏览器环境即浏览器有关的对象。所有的BOM和DOM对象都是宿主对象
注意:JavaScript中实际上并没有传统意义上的类。JavaScript中定义“对象定义”逻辑上与其它编程语言中的类是相似的。避免混淆,用类的术语
1)Object类
概念:JavaScript中的所有类都由Object类继承而来,Object类中的所有属性和方法都会出现在其他对象中。所以理解了Object类,就可以更好地理解其他类
Object类具有下列属性:
1.constructor(翻译:函数构造器、创建者)——对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数
2.prototype(翻译:原形)——对该对象的对象原形的引用。对于所有的类,它默认返回Object类的一个实例
Object类的几个方法:
1.hasOwnProperty(property)——判断对象是否有某个特定的属性。必须用字符串指定该属性
2.isPrototypeOf(object)——判断该对象是否为另一个对象的原型
3.propertylsEnumerable(property)——判断给定的属性是否可以使用for...in语句进行枚举
4.toString——返回对象的原始对象的原始字符串表示。对于Object类,ECMA-262没有定义这个值,所以不同的JavaScript实现有不同的值
5.valueOf——返回最合适该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值相同
2)原始数据类型包装器类
概念:JavaScript中的Boolean、Number和String类分别是JavaScript原始数据类型Boolean、Number和String的包装器类。
这些对象在JavaScript实际编程很少使用,所以我们最好还是使用原始值。Boolean、Number和String类的所有属性和方法都可应用于原始值上,因为他们是为对象
在实际开发中如果要用到这些类的属性和方法
3)Array类 (在JavaScript中创建一个数组的方法是使用Array类)
创建数组方法 var avalues = new Array(20)
注:如果事先知道了数组的长度可直接在()内定义
数组最多添加:4294967295项
4)Date类 (JavaScript中的Data类基于java.util.Date类的早期版本)
概念:和Java一样,JavaScript把日期储存为距离UTC时间1970年1月1日凌晨12点的毫秒数
注:UTC是指Universal Time Code,即通用时间代码(也叫作格林尼标准时间)的缩写,是所有时区的基准标准时间。
以毫秒数储存时间可以确保Java和JavaScript免受恐怖的“千年虫”问题的侵害,该问题在20世纪90年代后影响了许多较老的大型计算机
计算机可以精确地表示出1970年1月1日之前及之后285616年的日期。
方法:声明时间(var b = new Date(); )
parse()和UTC()两种方法
var d = new Date(Date.parse(“May 25 ,2004”));
var b = naw Date(Date.UTC(2003,1,5));
注:使用该方法必须声明年和月
5)Global类
概念:Global类是JavaScript中最特别的对象,它不需要声明和初始化。
如之前介绍的函数:isNaN()、isFinite()、parseInt()、和parseFloat()等,看起来都像独立的函数。
实际上,他们都是Global类的方法。而且Global类的方法不止这些。
encodeURI()和encodeURIComponent()方法用于编码传递给浏览器的URI(统一资源标识符)。
有效的URI不能包含某些字符,如空格。这两个方法用于编码URI,这样专门的UTF-8编码替换所有的非有效字符,就可以使浏览器仍能够接受并且理解他们)
这两个方法的主要区别是:
1)encodeURI()方法用于处理完整的URI,不对URI中的特殊字符进行编码
2)encodeURIComponent()用于处理URI的一个片段,对发现的所有非标准字符进行编码
6)instanceof运算符
概念:在使用typeof运算符时采用引用类型储存值会出现一个问题,无论引用的是什么类型,无论引用的是什么类型的对象,
它都返回“object”。ECMAScript引入另一个Java运算符instanceof类解决这个问题。
instanceof运算符与typeof运算符相似,用于识别正在处理的对象的类型。
typeof方法不同的是,instanceof方法要求开发者明确地确认对象为某种特定类型
1.7函数 (一组可以随时随地运行的语句)
关键字:function
function a (){}
js学习
标签:
原文地址:http://www.cnblogs.com/bengkuidanao/p/5766477.html