首页 > 编程语言 > 详细

javaScript

时间:2021-07-19 00:22:07      阅读:22      评论:0      收藏:0      [点我收藏+]

一:概述

1 什么是JavaScript?

1、JavaScript 是脚本语言,是一种解释性脚本语言(代码不进行预编译)
2、JavaScript 是一种轻量级的编程语言。
3、JavaScript 是可插入 HTML 页面的编程代码。
4、JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
5、JavaScript 很容易入门。

2 作用

1、为网页添加各式各样的动态功能,
2、为用户提供更流畅美观的浏览效果。
3、通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的
 
 

二:JavaScript的用法

1 HTML页面中的JavaScript

1、在html页面中的脚本必须位于script围堵标签之间,script标签放在head中可以,body中也可以,放在最后也可以,对位置要求不严格。
2、我们可以在 HTML 文档中放入不限数量的script标签,通常的做法是把内容统一放入head或者页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内
3、有些案例中可能会在 script 标签中出现type="text/javascript"。现在完全可以省略了,JavaScript已经 是所有现代浏览器以及 HTML5 中的默认脚本语言。
技术分享图片

 技术分享图片

 

 

2 外部的JavaScript

1、可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。外部 JavaScript 文件的文件扩展名是 .js。
2、当我们使用外部文件时,在HTML页面的script 标签的 "src" 属性中设置该 .js 文件:
技术分享图片

 技术分享图片

 

 

3 标签属性中的JavaScript

1、接编写在HTML标签的一些属性中,用于简单的JavaScript代码的编写,用的偏少
2、<a href="javascript:alert(‘ok‘)">登录</a>

 

三:JavaScript显示数据

1 使用window.alert()弹出框

2 使用document.write()将内容写入到html文档

3 使用innerHTML写入到html元素

4 使用console.log写入到浏览器控制台

技术分享图片

 

 四:JavaScript的注释

1、JavaScript注释与java的单行和多行注释相同。
          单行注释以 // 开头。
          多行注释以 /* 开始,以 */ 结尾。
 

五:JavaScript基本语法

1 JavaScript变量

1、声明变量的关键字:var ; 语法:var 变量名称;
技术分享图片

2、变量的命名规则:

        变量必须以字母开头
        变量也能以 $ 和 _ 符号开头
        变量名称对大小写敏感(y 和 Y 是不同的变量)
        不能使用关键字保留字
3、变量的命名规范:
       见名知意 。例如:breadPirce,userService等,避免无意义的a,b,c等
       推荐驼峰命名法,即第一个单词的首字母小写,以后每个单词的首字母大写。例如lastName

2 JavaScript的语句

1、JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。
2、JavaScript 是脚本语言,浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。
3、JavaScript中也有分支结构和循环结构,语法与java类似
4、一般一行只写一条语句,每句结尾编写分号结束

3 JavaScript的数据类型

1 值类型(基本类型)
1.1) 字符串String

技术分享图片

 

 

1.2) 数字Number

技术分享图片

 

 

1.3 )布尔Boolean

技术分享图片

 

 

1.4) 空Null
1、ar email=null;
1.5) 未定义Undefifined
表示变量不含有值。可以通过将变量的值设置为 null 来清空变量。共有4中情况会出现undefifined的值
1、变量声明且没有赋值;
          var obj;
          alert(obj);//obj值为undefined
2、获取对象中不存在的属性时;
         var obj;
         alert(obj.name);//报错信息: "Uncaught TypeError: Cannot read property ‘name‘ of  undefined"
3、函数需要实参,但是调用时没有传值,形参是undefifined;
4、函数调用没有返回值或者return后没有数据,接收函数返回的变量是undefifined。
         function printNum(num){
          alert(num);
                  }
        var result=printNum();//调用函数未传递参数,执行函数的时候num的值是undefined
        alert(result);//result的值也是undefined,因为printNum()没有返回值
1.6)symbol
2 引用数据类型
对象(Object)、数组(Array)、函数(Function)。
3 JavaScript拥有动态类型

技术分享图片

 

 

4 JavaScript中的运算符

     算数运算符:+ - * / % 、 ++ 、 --
     赋值运算符:= 、 +=、 -= 、*= 、 /= 、 %=
     字符串的连接符:+
     逻辑运算符: && || !
     条件运算符:?:
     比较运算符: == 、!= 、 > 、<、 >= 、 <=
     以上运算符的运算规则与java一样,在这里不再赘述。接下来强调两个新的比较运算符:
技术分享图片

 

 六:JavaScript对象

1 JavaScript的String对象

1、String对象属性,属性长度

技术分享图片

 

 2、String对象方法

JavaScript中的String对象方法与java的String方法很多都类似甚至一样,这里不再一一赘述

2 JavaScript的Array对象

Array 对象用于在变量中存储多个值,也就是数组
1、声明数组
技术分享图片

技术分享图片

 

 

3 JavaScript的Date对象

1 创建日期对象
1)  var date1 = new Date();
2)var date2 = new Date(milliseconds);
3)var date3 = new Date(dateString);
4)var date4 = new Date(year, month, day, hours, minutes, seconds, milliseconds);
2 日期对象的常用方法
技术分享图片

 技术分享图片

 

 

4 JavaScript的Math对象

1 Math常用属性
      var pi=Math.PI;//返回圆周率
2 Math常用方法
    var num=Math.random();// 返回 0 ~ 1 之间的随机数。
    var max=Math.max(12,34,-90,9);//返回 n个数值中的最大值。
    var min=Math.min(12,34,-90,9);//返回 n个数值中的最小值。
    剩余的属性和方法大家感兴趣自行查阅文档

 

六:javaScript的调试

 

七:javaScript的函数

1 JavaScript的常用全局函数

1、 isNaN(param):用于检查其参数是否是非数字值。是数值的返回false,不是数值返回true。
          console.log(isNaN(666));//false
          console.log(isNaN(1+2));//false
          console.log(isNaN("hello"));//true 
2 parseFloat(String):可解析一个字符串,并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为                                            止,然后以数字返回该数字,而不是作为字符串。 
              console.log(parseFloat("66"));//66
              console.log(parseFloat("199.99"));//199.99
              console.log(parseFloat("1024 2048 4096"));//1024
              console.log(parseFloat(" 128 "));//128
              console.log(parseFloat("10年"));//10
              console.log(parseFloat("今天是8号"));//NaN
字符串中只返回第一个数字。
开头和结尾的空格是允许的。
如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。 
 
3 parseInt(string,radix):可解析一个字符串,并返回一个整数
技术分享图片

技术分享图片

 

 

2 JavaScript的自定义函数

1 自定义函数语法 
技术分享图片
2 自定义函数实例 
     注意:1、函数的形参直接写参数名称,不需要声明类型,即不需要写var.
                2、函数的返回取决于函数体中是否有return关键字。
技术分享图片

3 JavaScript的匿名函数 

技术分享图片

 

 

8、JavaScript变量的作用域

1 局部 JavaScript 变量

在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问。在不同的函数中可以声明名称相同变量,因为局部变量出该函数就失效了。 

2 全局 JavaScript 变量 

在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

3 变量的生命周期

JavaScript 变量的生命期从它们被声明的时间开始。局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。 
 

9 JavaScript自定义对象

对象也是一个变量,但对象可以包含多个值(多个变量)。 

1 定义对象 

对象中可以有属性,也可以有方法 

技术分享图片

2 对象的属性

1、可以说 "JavaScript 对象是变量的容器"。但是,我们通常认为 "JavaScript 对象是键值对的容器"。
2、键值对通常写法为 name : value (键与值以冒号分割)。键值对在 JavaScript 对象通常称为 对象属性

3 访问对象的属性

技术分享图片

技术分享图片

 

 十:JavaScript Window--浏览器对象模型

浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。BOM:Browser Object Model,中文浏览器对象模型。虽然现在BOM尚无正式标准,但是由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此window常被认为是 BOM 的方法和属性。 

1 window对象属性

1、所有浏览器都支持 window 对象。它表示浏览器窗口。( 没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象)。所有 JavaScript 全局对象、函数          以及变量均自动成为 window 对象的成员。全局变量是 window 对象的属性。全局函数是 window 对象的方法。Window 对象表示浏览器中打开的窗口。
2、常用属性
技术分享图片
 
 
1.history对象
1.1) window.history 对象包含浏览器的历史。window.history对象在编写时可不使用 window 这个前缀。
1.2)常用方法:
                history.back() - 与在浏览器点击后退按钮相同
                history.forward() - 与在浏览器中点击向前按钮相同
                history.go(1/-1)-- 参数为1:等同于history.forward(),参数为-1,等同于history.back()技术分享图片

 

 2 location对象

2.1)window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
2.2)常用属性和方法:
              window.location 对象在编写时可不使用 window 这个前缀。
              href 当前窗口正在浏览的网页地址
              replace(url) 转向到url网页地址
              reload() 重新载入当前网址,如同按下刷新按钮技术分享图片

2 window对象方法

1、常用对象方法技术分享图片

 

1 打开和关闭浏览器案例 技术分享图片

2 弹框案例技术分享图片

 

 

3 定时器案例
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<div id="today01">
		    div----显示时间1
		</div>
		<br />
		<a href="javascript:window.clearInterval(flag01)">停止定时器clearInterval</a>
		<div id="today02">
			div----显示时间2
		</div>
		<a href="javascript:window.clearTimeout(flag02)">停止定时器clearTimeout</a>
	</body>
</html>
<script>
	function showTime01(){
		var time = new Date();
		var year = time.getFullYear();
		var month = time .getMonth();
		var day = time.getDate();
		var hour = time.getHours();
		var minte = time.getMinutes()
		var minlls = time.getSeconds();
		document.getElementById("today01").innerHTML=year+"年"+month+"月"+day+"日"+hour+"时"+minte+"分"+minlls+"秒";
	}
	//调用定时器
	var flag01 = window.setInterval("showTime01()",1000);
</script>
<script>
	function showTime02(){
		var time = new Date();
		var Y = time.getFullYear();
		var M = time.getMonth();
		var D = time.getDate();
		var H = time.getHours();
		var M = time.getMinutes();
		var S = time.getSeconds();
		document.getElementById("today02").innerHTML=Y+"年"+M+"月"+D+"日"+H+"时"+M+"分"+S+"秒";
	}
	var flag02 = window.setInterval("showTime02()",2000);
</script>

  

11 JavaScript之事件

HTML 事件是发生在 HTML 元素上的事情。当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。

1 HTML事件

1、HTML 事件可以是浏览器行为,也可以是用户行为。例如页面加载完成、你点击个按钮、文本框输入了文字等等,都是HTML事件的案例。
2、通过当事件发生时,我们希望可以做些事情,例如点击完毕按钮之后希望跳转页面、文本框输入完毕之后验证有效性等,那么这些要做的事情我们就可以通过                  JavaScript实现。

2 常用的HTML事件 技术分享图片

 

 代码演示:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>

	<body onload="myLoad()">
		<input id="userName" onkeydown="fun5()" onfocus="fun6()" onblur="fun7()" /> 
		<input id="password" type="password" /> 
		<button id="btn" type="button" onclick="fun2()" onmouseover="fun3()" onmouseout="fun4()">点击我试试</button>
		<select id="month" onchange="fun1()">
			<option>1月份</option>
			<option>2月份</option>
		</select>
	</body>

</html>
<script>
	function fun1() {
		alert(‘选择的内容发生了变化‘);
	}

	function fun2() {
		alert("触发了单击事件");
	}

	function fun3() {
		document.getElementById("btn").innerHTML = "鼠标移动到按钮上了";
	}

	function fun4() {
		document.getElementById("btn").innerHTML = "点击我试试";
	}

	function fun5() {
		alert("键盘按下了");
	}

	function fun6() {
		alert("获取到了焦点");
	}

	function fun7() {
		alert("input失去了焦点");
	}

	function myLoad() {
		alert("页面加载完毕");
	}
</script>

上面的方法的作用:当触发了一个时间之后给出的反应

 

12 JavaScript之DOM模型

1、通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。DOM:Document Object Model,文档对象模型。
2、当网页被加载时,浏览器会创建页面的文档对象模型。 
3、HTML DOM 模型被构造为对象的树:技术分享图片

 

 4、通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

               JavaScript 能够改变页面中的所有 HTML 元素
               JavaScript 能够改变页面中的所有 HTML 属性
               JavaScript 能够改变页面中的所有 CSS 样式
               JavaScript 能够对页面中的所有事件做出反应

1 document对象

1、当浏览器载入 HTML 文档, 它就会成为 Document 对象。
2、Document 对象是 HTML 文档的根节点。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
3、提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。 
 

2 document对象常用方法

 查找 HTML 元素常用方法

技术分享图片

代码演示:技术分享图片

技术分享图片

 

 2 修改 HTML 内容和属性

1)修改内容
          修改 HTML 内容的最简单的方法是使用 innerHTML 属性。
          修改 HTML 元素的内容的语法:document.getElementById(id).innerHTML=新的 HTML。
          PS: 绝对不要在文档(DOM)加载完成之后使用 document.write()。这会覆盖该文档。 
 
2)修改 HTML 属性
             修改 HTML 元素属性的语法:
            方式1:document.getElementById(id).attribute=新属性值
            方式2:document.getElementById(id).setAttribute(属性名,属性值);
3)代码演示:
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>
		<div id="mydiv">div</div>
		<h1 style="color: green;" id="myh1">hello world</h1>
		<script>
		var mydiv=document.getElementById("mydiv");
		mydiv.innerHTML="新的div内容";
		document.getElementById("myimg").src="x1.jpg";
		var h1=document.getElementById("myh1");
		h1.setAttribute("class","bg");//设置属性
		console.log(h1.getAttribute("class"));//获取属性class
		console.log(h1.getAttribute("style"));//获取属性style
		</script>
	</body>

</html>

  

3 修改 HTML 元素的css 
1、修改 HTML 元素css的语法:document.getElementById(id).style.property=新样式
                document.getElementById("myli").style.color="blue";
                document.getElementById("myli").style.fontFamily="微软雅黑";
                document.getElementById("myli").style.fontSize="24px"; 

3 HTML DOM 元素 (节点)

1 、创建新的 HTML 元素:要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<button type="button" onclick="createNewP()">点我试试</button>
		<button type="button" onclick="createNewP2()">再点我试试</button>
		
		<div id="div01">
			<p id="id01">我是段落1</p>
			<p>我是段落2</p>
		</div>
		
	</body>
</html>
<script>
	//该方法时添加再后面
	function createNewP(){
		var newElement = document.createElement("p");
		var text = document.createTextNode("这是我创建的新的段落1");
		newElement.appendChild(text);
		//获取页面中存在的一个
		var my = document.getElementById("div01");
		my.appendChild(newElement);
	}
	//该方法时添加在指定位置
	function createNewP2(){
		var newElement = document.createElement("p");
		var text = document.createTextNode("这是我创建的新的段落2");
		newElement.appendChild(text);
		
		var div = document.getElementById("div01");
		var id01 = document.getElementById("id01");
		//添加新创建的元素p到已经存在的元素div中,指定插入到段落id01前面
		div.insertBefore(newElement,id01);
	}
</script>

  技术分享图片

 

 2 替换 HTML 元素 -replaceChild() 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<button type="button" onclick="replaceElement()">点我试试</button>
		
		<div id="div01">
			<p id="id01">我是段落1</p>
			<p>我是段落2</p>
		</div>
		
	</body>
</html>
<script>
	
	function replaceElement(){
		var newElement = document.createElement("p");
		var text = document.createTextNode("这是我创建的新的段落2");
		newElement.appendChild(text);
		
		var div = document.getElementById("div01");
		var id01 = document.getElementById("id01");
		//添加新创建的元素p到已经存在的元素div中,指定插入到段落id01前面
		div.replaceChild(newElement,id01);
	}
</script>

  

3 删除元素 -removeChild() 
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<button type="button" onclick="deleteElement()">点我试试</button>
		<button type="button" onclick="deleteElement02()">再点我试试</button>
		<div id="div01">
			<p id="p1">我是段落1</p>
			<p>我是段落2</p>
		</div>
		
	</body>
</html>
<script>
	
	function deleteElement(){
		var div01 = document.getElementById("div01");
		var p1 = document.getElementById("p1");
		div01.removeChild(p1);
	}
	
	function deleteElement02(){
		var p1 = document.getElementById("p1");
		p1.parentNode.removeChild(p1);
	}
</script>

  

13 表单验证

1表单验证意义与场景 

1.降低服务器压力:拦截不合格的数据,避免直接提交到服务器,可以显著降低服务器开销
2.提升用户体验:早期的互联网,表单项都是非常多的,注册个账号,经常需要填写20+个字段。而其中有一个填写不正确就要等待几十秒时间。如果有了表单验证,反                              馈是实时的,而且脚本还能把你定位到填写错误的具体字段。现在虽然无刷新技术早已普及,但是只依赖服务端验证,还是会有几百毫秒的延迟,实                                际使用会有一种很难受的粘滞感。

2 表单验证常用事件与属性

表单经常需要做一些非空验证、长度验证、合法性验证等。
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>
		<h1>英雄会注册</h1>
		<form action="Demo02.html" method="get" onsubmit="return register()">
			*用户名:<input type="text" id="userName" placeholder="请输入用户名" onblur="validateName()" />
			<span id="nameMsg">用户名长度至少6位</span><br /> *密码:
			<input type="password" id="password1" placeholder="请输入密码" onblur="validatePwd()" />
			<span id="pwdMsg1">密码长度至少8位</span><br /> *确认密码:
			<input type="password" id="password2" placeholder="请确认密 码" onblur="confirmPwd()" />
			<span id="pwdMsg2">确认密码与密码一致</span><br /> *性别:
			<select id="gender">
				<option value="-1">请选择性别</option>
				<option value="0">女</option>
				<option value="1">男</option>
			</select><br /><br />
			<button type="submit">注册</button>
			<button type="reset">重置</button>
		</form>
	</body>

</html>
<script>
		function validateName(){
			//获取到用户名
			var userName = document.getElementById("userName").value;
			var msg = document.getElementById("nameMsg");
			if(userName==null || userName==""){
				msg.innerHTML="用户名不能为空";
				msg.style.color="red";
				return false;
			}else if(userName.length<6){
				msg.innerHTML="用户名必须小于六位数";
				msg.style.color="red";
				return false;
			}
			msg.innerHTML="用户名输入正确";
			msg.style.color="green";
			return true;
		}
		
		function validatePwd(){
			//获取到密码
			var psw = document.getElementById("password1").value;
			var msg = document.getElementById("pwdMsg1");
			if(psw==null || psw==""){
				msg.innerHTML="密码不能为空";
				msg.style.color="red";
				return false;
			}else if(psw.length<8){
				msg.innerHTML="用户名必须大于八位数";
				msg.style.color="red";
				return false;
			}
			msg.innerHTML="密码输入正确";
			msg.style.color="green";
			return true;
		}
		
		function confirmPwd(){
			var psw1 = document.getElementById("password1");
			var psw2 = document.getElementById("password2");
			var msg = document.getElementById("pwdMsg2");
			if(psw1!=psw2){
				msg.innerHTML="前后密码不一致";
				msg.style.color="red";
				return false;
			}
			msg.innerHTML="密码输入正确";
			msg.style.color="green";
			return true;
		}
		
		function validateGender(){ 
			var gender=document.getElementById("gender").value; 
			if(gender==-1){ 
				alert("性别为必选项!"); 
				return false; 
			}
			return true; 
		}
		function register(){ 
			return validateName()&&validatePwd()&&confirmPwd()&&validateGender(); 
		}


</script>

  

15 JavaScript的 RegExp 对象-正则表达式 

1 概念
1、RegExp:是正则表达式(regular expression)的简写。
2、正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索        模式可用于文本搜索和文本替换。
2 语法 

 

 技术分享图片

1) 修饰符
技术分享图片

2) 正则表达式模式 

 

 技术分享图片

技术分享图片

 技术分享图片

3) 正则表达式的方法test(str)

技术分享图片

 

 

3 常用的正则表达式校验案例 
技术分享图片

技术分享图片技术分享图片

技术分享图片

技术分享图片

 

 

十六:总结:终于又完了一个知识点了,加油

 

 

javaScript

原文:https://www.cnblogs.com/baiyangshu/p/15028351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!