RIA(Rich Internet Applications)丰富互联网程序,具有高度互动性、丰富用户体验以及功能强大的客户端。
RIA最突出的特点为“Rich”,同时RIA最核心的部分也体现在“Rich”中。“Rich”包含了两层含义。
丰富的数据模型:RIA技术提供了多种数据模型来处理复杂的数据操作,如json、xml。使用RIA数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快,且数据往返于服务器的次数更少的用户界面。
丰富的界面元素:RIA技术提供了比HTML更为丰富的界面表现元素,为用户提供好的使用体验。
1.JavaScript 基本概念
1).JavaScript 一种基于对象和事件驱动的具有安全性能的脚本语言
事件:一件事情
脚本语言,不用编译,浏览器解释运行。
基于对象:面向对象编程
脚本语言:解释性语言,解释性语言(不用编译,写完运行就行)javascript是由浏览器解释运行
基于对象:它有一些内置对象可以给我们使用。它不完全具备面向对象的三大特征(封装,继承,多态)。javascript中的重写,重载,继承全是模拟。(了解就行)
事件驱动:javascript的执行全是由事件触发的。
2).组成部分:Javascript 的官方名称是 “ECMAScript”
ECMAScript,描述了该javascript组成语言的语法和基本对象。
文档对象模型(DOM),描述处理网页内容的方法和接口。
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
3).Javascript的历史,现状和未来
历史:前身:网景公司(Netscape) 的Livescript 。网景与Sun公司共同將之推为脚本语言的标准,改名為Javascript。
现状:2005年,Ajax热潮为JavaScript社区注入新的血液 。
未来:在未来很长一段时间内都是作为客户端处理的重要程序。
4).Javascript的作用:
1网页特效;2表单验证;3减少用户操作;4增加安全性;5减少编写和维护代码的工作量;6响应事件;7游戏;
5).javaScript与Java的不同
1.Java代码必须编译才能执行,而JavaScript不需编译,只需由浏览器解释执行;
2.Java和JavaScript虽然都可以在服务器与客户端执行,但Java多运行于服务器,而JavaScript多用于客户端;
3.JavaScript使用的是松散的数据类型,而Java使用的是严谨的数据类型。
6)编写第一个Javascript程序
1.开发工具:任何可以编写 网页文档的软件都可以用来开发 Javascript。
2.加入Javascript代码
(1)直接加入HTML文档中 可以写在任意位置
注意:这一段标签中并不包含任何程序代码,而是程序写在另一个文件中,利用 SRC 将该外部文档指出,加载执行。
7)注释
1注释的作用:
Javascript 注释可用于增强代码的可读性。
2 注释的使用方式
1.单行注释: // 注释的内容
2.多行注释: /* 注释的内容 */
8)注意事项
1.HTML标签不区分大小写
2.Javascript语法区分大小写
3.结束处分号可选(好的编程习惯不省略分号)
4.要用英文状态的标点符号
2.变量 : var 变量名称=值
js属于松散类型的程序语言 /弱类型
java 属于严谨类型的程序语言 /强类型
var a=1;//数值
var b=1.1;//数值
var c=“a”;//字符串
var c=‘abc’;//字符串
var t=true;//布尔
3.标识符: 字母,数字,下划线和$组成的 不能以数字开头 不能是关键字
4 .数据类型
1.基本数据类型
数值number 字符串string 布尔 boolean
2.复合/复杂数据类型
数组 对象(String Math Date Number Boolean)
1)数组Array 长度可变,可以存储任意类型数据,下标从0开始
1.定义:
一维 var a=new Array(10); a[0]=“abc”;
var a=new Array(“abc”,1,2,3);
var a=[“abc”,1,2,3];
二维 var a=new Array();a[0]=new Array(1,2,3);
var a=new Array(new Array(1,2,3),new Array(4,2,7));
var a=[[1,2,4],[3,5,6],[6,7,8]];
2.length 属性 长度
join("-");以 “-” 作为连接数组中元素的分隔字符,返回拼接后的数组
toString():将数组的内容转成以逗号隔开的字符串 。
a.concat(b) 将数组b连接到a数组之后
a.reverse() 数组元素反转
sort() 排序
slice(start,end) 返回子数组 下标 包头不包尾
2)对象(String Math Date Number Boolean)
//String对象
var s=new String("abc汉字");
//length 属性可返回字符串中的字符数目
document.write(s.length+"<br>");
//方法
document.write(s.slice(-2, 5)+"<br>");//如果 start 为负 它将被替换为 length+start。
document.write(s.slice(3, 5)+"<br>");//如果 start 为负 它将被替换为 length+start。
document.write(s.substring(-1, 3)+"<br>");//如果 start 或 end 为负数,那么它将被替换为 0。
//Date 对象
var d=new Date();
document.write(d+"<br>");
//在页面上分别打印输出年份、月份、日期、星期几、小时、分钟和秒
document.write("年份"+d.getFullYear()+"<br>");
document.write("月份"+(d.getMonth()+1)+"<br>");
document.write("日期"+d.getDate()+"<br>");
document.write("星期"+d.getDay()+"<br>");
document.write("小时"+d.getHours()+"<br>");
document.write("分钟"+d.getMinutes()+"<br>");
document.write("秒"+d.getSeconds()+"<br>");
//d.setFullYear(2016, 2, 3)
document.write(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+"<br>");
document.write(d.toLocaleDateString()+"<br>");//本地日期 2017-09-09
document.write(d.toLocaleString()+"<br>");//本地日期和时间 2017-09-09 11:11:11
document.write(d.toLocaleTimeString()+"<br>");//本地时间 11:11:11
//Number
var myNum=new Number(value);
var myNun=Number(value)
document.write(Number.MAX_VALUE+"<br>");
document.write(Number.MIN_VALUE+"<br>");
//Boolean 对象
var b=new Boolean(true);
document.write(b.toString()+"<br>");
//Math
document.write(Math.PI+"<br>");
3).特殊数据类型
null空 undefined 未定义
(1)null:null 在程序中代表“无值”或者“无对象”。可以通过给一个变量赋值 null 来清除
变量的内容。
(2)undefined:声明了变量但从未赋值或这对象属性不存在
5 数据类型的隐式转换
1) 数据类型的隐式转换:直接转,默认的规则
(1)JavaScript 属于松散类型的程序语言
①变量在声明时不需要指定数据类型。
②变量由赋值操作确定数据类型。
(2)不同类型数据在计算过程中会自动进行转换
①数字+字符串:数字转换为字符串
②数字+布尔值:true 转换为 1,false 转换为 0
③字符串+布尔值:布尔值转换为字符串 true 或 false
④布尔值+布尔值:布尔值转换为数值 1 或 0
2)显式转换:利用转换的方法
(1)数据类型转换函数
toString() 变量.toString()转换成字符串
parseInt(值) 转换成整数:parseInt(“123.4abc”)>123 不是整数:parseInt(“abc123.4”)>NaN
parseFloat(值) 转换成小数:parseFloat(“123.4abc”)>123.4 不是小数:parseFloat(“abc123.4”)>NaN
typeof:查询数值当前类型,返回 string/number/boolean/object
Number() 转换成数值:Number(“123.4”)>123.4 不是数值:Number(“123.4abc”)/Number(“abc123.4”)> NaN
(2)内建函数
NaN:not a number是Number对象的一个静态的属性,非常特殊,它不是数字,所以任何数跟它都不相等,甚至 NaN本身也不等于 NaN
isNaN(str): is not a number,判断文本是否为数值,false 为数值,true 为非数值 isNaN(“123”)>false
eval() 将字符串重新运算var v=“1+2*3”; eval(v)>7
6.函数 关键字function
定义:function 函数名(变量名1,变量名2…){
函数体
}
调用: 函数名();
可以使用return语句来返回函数值,但不需要有返回值类型
7.变量的作用域
1局部变量:在函数中声明,必須使用 var声明
2全局变量:在函数外声明,无须使用 var声明
-
表达式和运算符
运算符是完成操作的一系列符号。表达式是运算符和操作数的组合。
1)算术运算符+ - * / % ++ –
2)逻辑运算符 && || !- 赋值运算符= += -= *= /= %=
4)比较运算符 > >= < <= == !=
5)字符串运算符将两个字符串值连结在一起用+。还可以使用简写的方式(+=)来进行表达。
6)注意事项
(1)判断是否相等要用==,不能用equals
严格相等: “=”类型、数值都相同。
非严格相等:!
例如:var a = “10”; var b = 10;
a == b 相等 a === b不相等 a !== b 相等
(2)++i和i++的区别
(3)用表达式表示i大于x,小于y,应: i>x&&i<y (而不是x<i<y)
9.语句
语句用于实现基本的程序控制和操作功能.
1)if条件选择语句
2)for循环语句
var c=new Array(“1”,“2”,3,4,5,6,“abc”,“在”,1.3);
for ( var i = 0; i < a.length; i++) {
document.write(a[i]+"
");
}3)for(…in…)语句
for ( var i in a) {
document.write(a[i]+"
");
}
4)break语句与continue语句的区别
A:break语句结束当前的while,for循环以及do…while循环,直接跳出循环,执行循环下面的语句.
B:continue语句结束本次循环 - 赋值运算符= += -= *= /= %=