javaScript

第一章

为什么要学JavaScript

1.表单验证
2.页面动态效果

什么是JavaScript

JavaScript是一种基于对象和事件驱动的、跨平台的、并具有安全性能的脚本语言
JavaScript特点

1.HTML页面中添加交互行为
2. 脚本语言,语法和Java类似
3. 解释性语言,边执行边解释
JavaScript组成

ECMAScript(核心)JavaScript的核心,描述了语言的基本语法(varforif、array等)和数据类型(数字、字符串、布尔、函数、对象(obj、[]{}null)、未定义),ECMAScript是一套标准,定义了一种语言(比如JS)是什么样子。
	
DOM(document object model 文档对象模型):
	DOM(文档对象模型)是 HTMLXML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTMLXML 页面的每个部分都是一个节点的衍生物。
	
BOM(browser object model 浏览器对象模型):
	对浏览器窗口进行访问和操作
JavaScript核心语法
8种核心语法说明
变量1.先声明变量再赋值
2.同时声明和赋值变量
数组1.构造 var Str = new Str[5]
2.普通 var Str =[“blue”]
数据类型undefined、null、number、boolean、string
注释单行注释: 以 // 开始,以行末结束
多行注释: /* …… */ ,表示其中的语句是该程序中的注释
输入输出警告对话框:alert(“警告信息");
提示对话框:prompt(“提示信息”, “输入框的默认信息”);
运算符号算术运算符 +、 - 、 * 、 / 、% 、++、 –
赋值运算符 = 、 += 、 -=、
比较运算符 >、 < 、 >= 、 <= 、 !==、 != 、 === 、 ==、
逻辑运算符 && 、 !、||
控制语句if…else…
switch
while…
do…while
for-in
for-each
语法约定代码区分大小写
变量、对象和函数的名称
分号
===与==的区别:
		1、==(等于):只比较表面值,如“2”和2 相等    
		2、===(绝对等于):同时比较表面值和数据类型,所以“2”和2不相等;
核心语法—数据类型

undefined:
        var width;
        变量width没有初始值,将被赋予值undefined
null:
        表示一个空值,与undefined值相等
number:
        var iNum=23;     //整数
        var iNum=23.0;   //浮点数
boolean:
        truefalse
String:	
        一组被引号(单或双引号)括起来的文本
        var string="This is JavaScript";
核心语法— typeof运算符

 typeof:
            检测变量的数据类型
            
 typeof运算符的返回值如下:
             undefined:变量被声明但还未被赋值
             String:用单引号或双引号来声明的字符串
             boolean:truefalse
             number:整数或浮点数
             object:javascript中的对象、数组和null
核心语法—String对象

属性:
    字符串对象.length
方法:
    字符串对象.方法名();

String对象方法如下表:
方法名称说 明
charAt(index)返回在指定位置的字符
indexOf(str)查找指定字符串在原字符串中首次出现的位置
substring(index1,index2)返回位于指定索引 index1和index2之间的字符串(包括index1但不包括index2对应的字符)
split(str)将字符串分割为字符串数组
核心语法— 数组
名称说明
sort()排序
reverse()反转
join()连接符
push()向数组之后添加一个或多个函数并返回新数组的长度
pop()方法从数组中删除最后一个元素
网页中引用JavaScript的方式

1:使用<script>标签:
	例如上面例子:JavaScript的简单应用
    
2:外部JS文件:
	<script type="text/javascript"  src="index.js" ></script>

3:直接在HTML标签中:
	<input name="btn" type="button" value="弹出消息框" onclick="javascript:alert('欢迎你');"/>
什么是函数

函数的含义:类似于Java中的方法,是一个能够完成特定任务/功能的代码块

使用更简单:不需要定义函数属于某个类,直接使用即可

函数的分类:系统函数和自定义函数
常用的系统函数

parseInt ("字符串")
	将字符串转换为整型数字 
	如: parseInt ("86")将字符串“86“转换为整型值86

parseFloat("字符串")
	将字符串转换为浮点型数字 
	如: parseFloat("34.45")将字符串“34.45“转换为浮点值34.45

isNaN()
	用于检查其参数是否是非数字
自定义函数

有参/无参函数:
	语法:
		function 函数名(参数1,参数2,参数3,){
                 //JavaScript语句
                 [return 返回值] //可有可无
		}

调用函数
	函数调用一般和表单元素的事件一起使用,调用格式:        
语法:
	事件名= "函数名( )";	
    
调用无参函数示例:
	<input name="btn" type="button"  value="显示5次js"  onclick="study( )" />
	//单击此按钮时,调用函数study( ),执行函数体中的代码
	
	function study( ){
        for(var i=0;i<5;i++){
            document.write("<h4>js</h4>");
        }
    }    
调用有参函数示例:
	<input name="btn" type="button" value="请输入显示欢迎学习js的次数"
  onclick="study(prompt('请输入显示欢迎学习js的次数:',''))" />
  	//单击此按钮时,调用函数study (count ),执行函数体中的代码
  	
	function study(count){
        for(var i=0;i<count;i++){
            document.write("<h4>欢迎学习js</h4>");
        }
    }
什么是事件驱动

函数:
    函数被声明后	不会执行
    绑定到元素上后	不会执行
    触发事件后	执行
常用的事件
名称说明
onload当一个页面或一幅图像完成加载时
onclick当鼠标点击某个对象时
onmouseover当鼠标移动到某个元素上时
onkeydown当某个键盘按键被按下时
onchange当域的内容被改动时
onmouseout用户把鼠标移开 HTML 元素

在这里插入图片描述

js三大部分

1、ecmascript
2、bom
3、dom

第二章

Javascript操作BOM对像

window对象的常用属性
属性名称说明
history有关客户访问过的URL地址
location当前访问的URL地址
window对象的常用方法
方法名称说明
prompt()显示可提示用户输入的对话框
alert()显示带有一个提示信息和一个确定按钮的警示框
confirm()显示带有提示信息、确定和取消按钮的对话框
close()关闭浏览器
open()打开一个新的浏览器窗口,加载给定URL所指定的文档
setTimeout()在指定的毫秒数后调用函数或计算表达式
setinterval()按照指定的周期(以毫秒计算)来调用函数或表达式
open()方法
窗口特征
属性名称说明
height、width窗口文档显示区域的高度、宽度、以像素计
left、top窗口x坐标、y坐标,以像素计
toolbar=yes/no / 1 / 0是否显示浏览器的工具栏。默认yes
scrollbars=yes/no / 1 / 0是否显示滚动条。
location=yes/no / 1 / 0是否显示地址地段。
status=yes/no / 1 / 0是否添加状态栏
menubar=yes/no / 1 / 0是否显示菜单栏
resizable=yes/no / 1 / 0窗口是否可调节尺寸。
titlebar=yes/no / 1 / 0是否显示标题栏
fullscreen=yes/no / 1 / 0是否使用全屏模式显示浏览器。默认是no。
处于全屏模式的窗口必须同时处于剧院模式
location对象
常用属性
名称说明
host设置或返回主机名和当前URL的端口号
hostname设置返回当前URL的主机名
href设置或返回完整的URL
常用方法
名称说明
reload()重新加载当前文档
replace()用新的文档替换当前文档
history对象
常用方法
名称说明
back()加载history对象列表中的前一个URL
forward()加载history对象列表中的下一个URL
go()加载history对象列表中的某个具体URL
history.back()===history.go(-1)浏览器中的后退
history.forward()===history.go(1)浏览器中的前进
Math对象
常用方法
方法说明和示例
ceil()—天花板对数进行向上取整
Math.ceil(25.5);返回26
Math.ceil(-25.5);返回-25
floor()—地板对数进行向下取整
Math.floor(25.5);返回25
Math.floor(-25.5);返回-25
round()对数进行四舍五入
Math.round(25.5);返回26
Math.round(-25.5);返回-26
random()返回(0-1)之间的随机数
Math.random();列如:0.6273608814137365

第三章Javscript操作DOM对象

分类
DOM Core
HTML-DOM
XML-DOM
根据层次关系访问节点
Element
属性名称描述
firstElementChild返回节点的第一个子节点,最普通的用法是访问该元素的文本节点
lastElementChild返回节点的最后一个节点
nextElementSibling下一个节点
previousElementSibling上一个节点
children获取下面所有的子节点,用下标来选择节点
访问节点

案例:
在这里插入图片描述

//方法一
var count = document.getElementById("cartList").lastElementChild.firstElementChild.innerHTML;
var num1 = document.getElementById("cartList").firstElementChild.lastElementChild.previousElementSibling.innerHTML;
var num2 = document.getElementById("cartList").lastElementChild.previousElementSibling.lastElementChild.previousElementSibling.innerHTML;

document.getElementById("o").lastElementChild.innerHTML="白说"+num1+"<br>书店"+num2+"<br>总价"+count;	
        
//方法二
var divs = document.getElementById("cartList");
var num1 = divs.children[0].children[2].innerHTML;
var num2 = divs.children[1].children[2].innerHTML;
var count= divs.children[2].children[0].innerHTML;


var str = "白说"+num1+"<br>书店"+num2+"<br>总价"+count;

divs.nextElementSibling.innerHTML = str;
操作节点(重点)
1、操作节点的属性
2、创建和插入接待你
3、删除和替换节点
4、操作节点样式
5、获取元素的样式
节点信息

nodeName:节点名称
nodeValue: 节点值
nodeType:节点类型

节点类型NodeType值
元素element1
元素attr2
元素text3
元素comments8
元素document9
操作节点
操作节点的属性
getAttribute(" ") 属性名称
setAttribute(" "," ")    第一个时写属性名称 ,第二个是写属性值
创建和插入节点
创建和插入节点
名称描述
createElement(tagName)创建一个标签名为tagName的新元素节点
A.appendChild(B)把B节点追加至A节点的末尾
insertBefore(A,B)把节点插入到B节点之前
cloneNode(deep)复制某个指定节点 ”这里时复制这个(deep)“
clondeNode(true)除自己外包括下面所有 深克隆
clondeNode(false)只包括自己 浅克隆
判断是否被选中
checked:判断是否被选中
删除替换节点
1、删除节点
removeChild("要删除子节点") //子节点被删除前应解除所有绑定的事件,否则无法回收事件绑定所占用的内存,此方法返回被删除的节点的引用
2、替换节点
replaceChild("新的节点","旧的节点")
3、删除属性
element.removeAttribute('attrName');
element.removeAttributeNode('attrNode');   //返回删除的属性节点
节点信息
<html>
<head>
    <title>节点信息</title>
</head>
<body>
<ul id="nodeList"><li>nodeName</li><li>nodeValue</li><li>nodeType</li></ul><p></p>
<script>
    var ul = document.getElementById("nodeList");
    var firstLiNodeType = ul.firstChild.nodeType;
    var fristLiTextNodeType = ul.firstChild.firstChild.nodeType;
    var fristLiTextNodeName = ul.firstChild.firstChild.nodeName;
    var fristLiTextNodeValue = ul.firstChild.firstChild.nodeValue;
    var str = "firstLiNodeType"+firstLiNodeType+
        "<br>fristLiTextNodeType"+fristLiTextNodeType+
        "<br>fristLiTextNodeName"+fristLiTextNodeName+
        "<br>fristLiTextNodeValue"+fristLiTextNodeValue;
    ul.nextSibling.innerHTML = str;
</script>
</body>
</html>
操作节点样式
1、style属性
2、classNmae属性
获取元素样式
1、currentStyle
2、getComputedStyle()
示例:
<head lang="en">
	<meta charset="UTF-8">
<title>随鼠标滚动的广告图片</title>
<style type="text/css">
#main{text-align:center; width:1014px; margin: 0 auto;}
#adver{
	position:absolute;
	left:10px;
	top:30px;
	z-index:2;
}
</style>

</head>
<body>
<div id="adver">
	<img src="images/adv.jpg"/>
</div>
<div id="main">
	<img src="images/main1.JPG"/>
	<img src="images/main2.JPG"/>
	<img src="images/main3.JPG"/>
</div>
<script>
	//onload事件会在页面或图像加载完成之后立即执行
	window.onload = inix;
	//onscroll当滚轮条滚动时触发的事件
	window.onscroll = move;


	//层距页面顶端的距离
	var adverTop;
	//层距左端的距离
	var adverLeft;
	//层对象
	var adverObj;
	function inix(){
		//获得层对像
		 adverObj = document.getElementById("adver");
		//ie中使用的是这个currentStyle方法
		if (adverObj.currentStyle){
			adverTop = adverObj.currentStyle.top;
			adverLeft = adverObj.currentStyle.left;
			console.log(a);
		}else{
			//firefox使用的是document.defaultView.getComputedStyle\
			//这个方法接收的两个参数
			//1、要取得计算样式的元素 2、伪元素字符串(列如::after :hover)
			//如果不需要伪元素信息,第二个参数可以默认为null
			adverTop = parseInt(document.defaultView.getComputedStyle(adverObj,null).top);
			adverLeft = parseInt(document.defaultView.getComputedStyle(adverObj,null).left);
		}
		console.log(adverTop+":"+adverLeft);
	}
	function move(){
		//获得当前页面滚动条纵坐标的位置
		var TopGun = parseInt(document.documentElement.scrollTop||document.body.offsetTop);
		//获得当前页面滚动条横坐标的位置
		var LeftGun = parseInt(document.documentElement.scrollLeft||document.body.offsetLeft);

		console.log(TopGun+":"+LeftGun)

		//设置层对象左的距离
		adverObj.style.left = adverLeft+LeftGun+"px";

		//设置层对象上的距离
		adverObj.style.top = adverTop+TopGun+"px";
	}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值