javascript的主要特点:
- 解释性:源代码不需要编译
- 基于对象:能够自己运用自己已经创造的对象
- 事件驱动:可以直接对用户的输入作出响应,无需经过web服务程序。对用户的响应是通过事件驱动的方式进行的。事件驱动:是指在主页中执行了某种操作所产生的动作,此动作被称为事件。
- 跨平台:依赖浏览器本身,与操作系统无关
- 安全性:不允许访问本地的硬盘,且不能将数据存储在服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览和动态交互。
Javascript的应用:
- 验证用户的输入内容
- 动画效果
- 窗口应用:例如一些浮动窗口
- 文字特效
- jQuery效果
- 应用AJAX的技术实现百度搜索提示
JavaScript在HTML的应用:
1.在页面中直接嵌入javascript代码:
在HTML文档中可以直接使用标签将JavaScript脚本嵌入其中,可以使用多个标签,不同标签之间的可以互相访问,放在一起写效果相同。(参见01文件夹)
language:
用来指定在HTML中使用的是哪种脚本语言和版本,不定义则默认为1.0版本
<script language="JavaScript1.5">
src:
用来定义外部脚本文件的路径,外部脚本文件通常是JavaScript脚本,其扩展名为js
<script src="01.js>
type:
用来指定HTML中使用的是哪种脚本语言极其版本。从HTML4.0开始,推荐使用type属性来代替language属性
<script type="text/javascript">
defer:
当HTML文档加载完毕后再执行脚本。当脚本语言不需要立即执行时,在设置了defer属性后,浏览器不必等待脚本语言装载,页面加载速度变快。但当有一些脚本需要在页面加载过程中或加载完成后立即执行时,就不要使用defer属性了。
<script defer>
- 链接外部javascript文件。如果代码比较复杂或者同一段代码可以被多个页面所使用,则可以将这些代码纺织袋一个单独的文件中。(参见02文件夹)
<script type="text/javascript" src="javascript.js"></script>
- 作为标签的属性值使用。
- 通过"javascript:"调用:在HTML中可以通过以上方式调用javascript的函数或者方法(示例代码)
<a href="javascript:alert(您单击了这个链接)">请单击这里</a>
- 与事件结合调用
<input type="button" value="单击按钮" onclick="alert('您单击了这个按钮')" />
Javascript的基本语法
- 执行顺序:javascript程序按照在HTML文件中出现的顺序朱行执行。如果需要在整个HTML文件中执行(如函数、全局变量等),最好将其放在HTML文件的标签中。某些代码,如函数体的代码,不会被立即执行,只有当所在的函数被其他程序调用时,该代码才会被执行
- 字母大小写敏感:javascript严格区分字母大小写; HTML不区分
- javascript会忽略程序中的空格、换行和制表符(字符串和正则表达式除外); javascript的换行代表一条语句已经结束
- 每行结尾的分号可有可无
javascript语言基础
一、数据类型
数值型:javascript所有数值都是浮点型,采用IEEE754标准定义的64位浮点格式表示数字,最大值是1.7976931348623157e+308,最小值为5e-324
- 十进制:javascript中的某些整数运算是对32位的正数执行的
- 八进制:以数字0开头,后面每个数字在0~7之间
- 十六进制:以0X或0x开头;网页中颜色RGB代码是十六进制。 例如#6699FF,66代表红色部分的色值,十六进制数字99表示绿色部分的色值,十六进制数字FF表示蓝色部分的色值。
- 浮点型数据:
-
传统计数法:一个浮点数分为整数部分、小数点和小数部分,如果整数部分为0,可以省略小数部分
-
科学计数法:实数后加e或E,后面加上一个正号或负号的整数指数,正号可以省略
- 特殊值infinity:无穷大 Infinity正 -Infinity负
- 特殊值NaN(Not a Number):进行数学运算产生了未知的结果或错误,就会返回NaN,表示数学运算结果是一个非数字
字符串型:包含在单引号或双引号,单可包含双,双可包含单。转义字符 \
特殊数值类型:
-
未定义值:undefined,表示变量还没有被赋值
-
空值:null 用于定义空的或不存在的引用。
注意:null不同于空的字符串或0。null与undefined的区别:null表示一个变量被赋予了一个空值;undefined表示该变量尚未被赋值
二、变量
- 变量可以不先声明直接对其进行赋值(动态编译不容易发现错误,建议先定义变量)
- 变量只声明,并未对其赋值,其值为undefined
- javascript是一种弱类型的语言,可以把任意类型的数据赋给变量
三、运算符
- typeof 用于判断操作数的数据类型,可以返回一个字符串。
typeof a
null和对象都返回object
- new运算符:javascript有很多内置对象,如字符串对象、日期对象和数值对象。new可以用来创建一个新的内置对象实例。
Object1 = new Object; id
Array2 = new Array();
Date3 = new Date("August 8 2008");
document.write 页面输出字符串
javascript基本语句
一、条件判断语句
- if判断语句:
if (表达式){
语句
}
if (表达式){
语句 1
}else{
语句 2
}
if (表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
- switch语句:
switch (表达式){
case 常量表达式 1:
语句1;
break;
case 常量表达式 2:
语句2;
break;
case 常量表达式 n:
语句n;
break;
default:
语句n+1;
break;
}
二、循环语句
- while循环语句:
while(表达式){
语句
}
- do···while语句:
do{
语句
} while(表达式);
- for循环语句:
for (var i=1;i<=10;i++){
document.write("asdasd");
}
三、跳转语句
- continue:跳过本次循环,并开始进行下一次循环
- break:跳出循环
四、异常处理语句:
- try…catch…finally:
try{
somestatements;<!--try:尝试执行代码的关键字-->
}catch(exception){ <!--catch:捕捉异常的关键字-->
somestatements;<!--只能有一条catch语句-->
}finally{ <!--最终一定会被处理的区块的关键字,该关键字和后面大括号中的语句可以省略-->
somestatements;
}
-
Error对象:try…catch…finally中,catch捕捉到的对象为Error对象,如果有错就会产生。
Error对象的两个属性: name:表示异常类型的字符串 message:实际的异常信息
alert("实际的错误消息为:"+exception.message+"\n" "错误类型字符串为:"+exception.name);
- throw语句抛出异常:
throw new Error("soemstatements");
try{
var num=1/0
if (num=="Infinity"){
throw new Error("除数不可以为0");
}
}catch(exception){
alert(exceptipon.message)
}
javascript中的函数
一、函数的定义:
function 函数名([参数1,参数2,···]){
语句
[return 返回值]
}
function hello(){
document.write("你好");
}
二、函数的调用:
- 函数的简单调用:函数的定义语句通常被放在HTML文件的标签中,而函数的调用语句可以放在HTML文件中的任何位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function outputimage() {
document.write("<img src='../../images/1.jpg'>");
}
</script>
</head>
<body>
<script type="text/javascript" >
outputimage();
</script>
</body>
</html>
- 在事件响应中调用函数:
<script type="text/javascript">
function test(){
alert("hello");
}
</script>
<form action="" method="post" name="forml">
<input type="button" value="提交" onclick="test()">
</form>
- 通过单击链接调用函数:
<script type="text/javascript">
function text() {
alert("皇女天下第一");
}
</script>
<a href="javascript:text()">单击链接</a>
变量的优先级:
如果在函数体中定义了一个与全局变量同名的局部变量,那么该全局变量在函数体中将不起作用.
内置函数:
- parselnt():将首位为数字的字符串转换成数字,如果字符串不是以数字开头的,那么将返回NaN
parenInt(string,[n]) n指几进制的数据
- parseFloat():浮点数,同上
- isNaN():检验是否为NaN
- isFinite():检验其参数是否有限
- eval():计算字符串中表达式的值
- encodeURI():对URi字符串进行编码
encodeURI(url)
- decodeURi():对于已经编码的URI字符串进行编码
定义匿名函数:
- 表达式中定义函数
var 变量名 = function(参数1,参数2,...){
函数体;
}
- 使用Function()构造函数来定义函数:
var 变量名 = new Function("参数1","参数2",...,"函数体");
Function中所有参数和函数体都必须是字符串类型的,因此必须用双引号或者单引号引起来
对象:
一.对象的属性:
对象名.属性名 = "asd"
var a = 对象名.属性名
二.方法:
对象名.方法名(参数)
自定义对象的创建:
- 直接创建自定义对象:
var 对象名 = {属性名1:属性值1,属性名2:属性值2,...}
- 通过自定义构造函数创建对象:
function Student(name,sex,age){
this.name = name;
this.sex = sex;
this.age = age;
this.showName = showName;
}
var student1 = new Student("张三","男",25);
function showName(){
alert(this.name);
}
prototype:
object.prototype.name = value
object:构造函数名
prototype:要添加的属性名或方法名
value:添加属性的值或执行方法的函数
function Student(name,sex,age){
this.name = name;
this.sex = sex;
this.age = age;
}
Student.prototype.show = funtion(){
}
var student1 = new Student("张三","男",25)
student1.show()
- 通过object对象创建自定义对象:
var student = new Object([value]); <!--value:可选项,可以为任意一种基本数据类型(Number/Boolean/String).如果value为null/underfined,或者没有给出,则产生没有内容的对象-->
student.name = "王五";