使用JavaScript制作动态网页-1
JavaScript是什么
JavaScript是一种描述语言,基于对象和事件驱
动的脚本语言。
1. JavaScript的特点
- 脚本语言(一种轻量级的编程语言)
- 一种解释性语言(无需预编译)
- 被设计为向HTML页面添加交互行为
- 运行于客户端
2. ECMAScript是JavaScript的标准和基础
3. JavaScript与JAVA的关系
javaScript与java名字虽然相像,但是它们没有关系。JavaScript和Java都与sun公司有合作,是借势Java
JavaScript的发展
- 95年LiveScript(Netscape公司)(为了减轻服务器压力创建)
- Netscape将其更名为JavaScript
- 微软IE3.0并附带JScript、CEnvi的ScriptEase以及JavaScript三足鼎立
- 97年JavaScript1.1版本被ECMA(欧洲计算机制造商)标准化为ECMAScript的全新脚本语言
JavaScript学习
JavaScript的组成
关于ECMAScript
- ECMAScript定义了脚本语言的所有属性、方法和对象,包括语法、类型、关键字、保留字、运算符、对象等
- 除了JavaScript外,同时也是Nombas的ScriptEase和Flash脚本ActionScript的基础
关于DOM
DOM(Document Object Model文档对象模型)
- HTML和XML的应用程序接口(API)
- 把整个页面规划为层级式的节点结构(如下图)
关于BOM
BOM(Browser Object Model浏览器对象模型)
- 可对浏览器窗口进行访问和操作
- 包括
1.弹出新的浏览器窗口
2.移动、关闭浏览器窗口及调节浏览器窗口大小
3.获取用户屏幕分辨率的屏幕对象
4.WEB浏览器详细的定位对象
-对象举例
1.Window对象
2.Navigator对象
3.Screen对象
4.History对象
5.Location对象
JavaScript的使用
JavaScript的语法
<script type= " text/javascript " >
<!-- // JavaScript 代码// -->
</script>
注意
(1)” ”部分是非必须的,为了规避老版本浏览器不识别
(2)“//”是 JavaScript 的注释符号(/**/也是注释符号),它会阻止
JavaScript 编译器对这一行的编译
(3)type属性不推荐写成 language= " javascript " ,不符合XHMLT1.0
示例:
<html>
<head>
<!-- <head>与<body>的区别 -->
<!-- 在使用上没有区别-->
<!-- 浏览器有自动纠错功能,能正常显示不表示 你写对了-->
<!-- 大家规定想让用户看见的写在<body>中,不想让用户看见的写在<head>中-->
<script type="text/javascript">
document.write("你好,JavaScript");
</script>
</head>
<body></body>
</html>
引用JavaScript的3种方式
- HTML标签中引用
常用的框输入/输出/确认
◆alert()
alert(“提示信息”); //提示信息框
示例:
<html>
<head>
<title>js支持的三种弹框,实现和用户交互</title>
<script type="text/javascript">
<!-- 这是html注释-->
//这是js注释
alert("你好,alert")
//浏览器处于阻塞状态 代码在alert这个位置停止并等待
</script>
</head>
<body>
</body>
<h1>你好 html</h1>
</body>
</html>
◆prompt()
prompt(“提示信息”, “输入框的默认信息”);
prompt(“请输入姓名”, “张三”);
prompt(“请输入姓名”);
示例:
<html>
<head>
<title>js支持的三种弹框,实现和用户交互</title>
<script type="text/javascript">
// 第二个弹框叫做prompt框具有返回值,返回的是string数据类型
var userName = prompt("请输入用户名称:",666); //接受2个参数,第一个是提示字符,第二个是输入框默认的值
alert(typeof userName);
</script>
</head>
<body>
<h1>你好 html</h1>
</body>
</html>
◆confirm(
confirm(“确认信息?”); //确定则返回true,取消则返回false
示例:
<html>
<head>
<title>js支持的三种弹框,实现和用户交互</title>
<script type="text/javascript">
//confirm 确认框 返回的是布尔值的true或者false
var flag=confirm("确定提交吗?");
alert(flag);
</script>
</head>
<body>
<h1>你好 html</h1>
</body>
</html>
JavaScript的基础语法
注释
JavaScript的注释方法,与Java一致
//或者/* */
变量声明和使用
1、由于 JavaScript 对大小写敏感,变量名也对大小写敏感 (y 和 Y 是两个不同的变量)
2、变量必须以字母或下划线或美元符$开始 ,不能使用关键字作为变量名
◆JavaScript的变量声明
//JS的变量声明 ,是通过 var 语句来声明的,无需指定数据类型
var num = 10 ;
var str = "JavaScript" ;
//当然也可声明多个,之间用逗号隔开
var num =10 ,
str = "JavaScript";
//省略 var 语句,直接变量声明
num = 100; //相当于window.num= 100;即全局变量 (不推荐)
- JavaScript的变量使用
建议先定义后使用
-+ 运算符用于把文本值或字符串变量加起来(连接起来),如果是两个数字则为数学运算加号
= 运算符用于给变量赋值,变量可以重复赋不同类型的值 - JS的语法约定
代码区分大小写
变量、对象和函数的名称有意义,最好使用驼峰
式命名
句尾的分号最好不要省略
数据类型
运算符
typeof运算符
- typeof检测变量的返回值,为字符串类型
- typeof运算符返回值如下:
undefined:变量被声明后,但未被赋值
string:用单引号或双引号来声明的字符串
boolean:true或false
number:整数或浮点数
function:函数方法
object:对象 或 数组 或 Null 类型
转换函数
parseInt():字符串转换为整数
parseFloat():字符串转换为浮点数
toString():返回字符串
强制类型转换
Boolean():转化为逻辑值
Number():对象转化为数字
String():对象转化为字符串
运算符
◆逻辑控制符
1.if条件语句
variablename = ( condition ) ? value1 : value2 ;
2.switch多分支语句
◆流程控制语句
1.while和do while循环语句
2.for循环语句
for ( 变量=开始值; 变量<=结束值; 变量=变量+步进值 )
{
//需执行的代码
}
for ( 变量a in 对象obj )
{
// 获得 obj[a];
}
3.循环中断
break
使用 break 语句来终止循环
continue
使用 continue 语句来终止当前的循环,然后从下一个值继续执行
◆语法规则
JavaScript中的函数定义
JavaScript中的函数
一组可以随时随地运行的语句
将脚本编写为函数以避免页面载入时执行该脚本
- 分类
系统函数
自定义函数
/*系统函数举例*/
parseInt("143dd") //将字符串转化为整数,结果为143
parseFloat("143.33dd") //解析一个字符串,并返回一个浮点数,结
果为143.33
/*自定义函数*/
//根据函数的语法自定义的函数
myfun(123);
- 如何调用函数
函数可以通过其名字加上括号中的参数进行调用
<html>
<head>
<title>函数的介绍</title>
<script type="text/javascript">
//函数的使用
// 当某些代码 需要被重复利用的时候就可以使用函数了
console.log(isNaN("jack")); //判断的不是数据类型 是值 "12",12 false 会自动尝试将值转换为数值
// 写一个最简单的函数并调用
// 函数的调用
//alertName("jack"); //声明在调用之后就无法被调用了
// 函数的声明方式1 js函数提升器 js会先声明这种方式声明的函数 再依次执行代码
function alertName(userName){
alert(userName);
}
// 函数的声明方式2 声明一个匿名函数将地址传递给变量
//var alertName = function(userName){
// alert(userName);
//}
/*
如果我函数的声明中参数和传入参数数量不一致会有什么结果
functuon fn1() {}
fn1("jack");
functuon fn2(userName) {}
fn2();
?形参和实参有关系吗?
没有
*/
//实现练习 eval 和 isNaN 两个系统函数
</script>
</head>
<body>
<h1>你好</h1>
</body>
</html>
事件
JavaScript侦测到的行为
- 事件举例:
- 鼠标点击
- 页面或图像载入
- 鼠标悬浮于页面的某个热点之上
- 在表单中选取输入框
- 表单提交
- 键盘按键
-
例题:
◆需求说明
制作留言板提交效果
点击“提交”按钮表单提交
提交前让用户确认,确认后提交 ,否则不提交
<html>
<head>
<title>随堂练习2 从页面上获取元素和元素的值</title>
</head>
<body>
标题:<input type="text" id="tt" /><br />
内容:<textarea id="ttt"></textarea><br />
<input type="button" value="提交" id="btn" />
<script type="text/javascript">
//1 获取元素
var title1=document.getElementById("tt");
var value1=document.getElementById("ttt");
var btn1=document.getElementById("btn");
//2 操作元素
// 绑定事件
btn1.onclick=function(){
if(confirm("确定提交吗?")){
console.log(title1.value);
console.log(value1.value); //innerHTML和value的区别
}
}
</script>
</body>
</html>
程序调试
- 错误分类
语法错误
逻辑错误
程序调试的方法
- 注释调试法
- 输出调试法
alert()调试法
document.write()调试法
console对象调试法(IE不支持)
-调试工具
Firebug、浏览器自带开发窗口
使用JavaScript实现动态交互
BOM概述
BOM使得JavaScript能与浏览器进行“对话”
- 主要是Window对象的操作
History对象
Location对象
Document对象
例题:
<html>
<head>
<title>随堂练习3</title>
</head>
<body>
<h1>新浪</h1> <input type="button" value="改变层内容" id="btn1" />
<br />
<input type="text" name="session" />
<input type="text" name="session" />
<input type="text" name="session" />
<input type="text" name="session" />
<br />
<input type="button" value="显示所有input元素的内容" id="btn2" />
<input type="button" value="显示所有session内容" id="btn3" />
<hr />
<p id="pshow"></p>
<script text="text/javascript">
//1 获取元素
// 如果元素具有id 浏览器会自动在加载完成之后 自动创建为一个对象模型 名字就是这个id 前提是你必须保证 这个id在html中是唯一的
var inputs = document.getElementsByTagName("input");
var sessions = document.getElementsByName("session");
var hs = document.getElementsByTagName("h1");
//2 操作元素
// 2.1 改变元素内容
btn1.onclick=function(){
hs[0].innerHTML="搜狐";
}
// 2.2 显示所有input中的内容
btn2.onclick=function(){
pshow.innerHTML="";
for(var i=0;i<inputs.length;i++){
pshow.innerHTML=pshow.innerHTML+" "+inputs[i].value;
}
}
// 2.3 显示所有session的内容
btn3.onclick=function(){
pshow.innerHTML="";
for(var i=0;i<sessions.length;i++){
pshow.innerHTML=pshow.innerHTML+" "+sessions[i].value;
}
}
</script>
</body>
</html>
HTML DOM innerHTML 属性
定义和用法
innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。
语法
Object.innerHTML = "HTML";// 设置
var html = Object.innerHTML;// 获取
更多推荐
使用JavaScript制作动态网页-1
发布评论