JavaScript与Java不同
• JS是Netscape公司的产品,Java是Sun公司的产品。
• JS是基于对象,Java是面向对象。
• JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
• JS是弱类型,Java是强类型。
• JavaScript的特点
• 解释性:由浏览器直接解释执行
• 用于客户端
• 安全性:不允许直接访问本地硬盘
• 简单易用:脚本式语言最大的优点是易学易用,是一种轻量级的程序语言
• 动态性:他可以直接对用户或客户输入作出响应,无须经过web服务程序,他对用户的反映响应,是采用以事件驱动的方式进行的。
• 跨平台性:只要是可以解释Js的浏览器都可以执行,和操作系统无关
JavaScript的局限性:浏览器有很多种,每种对JavaScript的支持程度是不一样的,效果会有一定的差距。
• JavaScript的作用
– 校验用户输入的内容:用户输入内容的校验常分为两种
• 格式性校验:JavaScript
• 功能性校验
– 有效地组织网页内容
– 动态地显示网页内容:时钟显示等
– 动画显示
当有多个html页面使用到相同的JS脚本时,可以将js代码封装到一个文件中,只要在script标签的src属性引入一个js文件。(
• 注意:
– JavaScript程序内容必须置于标签中,type=“text/javascript”用于区别其他脚本程序语言。
– 对于不支持javascript程序的浏览器,标记之间的内容就会被隐藏起来,否则就会被当做html的内容显示出来,而对于支持javascript程序的浏览器,这对标签不起任何作用。
– Javascript程序对大小写字母是敏感的,即在同一个程序语句中如果使用大写或小写字母将代表不同的意义。
– 使用注释/*多行注释*/ //单行注释
– Javascript程序在html文件中的位置没有严格的规定,但根据Javascript程序的功能和作用,一般将其置于3种位置:
• 在html
标记中的任何位置。如果所编写的Javascript程序用于输出网页内容的,应该将Javascript程序置于html文件中需要显示该内容的位置。• 在html
标记。如果所编写的Javascript程序需要在某一个html文件中多次使用,那就应该编写Javascript函数,并将函数置于html文件的标记中。• 在一个单独的js文件中。如果编写的Javascript程序需要在多个html文件中使用,或Javascript程序内容很长时。
• JavaScript主要包括3种数据类型:简单数据类型、特殊数据类型、复合数据类型。
• 简单数据类型:数值型、字符型、布尔型
• 复合数据类型:对象、数组、函数
• 特殊数据类型:null、undefined
转义字符
字 符 |
说 明 |
示 例 |
\b |
退格符 |
alert(“这是第一句 \b 这是第二句”) |
\f |
换页符 |
alert(“这是第一句\f 这是第二句”) |
\n |
换行符 |
alert(“这是第一句\n 这是第二句”) |
\r |
回车符 |
alert(“这是第一句\r 这是第二句”) |
\t |
制表符 |
alert(“这是第一句\t 这是第二句”) |
常量和变量
• 常量:不能改变的数据。可以为整型、逻辑型、字符串型等。
• 变量:在计算机内存中暂时保存数据的地方。用关键字var声明或用赋值的形式。var i;i=10;var count=10;var i,j;
• 变量命名规则
– 第一个字符必须是字母(大小写均可)、下划线(_)或美元符($);
– 后续字符可以是字母、数字、下划线或美元符;
– 变量名称不能是保留字;
– 字符大小写敏感;
• 变量可以不声明直接使用 k=100;(k没定义就直接用)
• 变量弱类型检查,且可随时改变数据类型
运算符和表达式
• 运算符对一个或多个变量或值(操作数)进行运算,并返回一个新值
• 根据所执行的运算,运算符可分为以下类别:
– 算术运算符
– 比较运算符
– 逻辑运算符
– 赋值运算符=、+=、-=、*=、/=、%=
– 位运算符(很少用)
算术运算符
|
说 明 |
示 例 |
|
+ |
加 |
a = 5 + 8 |
|
- |
减 |
a = 8 - 5 |
|
/ |
除 |
a = 20 / 5 |
|
* |
乘 |
a = 5*19 |
|
% |
取模-两个数相除的余数 |
10 % 3 = 1 |
|
++ |
一元自加。该运算符带一个操作数,将操作数的值加 1。返回的值取决于 ++ 运算符位于操作数的前面或是后面 |
|
++x将返回 x 自加运算后的值。 x++ 将返回 x 自加运算前的值 |
- - |
一元自减。该运算符只带一个操作数。返回的值取决于 -- 运算符位于操作数的前面或是后面 |
--x 将返回 x 自减运算后的值。 x-- 将返回 x 自减运算前的值 |
|
比较运算符
运算符 |
说 明 |
示 例 |
= = |
等于。如果两个操作数相等,则返回真。 |
a = = b |
!= |
不等于。如果两个操作数不相等,则返回真。 |
Var2 != 5 |
> |
大于。如果左边的操作数大于右边的操作数,则返回真。 |
Var1 > var2 |
< |
小于。如果左边的操作数小于右边的操作数,则返回真。 |
Var2 < var1 |
<= |
小于等于。如果左边的操作数小于或等于右边的操作数,则返回真。 |
Var2 <= 4 Var2 <= var1 |
>= |
大于等于。如果左边的操作数大于或等于右边的操作数,则返回真。 |
Var1 >= 5 Var1 >= var2 |
逻辑运算符
运算符 |
值 |
说 明 |
与 ( &&) |
expr1 && expr2 |
只有当 expr1 和 expr2 同为真时,才返回真。否则,返回假。 |
或 ( || ) |
expr1 || expr2 |
如果其中一个表达式为真,或两个表达式同为真,则返回真。否则,返回假。 |
非 (!) |
!expr |
如果表达式为真,则返回假。如果为假,则返回真。 |
流程控制
• 所谓结构化程序设计思想,就是要使所设计的程序给人一种一目了然的感觉,条理清晰,模块化,书写层次分明,要求:
– 顺序结构:一条接一条,自上而下
– 选择结构:判断给定条件,根据不同情况做不同处理
– 循环结构:多次重复执行同一系列命令
if 语句
if(条件)
{
JavaScript代码;
}
switch 语句
switch (表达式)
{
case 常量1 :
JavaScript语句;
break;
case 常量2 :
JavaScript语句;
break;
...
default :
JavaScript语句;
}
q for循环
例:
var i;
for (i=0; i<10; i++)
{
// 语句;
}
q while循环
while(循环条件)
{
//语句;
}
q do-while循环
do
{
//语句;
}while(循环条件);
JavaScript 函数
• 函数实际上就是一段有名字的程序,这样,在整个程序的任何位置,只要使用该名字,就会执行由这段名字命名的程序。
• JavaScript使用函数的目的有两个
– 为了更好地组织程序,当需要重复地使用一段程序时,就应该将这段程序写成函数。
– 用于网页中的事件处理。
内置函数
• eval 函数: 用于计算字符串表达式的值
该函数可以对以字符串形式表示的任意有效的 JavaScript代码求值。eval() 函数有一个参数,该参数就是想要求值的代码。
isNaN 函数:用于验证参数是否为 NaN(非数字)
isNaN(numValue)
返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
如果值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false
自定义函数
• 定义函数:
function 函数名([参数1,参数2,…]){
语句;
}
• 调用函数:
函数调用一般和表单元素的事件一起使用,调用格式为:事件名=“函数名” ;
函数的参数
参数是由函数的使用方传递到函数体中的变量,用于为函数中的操作提供相应的信息和数据。
• 参数的传递
– 按值传递:传递的只是原变量的一份拷贝,因此,如果在函数中改变了这个参数的值,原变量不会跟着改变,它将保留原有的值。
– 按地址传递:这时传递的是原变量的内存地址,即函数中的参数和原变量是同一个变量。因此在函数中改变了参数值,原变量也会随之改变。
注意:如果参数的数据类型是对象,其传递方式按地址传递的
变量的作用域
JavaScript的变量分为全局变量和局部变量。全局变量是作用在全程序范围内的变量,它声明在函数体外;局部变量是定义在函数体内的变量,它仅仅在函数体内起作用。
JavaScript 对象简介
• 内置对象
• 浏览器对象
• 自定义对象
• 注意:一个对象在被引用之前,必须存在。另外在JavaScript中对于对象属性和方法的引用,有两种情况:
– 该对象为静态对象,表示在引用该对象的属性或方法时不需要为它创建实例;
– 在引用该对象属性和方法时必须为它创建一个实例,叫做动态对象。
String 对象
创建字符串有两种不同方法 :
• 使用 var 语句 var newstr = “这是我的字符串"
• 创建 String 对象
var newstr = new String (“这是我的字符串")
• 字符串相加:+或+= (字符串的连接)
• 在字符串中使用特殊字符
“sdfg’ × “她说:’今天不出门’” √ 或使用转义字符 “她说:\”今天不出门\”” “\n”
• 比较字符串是否相等 == != user==null|| user==“”
• 数字字符串和数值的相互转换
String相关函数
• 属性:length
• 方法:
– charAt(index): 返回指定索引位置处的字符。
– indexOf(subString[,startIndex]): 返回 String 对象内第一次出现子字符串的字符位置。
– substr(start [, length ]):返回一个从指定位置开始的指定长度的子字符串。
– substring(start, end):返回位于 String 对象中指定位置的子字符串。
– toLowerCase:返回一个字符串,该字符串中的字母被转换为小写字母。
Math 对象
|
名称 |
说 明 |
属性 |
PI |
∏ 的值, 约等于 3.1415 |
LN10 |
10 的自然对数的值,约等于 2.302 |
|
E |
Euler 的常量的值,约等于 2.718。Euler 的常量用作自然对数的底数 |
|
|
abs(y) |
返回 y 的绝对值 |
sin (y) |
返回 y 的正弦,返回值以弧度为单位。 |
|
cos (y) |
返回 y 的余弦,返回值以弧度为单位 |
|
tan (y) |
返回 y 的正切,返回值以弧度为单位 |
|
min (x, y) |
返回 x 和 y 两个数中较小的数 |
|
max (x, y) |
返回 x 和 y 两个数中较大的数 |
|
random |
返回0-1的随机数 |
|
方法 |
round (y) |
四舍五入取整 |
sqrt (y) |
返回 y 的平方根 |
Math.random( ) :产生0-1的随机小数
Math.round( ):四舍五入取整,如9.34 取整为9
数学运算 Math对象
• Math.ceil(x)返回>=x的最小整数
• Math.floor(x) 返回<=x的最大整数
• Math.pow(x,y)返回x的y次方
• Math.random()返回0-1之间的随机小数
• Math.round(x)返回x的四舍五入的整数
Date 对象
Data 方法的分组:
方法分组 |
说 明 |
setxxx |
这些方法用于设置时间和日期值 |
getxxx |
这些方法用于获取时间和日期值 |
Toxxx |
这些方法用于从 Date 对象返回字符串值 |
parsexxx & UTCxx |
这些方法用于解析字符串 |
用作 Date 方法的参数的整数:
值 |
整 数 |
Seconds 和 minutes |
0 至 59 |
Hours |
0 至 23 |
Day |
0 至 6(星期几) |
Date |
1 至 31(月份中的天数) |
Months |
0 至 11(一月至十二月) |
Set 方法:
方法 |
说明 |
setDate |
设置 Date 对象中月份中的天数,其值介于 1 至 31 之间。 |
setHours |
设置 Date 对象中的小时数,其值介于 0 至 23 之间。 |
setMinutes |
设置 Date 对象中的分钟数,其值介于 0 至 59 之间。 |
setSeconds |
设置 Date 对象中的秒数,其值介于 0 至 59 之间。 |
setTime |
设置 Date 对象中的时间值。 |
setMonth |
设置 Date 对象中的月份,其值介于 1 至 12 之间。 |
Get 方法:
方法 |
说明 |
getDate |
返回 Date 对象中月份中的天数,其值介于 1 至 31 之间 |
getDay |
返回 Date 对象中的星期几,其值介于 0 至 6 之间 |
getHours |
返回 Date 对象中的小时数,其值介于 0 至 23 之间 |
getMinutes |
返回 Date 对象中的分钟数,其值介于 0 至 59 之间 |
getSeconds |
返回 Date 对象中的秒数,其值介于 0 至 59 之间 |
getMonth |
返回 Date 对象中的月份,其值介于 0 至11 之间 |
getFullYear |
返回 Date 对象中的年份,其值为四位数 |
getTime |
返回自某一时刻(1970 年 1 月 1 日)以来的毫秒数 |
To 方法:
方 法 |
说 明 |
ToGMTString |
使用格林尼治标准时间 (GMT) 数据格式将 Date 对象转换成字符串表示 |
ToLocaleString |
使用当地时间格式将 Date 对象转换成字符串表示 |
Parse 方法和 UTC 方法
方 法 |
说 明 |
Date.parse (date string ) |
用日期字符串表示自 1970 年 1 月 1 日以来的毫秒数 |
Date.UTC (year, month, day, hours, min., secs. ) |
Date 对象中自 1970 年 1 月 1 日以来的毫秒数 |
数组
• 声明数组
var 数组名 = new Array(数组大小);
• 常用属性
length:返回数组中元素的个数
• 常用方法
方 法 |
说 明 |
join |
将数组中的元素组合成字符串 |
reverse |
颠倒数组元素的顺序,使第一个元素成为最后一个,而最后一个元素成为第一个 |
sort |
对数组元素进行排序 |
• Array对象常用的属性是length,排序方法:sort
• 循环语句分为:for 循环、while循环、do-while循环
• Eval( )函数可以计算某个计算表达式的值,
isNaN( )函数可用于判断是否是一个数字
• String对象的indexOf( )方法用于查找子字符串
• Math对象的random( )方法可以产生0-1的随机数
• Date对象有setxxx( )方法用于设置日期和时间,getxxx( )方法用于获得日期和时间
Window 对象
• 窗口对象window是浏览器网页的文档对象模型结构中的最高级的对象,只要网页的html标记中包含有
或