javaScript简介

JAVASCRIPT(JavaScript简写js,文件的后缀名也是 demo.js)

在这里插入图片描述

javaScript的简介

	1. js是基于对象和事件驱动的脚本语言,作用在客户端(浏览器)上。
	2. js的特点:
			* 交互性
			* 安全性:(不可以访问本地的硬盘)
			* 跨平台性:因为浏览器就可以解析js的文件。
	3. javaScript和java不同(一点关系没有)
		* Netscape(网景),静态的效果。livescript(javaScript的前身)
		* java诞生了,升级了,改名javaScript。
		* 巨头:自己开发一套(jscript)
		* 找一些公司推出的标准:	SUN	微软	ECMA(欧洲计算机制造协会),联合推出现在的标准。
		* ECMAScript:标准。基础上扩展。
	4. javaScript和java的区别
		* js的基于对象,java是面向对象。
		* js解析就可以执行,java先编译再执行。
		* js是弱类型的语言,java是强类型语言。

javaScript语言的组成

		* ECMAScript	标准(js的语法,变量,函数)
		* BOM			(Browser Object Model)	浏览器对象模型
		* DOM			(Document Object Model)	文档对象模型				

javaScript的语法

		* 把js和HTML的结合一起。(2两种方式)
			1.  js和HTML的结合
				* HTML的文件提供了一个标签	<script type="text/javascript">js的代码</script>,标签可以放在HTML文件的任意位置上。
            2. 引入外部的文件,有一个外部的文件。编写js文件。
				* <script src="引入js文件(相对路径)" >
				* 如果script通过src的属性引入了外部的文件,里面的js代码就不会执行了。	
				* </script>,标签可以放在HTML文件的任意位置上。	
		    3.  关键字
			 	* var	声明变量		
			4. 标示符
				* 和java一样
			5.  注释
				* 和java一样
			6. 变量		
				* 声明变量,只使用一个关键字	var num = 123;  var str = "abcde"; 
			7. 5种基本数据类型
				* Undefined、Null、Boolean、Number 和 String 
					* String		字符串类型
						* js中双引号和单引号都代表的是字符串
					* Number		数字类型
						* 不区分整数和小数
					* Boolean		布尔类型
					* Null			空,给引用赋值的
					* Undefined		未定义(声明变量,没有赋值)					
			8.  声明变量,使用var关键字	
				* typeof() 判断当前变量是什么类型的数据		
			9. 运算符
				* js的运算符
					* 算术运算符
						* 0或者null是false,非0或者非null是true,默认用1表示。
						var num = 3710;
						alert(num/1000*1000);
							* 不区分整数和小数
					* 赋值运算符
						* 和java是一样的
					* 比较运算符
						* ==	比较值是否相同
						* ===	比较值和类型是否相同
					* 逻辑运算符
						* 和java中一样	
					* 三元运算符
						条件?值1:值2
			10. js的数组
				* js的数组
				* java	String [] str = {};
				* 声明数组
					* var arr = [11,33,55];
					* var arr = new Array(4);		声明数组,长度是4
					* var arr = new Array(1,2,3,4);	声明数组,元素是1 2 3 4					
				11.  数组的属性
					* 长度:length
					* 数组的长度是可变的。

js的方法

			* java中	public String 方法名称(参数列表(int num,String str)){
							方法体;
							return null;
						}			
			* js中,通过关键字function	声明方法。
				function 方法名称(参数列表 (num,str)){
					方法体;
					return;
				}
				* 参数列表:不能使用var关键字
				* 返回值:可写可不写的,如果有写返回值,如果没有,返回值可以省略不写。
			* 调用执行。	
			* 在函数的内部,有一个数组,装传过来的参数的
				arguments

js的动态函数和匿名函数

		* js的动态函数和匿名函数
			* 动态函数
				function getSum(){
					return 50;
				}
				js提供了内置对象	Function
			* 匿名函数
				* 没有名称的函数

js的全局变量和局部变量

		* 全局变量:在<script>标签内部定义的变量,全局变量。
		* 局部变量:在函数的内部定义的变量,局部变量。													

javaScript的对象和API

		* String 对象
			* 声明
				var str = "abc";
				var str = new String("abc");	
			* 属性:length:字符串的长度	
			* 方法:
				* 和HTML相关的方法(书写没有提示)
					* bold()			使用粗体显示显示字符串
					* fontcolor(color)		参数是必须的,设置字体的颜色
					* fontsize(size)		设置字体的大小(1-7)
					* italics()				斜体
					* link(url)				设置链接
					* sub()					下标
					* sup()					上标
					
				* 和java中String对象类似的
					* charAt(index)				返回指定位置的字符
					* indexOf(str,fromIndex)	检索字符串,没有返回-1
					* lastIndexOf(str,fromIndex)	从后向前检索字符串
					* replace(要替换的字符串,替换成什么)		
					* substring(start,stop)				截取字符串
					* substr(start,length)				截取字符串,从哪开始,截取多长

			* 定义一个方法:可以去掉字符串两边的空格。	
				var str = "  ab c     ";
				var newStr = mytrim(str);
				newStr = "ab c";
			* Array对象
				* 声明数组
					var arr = [12,33];
					var arr = new Array(4,4);
				* 属性:length:长度
				* 方法:
					* concat(元素,数组);	返回新的数组
					* join(s)			通过s标识(-),进行分隔,返回字符串
					* pop()				删除末尾的元素,返回最后一个元素
					* push()			向末尾添加元素,返回新数组的长度
					* sort()			排序的方法	
			* Date日期对象
				var date = new Date();	当前的日期
					* Date日期对象
				var date = new Date();	当前的日期				
				* toLocaleString()	转换本地的日期格式
				* toLocaleDateString()	只包含日期
				* toLocaleTimeString()	只包含时间
				* getDate()			返回一个月中的某一天(1-31)
				* getDay()			返回一周中的某一天(0-6)
				* getMonth()		返回月份(0-11)	+1
				* getFullYear()		返回年份
				* getTime()			返回毫秒数
				* setTime()			通过毫秒数获取日期
					* var date3 = new Date(1415937050973);
				* parse(str)		解析字符串,返回毫秒数
					Date.parse(str);
					str:	
						2014-11-14	解析不了
						11/14/2014	可以解析
						2014,11,14	可以解析	
			* Math 和数学相关的对象
				* math对象(静态的方法)
				* ceil(x)		上舍入
				* floor(x)		下舍入
				* round(x)		四舍五入
				* random()		0-1的随机数
			* RegExp对象
				* 正则表达式对象
				* 应用:编写注册的表单,对表单输入的内容进行校验。
					* var reg = new RegExp("表达式");(开发中不经常使用)
					* var reg = /表达式/			开发中经常使用
						* var reg = /^表达式$/		开发中经常使用
						* exec(string)		不经常使用
							* 如果匹配,返回匹配的结果
						* test(string)		经常使用
							* 如果匹配,返回是true,如果不匹配,返回是false
						if(reg.test("abc")){
							// 匹配上了
						}else{
						}	

全局函数

			* 使用全局函数,不需要任何的对象。
			* 全局函数可以拿过来使用。
			* global帮着管理全局函数。
			
			* 全局函数
			* eval()		可以解析字符串,执行字符串中间的js代码
			* isNaN()		判断是否是非数字值
			* parseInt()	解析字符串,返回整数
			
			* encodeURI()	进行编码
			* decodeURI()	解析解码
			
			* encodeURIComponent()
			* decodeURIComponent()
			
			* escape()
			* unescape()

BOM 浏览器对象模型(Brower Object Model)

			Window  		窗口对象
			Navigator 		和浏览器版本相关的对象
				* userAgent	获取浏览器的相关的信息
				* window.navigator.userAgent	window可以省略不写
			Screen 			和屏幕相关的对象
			History 		和浏览器历史相关
				* back()		返回上一个页面
				* forward()		去下一个页面
				* go()
					* 传参数	go(1)	等于forward()	
							go(-1)	等于back()
			Location 		和浏览器地址相关的对象
			* href	获取和设置浏览器的路径
			Document		文档对象

事件

		* onclick	点击事件
		* 值的写法:	
		* document对象	
			* alert()		弹出提示框
			* confirm("参数")		询问框
				* 提供俩按钮,确定和取消
				* 如果点击是确定,返回true,如果点击取消,返回false
				
			* moveBy()			移动浏览器
				
			* setInterval("函数",毫秒值)		定时相关的
				* 每隔毫秒值执行一次函数
				* 返回唯一的id值
				
			* setTimeout("函数",毫秒值)		
				* 到了毫秒值后执行一次函数
				* 返回唯一的id值
				
			* 清除定时
				clearInterval(id的值)		
				clearTimeout()
				
			* close()	关闭浏览器的窗口
			* open()	打开浏览器窗口
			
			* 属性:
				* opener 返回对创建此窗口的窗口的引用。 
				* win  open()	弹出baidu的窗口
					
					在baidu窗口中  baidu.opener	得到了win的引用。
					
			* document对象方法
				* document.getElementById("nameId"); 获取到是input标签的对象	

DOM 文档对象模型(Document Object Model)

	* 文档:标记型文档	(HTML/XML)
	* 对象:封装属性和行为(方法)
	* 模型:共性特征的体现
	* DOM解析HTML
		* 通过DOM的方法,把HTML全部(元素(标签)、文本、属性)都封装成了对象。
			<span id="spanId">文本</span>
		* DOM想要操作标记型文档先解析。(解析器)
			* DOM解析HTML(浏览器就可以HTML)
	* DOM的三个级别:
	* DHTML不是一种编程语言。
		* html		:封装数据。	<span>展示给用户的数据</span>
		* css		:设置样式(显示效果)
		* dom		:操作HTML(解析HTML)
		* js		:提供逻辑(判断语句,循环语句)
		
	* Document:代表整个文档。
		* 方法:
			getElementById("id的值");			通过元素的id的属性获取元素(标签)对象。
			getElementsByName("name属性值");		通过名称获取元素对象的集合(返回数组)
			getElementsByTagName("标签名称");	通过标签名称获取元素对象的集合(返回数组)
			* write("文本的内容(html的标签)")		把文本内容写到浏览器上。
			* createElement("元素名称");		创建元素对象
			* createTextNode("文本内容")		创建文本对象
			* appendChild("子节点")				添加子节点
			<span id=""></span>
	* Element对象
		* 获取元素对象
			* getAttribute("属性名称");	获取属性的值
			* setAttribute("属性名称","属性的值");	设置或者修改属性的值
			* removeAttribute("属性名称");		删除属性
		* 获取元素下的所有子节点
			* ul.getElementsByTagName();
	* Node:节点对象
		* nodeName		:节点名称
		* nodeType		:节点类型
		* nodeValue		:节点的值
		* parentNode	获取父节点(永远是一个元素节点)
		
		IE6-8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IE9-11 Chrome FireFox
		firstChild 第一个节点 ? ? ? ? ? ? ? ? firstElementChild?第一个节点
		lastChild最后一个节点、 ? ? ? ? ? ? ? lastElementChild 最后一个节点
		nextSibling 下一同级节点 ? ? ? ? ? ? ?nextElementSibling?下一同级节点
		previousSibling 上一同级节点 ? ? ? ? ?previousElementSibling?上一同级节点
		例:
			<ul>
				<li>北京</li>
			</ul>	
		* 如果通过ul获取北京的子节点,使用是	ul.firstElementChild;	获取北京的子节点(IE9-11 Chrome FireFox)
			* 但是如果IE6-8,需要使用firstChild;	
		<span id="spanId">
			文本内容
		</span>	
		* 使用span的标签获取span中间的文本内容(也是对象),需要使用firstChild;(不管是什么浏览器)
		* 方法
			* hasChildNodes()		检查是否包含子节点
			* hasAttributes()		检查是否包含属性
			* appendChild(node)			父节点调用,在末尾添加子节点
			* insertBefore(new,old)		父节点调用,在指定节点之前添加子节点
			* replaceChild(new,old)		父节点调用,替换节点
			* removeChild(node)			父节点调用,删除节点
			* cloneNode(boolean)		不是父节点调用,复制节点
				* boolean	:如果是true,复制子节点
							:如果是false,不复制子节点,默认是false
		* innerHTML	:获取和设置文本内容。
		* innerHTML属性:
			* 获取文本内容
			* 设置文本内容
		* 事件:
			onclick		点击事件
			onload		加载事件
			onfocus		获取焦点事件
			onblur		失去焦点事件
		* 全选/全不选/反选的练习
			<input type="checkbox" />
			* 指定默认值:checked	只要出现在<input type="checkbox" />,对号就勾上了。
		* 鼠标移动的事件
			onmousemove
			onmouseout			
			onmouseover			
		* 鼠标点击事件
			onclick			单击
			ondblclick		双击
		* 加载和卸载
			* onload		加载
			* onunload		卸载
		* 获取焦点和失去焦点
			* onfocus		获取焦点
			* onblur		失去焦点
		* 键盘
			* onkeyup		按下抬起
		* 改变事件
			* onchange

控制表单的提交

	* onsubmit事件
	* 控制表单提交。	需要把onsubmit作用在表单上		<form  onsubmit="">
	* 值的写法:onsubmit="return run()"
	* run()必须要有返回值,必须返回true或者false。
	* 如果返回是true,表单可以提交,如果返回false,表单不能提交。如果没有返回值,默认是表单提交。
	* run()的逻辑写什么?
		* 表单的校验。
	* 可以通过js提交表单。
			// 通过id获取form
			// var form = document.getElementById("formId");
			// 通过form的name的属性获取表单
			var form = document.form1;
			//var name = document.form1.username.value;
			//alert(name);
			// 设置提交的路径
			form.action = "success.html";
			form.method = "get";
			// 提交表单
			form.submit();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值