一、
javascript语法
⊙了解什么是脚本程序和javascript
⊙javascript的脚本语法
⊙运算符
⊙程序的流程控制
⊙函数
⊙对象
⊙javascript的内部对象
⊙专门用于对象的语句
javascript简介
前身叫做livescript,是一种基于对象(Object)和事件驱动(Event Driven)、并具有安全性能的脚本语言。
javascript与java
是两个公司开发的两个不同的产品,作用与用途大不一样,但两者语法上有很多相似之处,javascript(基于对象)并不是java(面向对象)的子集。
javascript(大小写敏感)、jScript与ECMAScript
三者是不同组织开发的产品,大致相似。
http://developer.netspace.com
二、
脚本代码的位置
⊙放置在<script></script>标签对之间.
一个页面可以有多个script标签对,标签对之间的内容可以互相访问。这跟将内容放置在同个标签内效果一样。
<script language="javascript">
<!-
....
-->
</script>
⊙放置在一个单独的文件中。
<script src="script.js" language="javascript">
⊙将脚本程序代码作为属性值
<a href="javascript:alert('here!')">here</a>
<input type="button" value=test onclick="alert(new Date())">
⊙javascript中的标识符
标识符是指javascript中定义的符号,例如,变量名,函数名,数组名等。标识符可以由任意顺序的大小字母、数字、下划线和$符号组成,但标识符不能以数字开头,不能是javascript中的保留关键字。
⊙javascript严格区分大小写
⊙javascript程序代码的格式
每条功能执行语句的最后必须用分号(;)、分号符、换行或大括号、小括号这样的分隔符隔开。
⊙javascript程序的注释
/*...*/ 与 //
三、
基本数据类型与常量
⊙整型常量
十六进制以(零)0x或0X开头
八进制必须以(零)0开头,例如:0123
十进制的第一位不能是0,例如:123
⊙布尔值
true和false
⊙字符串型常量
可以是双引号也可以是单引号。
字符串中的特殊字符,需要用到转义字符。
⊙null常量
⊙undefined常量
四、
变量
●定义一个变量,系统就会为之分配一块内存,程序可以用变量名来表示这块内存中的数据。
●声明变量要使用var关键字(弱类型数据定义)
例如:var name;
●不事先声明变量而直接使用
例如: x=1234;
五、
运算符
●算术运算符
◆ “+” 特殊地,可以将字符串与其他的数据类型相连成一个新的字符串。
◆ “-”
◆ “x”
◆ “/”
◆ “%”
◆ “++”
◆ “--”
●赋值运算符
◆ “=”
◆ “+=”
◆ “-=”
◆ “*=”
◆ “/*”
◆ “%=”
●比较运算符(返回结果为true或false)
◆ “>”
◆ “<”
◆ “>=”
◆ “<=”
◆ “!=”
◆ “==”
●逻辑运算符(返回结果为true或false)
◆ “&&”
◆ “||”
◆ “!”
●位运算符
六、
程序的流程控制
●顺序结构
●if条件选择语句
●switch选择语句
●while循环语句
●do while循环语句
●for循环语句
●break与continue语句
七、
函数
●函数的作用与定义
定义一个函数的格式如下:
function 函数名(参数列表)
{
程序代码
return 表达式;
}
调用函数的几种方式:
1.函数名(参数值...)
2.变量=函数名(参数值...)
3.对于有返回值的函数调用,也可以在程序中直接使用返回的结果,例如: alert("sum="+suqare(2,3));
●全局变量与局部变量
●参数个数可变的函数
在函数内部使用arguments对象来访问调用程序传递的所有参数。
●创建动态函数
类似指向函数的指针。
■创建动态函数的基本语法格式:
var varName=new Function(argument1,...argumentN);
说明:
所有的参数都必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码。
例子:
var square=new Function("x","y","var result=x*x+y*y;return result");
alert(square(2,3));
●javascript中的系统函数
■encodeURI方法
返回对一个URI字符串编码后的结果。
■decodeURI方法
URI解码。
■parseInt方法
将一个字符串按指定的进制转换成一个整数,语法格式为:parseInt(numString,[radix])。如果没有指定第二个参数,则前缀为'0x'的字符串被视为16进制,前缀为'0'的字符串被视为八进制,所有其他字符串都被视为是十进制。
■parseFloat方法
将一个字符串转换成对应的小数。
■isNan方法
用于检测parseInt和parseFloat方法的返回值是否为NaN。
■escape方法
返回对一个字符串进行编码后的结果字符串。所有空格、标点、重音符号及如何其他非ASCii字符都用%xx编码替换。
■unescape方法
将一个用escape方法编码的结果字符串解码成原始字符串并返回。
■eval方法
将其中的参数字符串作为一个javascript表达式执行。
八、
对象
对象与对象实例
表达复杂数据类型的方式
■概念与C++一样。
◆区别:
可以为对象实例无限制地添加新的成员。
用"对象实例名.成员名"的格式访问,也可以用(对象实例["成员变量名"])的格式,例如,person1["age"]。
成员方法也可以赋值。注意:
person1.say=say();与person1.say=sya;结果不一样。加"()"则代表将say方法的返回结果赋值给person1.say,后者则是将方法的入口地址,赋值给person1.say。使得person1.say成为一个函数。
◎构造方法与this关键字
●为一个对象实例新增加的属性和方法,不会增加到同一个对象所产生的其他对象实例上。
●所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加的属性和方法会被增加到每个对象实例上。
●对象实例是用new关键字创建的,在构造方法中不要有返回结果的return语句。
●调用对象的方法时,需要使用"对象实例.成员方法"的形式,很显然,用作成员方法的函数被调用时,一定伴随有某个对象实例。this关键字代表某个成员方法执行时,运用该方法的当前对象实例,所以,this关键字一般只在用做对象成员方法的函数中出现。
◎在函数中修改参数值的问题
●将对象实例做为函数参数传递,对于对该实例参数的属性的修改,会作为全局影响。
九、
javascript的内部对象
动态对象
使用"对象实例名.成员"的格式访问其属性和方法。
静态对象
直接使用"对象名.成员"的格式来访问其属性和方法。
●Object对象
提供了javascript对象最基本的功能,其他javascript对象的基础。
Object对象提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数。如:var object1=new Object();
●String对象
动态对象,需要创建对象实例才可运用内部方法。
◆Length 获得字符串长度
◆charAt 方法返回字符串中,某个具体位置中的字符。
例如:"Stirng".charAt(0);//返回第一个字符
◆charCodeAt 返回的结果是字符的unicode编码。
◆indexOf 返回字符串中,所搜索字符串第一次出现的位置
function indexOf(subString,startIndex);
参数
subString必选。在 String 对象中搜索的子字符串。
startIndex 可选项。该整数值指对象内开始搜索的索引。若省略此参数,则搜索从字符串的起始处开始。
◆lastIndexOf 返回字符串中,所搜索字符串最后一次出现的位置,与indexOf相同.
◆match,search
◆replace,split(返回结果是字符串数组)
◆slice
◆substring 与slice类似
◆toLowerCase,toSuperCase 大小写转换。
●Math对象
math对象是一个静态对象,不能使用new关键字创建对象实例。应该直接使用"对象名.成员"的格式来访问其属性或方法,例如,var num=Math.random();
◆abs方法,返回数字的绝对值。
●Date对象
◆构造方法:Date(),Date(dateVal),Date(year,month,date)
●toString方法
十、
对象专用语句
①with(对象名称)
{
执行语句块;
}
当需要多次调用对象实例的属性及方法时,为简练代码,就需要用到。在with体内,可以省略对象实例名称,直接调用方法及属性。
②for...in语句:
for(变量 in 对象实例名)
{
语句块;
}
可以将对象的所有属性名,逐次以字符串的类型赋值给"变量"。语句体内达到可以调用所有属性的效果.
十一、
数组
Array对象
◆三种构造方法:
var arr=new Array();
var arr=new Array(Count);
var arr=new Array(Element1,Element2,....ElementN);
◆sort 排序方法
javascript可以写在哪?
答:1.可以写在网页内部,以<script></script>标签实现。
2.可以独立写在一个以.js的文件内。
3.以属性值的方式,嵌入html标签内。
描述javascript中的全局变量与局部变量的差异。
答:全局变量作用于整个javascript脚本,无论在何处都可调用此变量。
局部变量作用于函数体或"{}"括号之内。
描述对象的构造方法及this关键字的作用。
答:构造函数于javascript中是创建以对象的基本。this关键字能代表作为参数所被传递的对象。
- [游客] wo lai le 12/23 18:50
- [tangxin] 非常有道理 03/06 09:23
- [游客] 现在学校的教学已经不是那么回事了,还是得靠自学。 06/04 12:13
- [assemblyeaten] 顶一下 05/11 10:48
- [游客] eg 05/04 15:55
- [hacker_ld] 哈哈哈!!好文章! 04/30 22:35
- [游客] 其实,很多女孩子也不想那么学,只因考试的时候要考概念,,,,怪谁呢 03/15 17:43
- [游客] 呵呵,,,,好,,,2012 08/25 10:35
- [asshuke] 说的很好,我等菜鸟奋起直追呀! 08/14 11:24
- [xuyanghui] 很好啊,对我很有用的,很经典,谢谢坐着啦. 04/11 18:05
- [游客] 千术揭密教学www.pwmhg.cn 马洪刚反赌www.puke56.cn 马洪刚千术揭秘w 06/07 10:57
- [游客] [url=http://www.gddzbq.com]深圳搬家公司[/url] [url=http 03/02 15:07
- [gecko] 自己给自己留句话! 做人,最怕懒惰,在如何事情上都一样!我不该过于贪图方便.这样的选择,不止我对自 08/25 13:36
- [游客] 您好好我是个超级菜鸟。看了博主的几篇肺腑之言我,深受触动。于是我,有个想法。报软考。最初级。。 请 06/01 14:24
- [Wednesday] 嘿嘿 03/10 15:14
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:29
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读入 01/09 21:15
- [gocker] 我重新审视了自己的ID和博主的ID``偶发现,我们长得太像了。。。假使,如果``我的ID后门没有加上 12/21 23:03
- [happy] 不知gecko的意思是想说什么?摸不着头脑??? 12/20 13:11
- [Wednesday] 可以直接发消息给我 注意右上角的消息中心 哈哈 11/08 18:00