JavaWeb-JavaScript

JavaScript

一、JavaScript入门

  1. 概念:一门客户端脚本语言

    * 运行在客户端浏览器中的,每一个浏览器都有JavaScrpit的解析引擎
    * 脚本语言:不需要编译,直接就可以被浏览器解析执行
    
  2. 功能:

     * 可以用来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
    
  3. JavaScript = ECMAScript + JavaScript的BOM、DOM

二、 ECMAScript

	客户端脚本语言的标准

1. 基本语法:

		* 与html结合方式
			1. 内部JS:定义<script>,标签体内容就是js代码
			2. 外部js,定义<script>,通过src属性引入外部的js文件
			* 注意:
					1. <script>可以定义在html页面的任何地方,但是定义的位置会影响执行顺序
					2. <script>可以定义多个

		* 注释:与Java相同,但没有文档注释
			
		* 数据类型
			* 原始数据类型:
				1. number:数字。	整数/小数/NaN
				2. string:字符串。
				3. boolean:true和false。
				4. null:一个对象为空的占位符。
				5. undefined:未定义。一个变量没有初始化值,会默认赋值为undefined。

			* 引用数据类型:对象

		* 变量
			* 概念:一小块存储数据的内存空间
			* Java语言是强类型语言,而JavaScript是弱类型语言
				* 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
				* 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据
			* 语法:var	变量名	= 初始化值;
			* typeof运算符:获取变量的类型
				* 注:null运算后得到的是object
			
		* 运算符
			1. 一元运算符
				++,--:自增,自减
				+,-:正号,负号
				* 注意:在js中,如果运算数不是运算符所要求的类型,那么js引擎会自动将运算数进行类型转换
			2. 算数运算符
				+,-,*,/,%
			3. 赋值运算符
				=,+=,-=
			4. 比较运算符
				<,>,==,===,<=,>= 
				* 比较方式
					1. 类型相同:直接比较
						* 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
					2. 类型不同:先进行类型转换,再比较
						* ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
			5. 逻辑运算符
				&&,||,!
				* 其他类型转boolean:
					1. number:0或NaN为false,其他为ture
					2. string:除了空字符串("")为false,其他皆为ture
					3. null和undefined是false
					4. 所有对象为ture
			6. 三元运算符 
				表达式?	值1:值2;
				
		* 流程控制语句
			1. if...else...
			2. switch:可以接收任意的原始数据类型
			3. while
			4. do..while
			5. for

		* JS特殊语法
			1. 语句以英文分号;结尾
			2. 变量用var修饰是局部变量,不用则为全局变量

2. 基本对象

  1. Function:函数对象

     * 创建:
     	1. var 方法名称 = new Function(形参列表,方法体);
     	2. function 方法名称(形参列表) {
     			方法体;
     		}
     	3. var 方法名 = function(形参列表) {
     			方法体;
     		}
     		
     * 属性:
     		length:形参的个数
     		
     * 特点:
     		1. 方法定义时,形参的类型和返回值类型不写
     		2. 方法是一个对象,如果定义名称相同的方法,会覆盖
     		3. 在JS中,方法的调用只和方法的名称有关
     		4. 在方法声明中有一个隐藏的内置对象(数组)arguements,封装所有传过来的实参
    
     * 调用:
     		方法名称(实参列表)
    
  2. Array:数组对象

     	* 创建:
     		1. var arr = new Array(元素1,元素2,...)
     		2. var arr = new Array(默认长度)
     		3. var arr = [元素1,元素2,...]
    
     	* 方法:
     		1. join(参数):将数组中的元素按照指定的分隔符拼接为字符串
     		2. push():向数组的末尾添加一个或更多元素,并返回新的长度
    
     	* 属性:
     		length:数组的长度
    
     	* 特点:
     		1. JS中,同一个数组可以存放不同类型的元素
     		2. JS中,数组的长度是可变的
    
  3. Boolean

  4. Date:日期对象

     * 创建:var date = new Date();
    
     * 方法:
     	toLocaleString():返回当前date对象对应的时间本地字符串格式。
     	getTime():获取毫秒值。
    
  5. Math:数学对象

     * 特点:Math对象不用创建即可使用
    
     * 方法:
     	random():获取 [0,1) 之间的随机数。
     	ceil( num ):向上取整
     	floor( num):向下取整
     	round( num ):四舍五入
    
     * 属性:
     	* PI:即圆周率π
    
  6. Number

  7. String

  8. RegExp:正则表达式对象

     正则表达式:定义字符串的组成规则。
     	1. 单个字符:[]
     		如:[a] [ab] [a-zA-Z0-9_]
     		* 特殊符号代表特殊含义的单个字符:
     			/d:单个数字字符	[0-9]
     			/w:单个单词字符	[a-zA-Z0-9_]]
     	2. 量词符号
     		?:表示出现0次或1次
     		*:表示出现0次或多次
     		+:表示出现1次或多次
     	3. 开始结束符号
     		* ^:开始
     		* $: 结束
    
     正则对象
     	* 创建:
     		1. var reg = new RegExp("正则表达式");
     		2. var reg = /正则表达式/;
     	* 方法:
     		test(参数):验证指定的字符串是否符合正则定义的规范
    
  9. Global

     * 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。
     * 方法:
     	encodeURI():url编码
     	decodeURI():url解码
     	
     	encodeURIComponent():url编码,编码的字符更多
     	decodeURIComponent():url解码
     	
     	parseInt():将字符串转为数字
     	
     	isNaN():判断一个值是否为NaN
     	
     	eval():解析JvaScript字符串,并作为脚本代码来执行。
    

三、BOM&DOM

1. DOM简单学习

* 功能:控制HTML文档的内容
* 获取页面标签对象:Element
	* document.getElementById("id值"):通过元素的id获取元素对象

* 操作Element对象:
	1. 修改属性值
	2. 修改标签体内容
		* 属性:innerHTML
		1. 获取元素对象
		2. 使用innerHTML属性修改标签体内容

2. 事件简单学习

* 功能:某些组件被执行了某些操作之后,触发某些代码的执行。
* 绑定事件:
	1. 直接在html标签上,指定事件的属性
	2. 通过js获取元素对象,指定事件属性

3. BOM

  1. 概念:Browser Object Model 浏览器对象模型

     * 将浏览器的各个组成部分封装成对象
    
  2. 分类

     * Window:窗口对象
     * Navigator:浏览器对象
     * Screen:显示器屏幕对象
     * History:历史记录对象
     * Location:地址栏对象
    
  3. Window

     * 特点
     	* Window对象不需要创建就可以直接使用
     	* Window对象的方法不需要用引用可以直接使用
    
     * 方法
     	1. 弹出框有关的方法
     		alert():显示带有一段消息和一个确认按钮的警告框
     		confirm():显示带有一段消息以及确认按钮和取消按钮的对话框
     			* 如果用户点击确定按钮,则方法返回true
     			* 如果用户点击取消按钮,则方法返回false
     		prompt():显示可提示用户输入的对话框
     			* 返回值:获取用户输入的值
     	2. 打开关闭有关方法
     		close():关闭调用该方法的浏览器窗口
     		open():打开一个新的浏览器窗口,返回值上新的Window对象
     	3. 定时器有关方法
     		setTimeout():在指定的毫秒数后调用函数或计算表达式
     			* 参数:
     					1. js代码或者方法对象
     					2. 毫秒值
     			* 返回值:唯一标识,用于取消定时器
     		clearTimeout():取消有setTimeout()方法设置的定时器
     		
     		setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式
     		clearInterval():取消由 setInterval() 设置的 timeout
    
     * 属性
     	1. 获取其他BOM对象
     		Histroy
     		Location
     		Navigator
     		Screen
     	2. 获取DOM对象
     		document
    
  4. Location

     * 创建
     	1. window.location
     	2. location
    
     * 方法
     	* reload():重新加载
    
     * 属性
     	* href:设置货返回完整的 URL
    
  5. History

     * 创建
     	1. window.history
     	2. history
    
     * 方法
     	* back():加载 history 列表中的前一个URL
     	* forward():加载 history 列表中的下一个URL
     	* go(参数):加载 history 列表中的某个具体页面
     		* 参数:
     			* 正数:前进几个历史记录
     			* 负数:后退几个历史记录
    
     * 属性
     	* length:返回当前窗口历史列表中URL数量
    

4. DOM

  1. 概念:Document Object Model 文档对象模型

     * 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象对标记语言文档进行CRUD(增删改查)的操作
    
  2. 分类

     * W3C DOM 标准被分为3个不同的部分
     	1.	核心DOM:针对任何结构化文档的标准模型
     		* Document:文档对象
     		* Element:元素对象
     		* Attribute:属性对象
     		* Text:文本对象
     		* Comment:注释对象
    
     		* Node:节点对象,其他5个对象的父对象
    
     	2.	XML DOM:针对XML文档的标准模型
     	3.	HTML DOM:针对HTML文档的标准模型
    
  3. 核心DOM模型

     * Document
     	1. 创建:在HTML DOM模型中可以使用window对象来获取
     		1. window.document
     		2. document
     	2. 方法
     		1. 获取Element对象
     			* getElementById():根据id属性值获取元素对象。
     			* getElementByTagName():根据元素名称获取元素对象。返回值是一个数组。
     			* getElementByClassName():根据Class属性值获取元素对象们。
     			* getElementByName()
     		2. 创建其他DOM对象
     			* createAttribute(name)
     			* createComment()
     			* createElement()
     			* createTextNode()
     	3. 属性
     * Element
     	1. 获取/创建:通过document来获取和创建
     	2. 方法
     		1. removeAttribute():删除属性
     		2. setAttribute():设置属性
     * Node
     		* 特点:所有DOM对象都可以被认为是一个节点
     		* 方法:
     			* CRUD	dom树:
     				* appendChild():向节点的子节点列表的结尾添加新的子节点
     				* removeChild():删除(并返回)当前节点的指定子节点
     				* replaceChild():用新节点替换一个子节点
     		* 属性
     			* parentNode:返回节点的父节点
    
  4. HTML DOM

     1. 标签体的设置和获取:innerHTML
     2. 使用html元素对象的属性
     3. 控制元素样式
     		1. 使用元素的style属性来设置
     		2. 提前定义好类选择器的样式,通过严肃的className属性来设置class属性值
    

5. 事件监听机制

  1. 概念:某些组件被执行了某些操作之后,触发某些代码的执行。

  2. 常见的事件:

     * 点击事件
     	1. onclick:单击事件
     	2. ondbclick:双击事件
    
     * 焦点事件
     	1. onblur:失去焦点
     	2. onfocus:元素获得焦点
    
     * 加载事件
     	1. onload:一张页面或一副图像完成加载
    
     * 鼠标事件
     	1. onmousedown:鼠标按钮被按下
     	2. onmouseup:鼠标按键被松开
     	3. onmousemove:鼠标被移动
     	4. onmouseover:鼠标移到某元素之上
     	5. onmouseout:鼠标从某元素移开
    
     * 键盘事件
     	1. onkeydown:某个键盘按键被按下
     	2. onkeyup:某个键盘按键被松开
     	3. onkeypress:某个键盘被按下并松开
    
     * 选择和改变
     	1. onchange:域的内容被改变
     	2. onselect:文本被选中
    
     * 表单事件
     	1. onsubmit:确认按钮被点击
     	2. onreset:重置按钮被点击
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值