JavaScript(js)基础

时间:2021-6-19 作者:admin

文章目录

JavaScript脚本必须位于<script></script>之间
脚本可被放置在HTML页面中的<head></head><body></body>

一、 JavaScript的使用

1.body中的JavaScript

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			document.write("<h1>body中的JavaScript</h1>");
		</script>
	</body>
</html>

JavaScript(js)基础

2.head中的JavaScript

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			document.write("<h1>head中的JavaScript</h1>");
		</script>
	</head>
	<body>
	</body>
</html>

JavaScript(js)基础

3.body中的JavaScript函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div id="clock">看这里哟</div>
		<script>
			function myclock() {
				document.getElementById("clock").innerHTML=new Date();
			}
		</script>
		<br>
		<input type="button" onclick="myclock()" value="查看日期"/>
	</body>
</html>

JavaScript(js)基础

4.head中的JavaScript函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>head中的JavaScript函数</title>
		<script>
			function myclock() {
				document.getElementById("clock").innerHTML=new Date();
			}
		</script>
	</head>
	<body>
		<div id="clock">看这里哟</div>
		<br>
		<input type="button" onclick="myclock()" value="查看日期"/>
	</body>
</html>

JavaScript(js)基础

5.外部的JavaScript函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>外部的JavaScript函数</title>
	</head>
	<body>
		<script src="js文件的路径">
		</script>
	</body>
</html>

二、JavaScript的输出

输出类型
使用window.alert()弹出提示框(alert前的window通常课省略不写)
使用document.write()将内容写到HTML文档中
使用innerHTML写入到HTML元素
使用console.log()写入到浏览器的控制台

1.使用window.alert()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			alert("这是使用window.alert()的输出");
		</script>
	</body>
</html>

JavaScript(js)基础

2.使用document.write()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			document.write("这是使用document.write()的输出");
		</script>
	</body>
</html>

JavaScript(js)基础

3.使用innerHTML

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div id="demo">
			这是输出位置
		</div>
		<script>
			document.getElementById("demo").innerHTML="这是innerHTML的输出"
		</script>
	</body>
</html>

JavaScript(js)基础

4.使用console.log()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			console.log("这是控制台的输出");
		</script>
	</body>
</html>

JavaScript(js)基础

三、JavaScript注释

JavaScript不会执行注释,我们可以添加注释来对JavaScript进行解释,提高代码的可读性

注释类型
单行注释://
多行注释:/* */

四、JavaScript变量

JavaScript变量可用于存放值和表达式
要求:

  • 变量必须以字母开头
  • 变量也能以$ 和 _ 符号开头
  • 变量名称对大小写敏感

变量的声明
我们使用 var 关键词来声明变量
如:var name;
变量声明后为空值,如要赋值要使用等号
如:name = “小猪佩奇”;
也可以在声明变量时直接赋值
如:var name = “小猪乔治”;

五、JavaScript数据类型

值类型(基本类型) 引用数据类型
字符串(String) 对象(Object)
数字(Number) 数组(Array)
布尔(Boolean) 函数(Function)
空(null)
未定义(Undefined)
Symbol

对象类代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>对象类的演示</title>
	</head>
	<body>
		<p id="demo">演示文本</p>
		<script>
			var student = {
				/*
				访问对象属性的两种方式:
				1.student.name;
				2.student["name"];
				*/
				name:"郭靖",
				id:"191304",
				classid:"778899",
				information : function() {
					return this.name + this.id + this.classid;
				}
			};
			document.write(student.name + "<br>");
			document.write(student.id + "<br>");
			document.write(student.classid + "<br>");
			/*
			第二种输出方法,调用函数进行输出
			*/
			document.getElementById("demo").innerHTML = student.information();
		</script>
	</body>
</html>


JavaScript(js)基础

六、JavaScript函数

JavaScript函数语法
function functionname()
{
// 执行代码
}

1.调用带参函数

function myFunction(var1,var2)
{
代码
}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>		
		<button onclick="myFunction('小猪佩奇','123456')">请点击</button>
		<script>
			function myFunction(name, id) {
				alert("我叫" + name + ",我的学号是" + id);
			}
		</script>

	</body>
</html>

JavaScript(js)基础

2.带有返回值的函数

function myFunction()
{
var x=5;
return x;
}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>		
		<div id="demo">
			
		</div>
		<script>
			function myFunction() {
				var data = new Date();
				return data;
			}
			document.getElementById("demo").innerHTML = myFunction();
		</script>

	</body>
</html>

JavaScript(js)基础

七、JavaScript作用域

作用域种类
局部作用域(局部变量)
全局作用域(全局变量)

局部作用域:变量在函数内声明,变量为局部作用域。局部变量只能在函数内部访问。
全局作用域:变量在函数外定义为全局变量,网页中所有函数和脚本都可以使用。

注:如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

变量生命周期:

  • JavaScript 变量生命周期在它声明时初始化。
  • 局部变量在函数执行完毕后销毁。
  • 全局变量在页面关闭后销毁

八、JavaScript事件

JavaScript可以触发HTML事件。
如:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>		
		<button onclick="this.innerHTML=Date()">现在的时间是?</button>
	</body>
</html>

调用前:
JavaScript(js)基础
调用后:
JavaScript(js)基础
其他作用:

  • 页面加载时触发事件
  • 页面关闭时触发事件
  • 用户点击按钮执行动作
  • 验证用户输入内容的合法性

九、JavaScript字符串

JavaScript 字符串用于存储和处理文本。
字符串可以是插入到引号中的任何字符。你可以使用单引号或双引号
你可以使用索引位置来访问字符串中的每个字符,字符串的索引从 0 开始
注意:
你可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同:

你也可以在字符串添加转义字符来使用引号:

转义字符代码 输出
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行
\r 回车
\t tab(制表符)
\b 退格符
\f 换页符

字符串长度:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<script type="text/javascript">
			var text = "xiaozhupeiqi***";
			document.write("字符串长度为:" + text.length);
		</script>
		
		
	</body>
</html>

JavaScript(js)基础

常用字符串方法 描述
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLowerCase() 把字符串转换为小写
toUpperCase() 把字符串转换为大写
toString() 返回字符串对象值
trim() 移除字符串首尾空白

十、JavaScript运算符

  • 算术运算符:同java
  • 赋值运算符:同java

用于字符串的 “+” :“+” 运算符用于把文本值或字符串变量加起来

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
			txt1="I am ";
			txt2="very good";
			txt3=txt1+txt2;
			document.getElementById("demo").innerHTML=txt3;
		}
	</script>
	</body>
</html>

JavaScript(js)基础
注:

两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
			var x = 10 + 15;
			var y = "5" + 10;
			var z = "hello" + 520;
			var flag = document.getElementById("demo").innerHTML = x + "<br>" + y + "<br>" + z;
		}
	</script>
	</body>
</html>

JavaScript(js)基础

  • 比较运算符:
运算符 描述
== 等于
=== 绝对等于(值和类型均相等)
!= 不等于
!== 不绝对等于(值和类型有一个不相等,或两个都不相等)
> 大于
< 小于
>= 大于或等于
<= 小于或等于
  • 逻辑运算符:
运算符 描述
&& 都为true结果为true,否则结果为false
|| 有一个为true结果为true
! not,取反
  • 条件运算符:

var name=(condition)?value1:value2

十一、JavaScript条件语句

  • if 语句 – 只有当指定条件为 true 时,使用该语句来执行代码
  • if…else 语句 – 当条件为 true 时执行代码,当条件为 false 时执行其他代码
  • if…else if…else 语句- 使用该语句来选择多个代码块之一来执行
  • switch 语句 – 使用该语句来选择多个代码块之一来执行
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
			var x;
			var d=new Date().getDay();
			switch (d)
    		{
  				case 6:x="今天是星期六";
    			break;
  				case 0:x="今天是星期日";
    			break;
    			/*
    			default 关键词来规定匹配不存在时做的事情
    			*/
  				default:
    			x="期待周末";
  			}
			document.getElementById("demo").innerHTML=x;
		}
	</script>
	</body>
</html>

JavaScript(js)基础

十二、JavaScript循环语句

  • for – 循环代码块一定的次数
  • for/in – 循环遍历对象的属性
  • while – 当指定的条件为 true 时循环指定的代码块
  • do/while – 同样当指定的条件为 true 时循环指定的代码块
    使用for/in可以循环遍历对象中的属性
    如:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
			var x=1;
			var txt="";
			var student={name:"myd",id:"1913040150",age:20}; 
			for (x in student){
				txt=txt + "<br>" + student[x];
			}
			document.getElementById("demo").innerHTML=txt;
		}
	</script>
	</body>
</html>

JavaScript(js)基础

十三、JavaScript类型转换

  1. 将数字转换为字符串

x.toString()

  1. 将布尔值转换为字符串

false.toString() // 返回 “false”
true.toString() // 返回 “true”

  1. 将日期转换为字符串

String(new Date())
或者
obj = new Date()
obj.toString()

日期字符串转换的函数:

方法 描述
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
getFullYear() 从 Date 对象以四位数字返回年份
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)
  1. 将字符串转换为数字

Number(“3.14”) // 返回 3.14
Number(” “) // 返回 0
Number(””) // 返回 0
Number(“99 88”) // 返回 NaN

Number中字符串转为数字的方法:

方法 描述
parseFloat() 解析一个字符串,并返回一个浮点数
parseInt() 解析一个字符串,并返回一个整数
  1. 将布尔值转换为数字

Number(false) // 返回 0
Number(true) // 返回 1

  1. 将日期转换为数字

d = new Date();
Number(d)

  1. 自动转换类型

5 + null // 返回 5 null 转换为 0
“5” + null // 返回”5null” null 转换为 “null”
“5” + 1 // 返回 “51” 1 转换为 “1”
“5” – 1 // 返回 4 “5” 转换为 5

  1. 自动转换为字符串

当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法

十四、JavaScript正则表达式

  • 正则表达式是由一个字符序列形成的搜索模式。
  • 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
  • 正则表达式可以是一个简单的字符,或一个更复杂的模式。
  • 正则表达式可用于所有文本搜索和文本替换的操作。
  1. search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

search() 方法使用正则表达式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
    		var str = "Hello World!"; 
    		/*
    		 * /runoob/i  是一个正则表达式。
				runoob  是一个正则表达式主体 (用于检索)。
				i  是一个修饰符 (搜索不区分大小写)。
    		 */
    		var n = str.search(/World/i);
    		document.getElementById("demo").innerHTML = n;
		}
	</script>
	</body>
</html>

JavaScript(js)基础
search() 方法使用字符串

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<button onclick="myFunction()">点击这里</button>
		<p id="demo"></p>
	<script>
		function myFunction()
		{
    		var str = "Hello World!"; 
    		var n = str.search("World");
    		document.getElementById("demo").innerHTML = n;
		}
	</script>
	</body>
</html>

JavaScript(js)基础

  1. replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
    replace() 方法使用正则表达式
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<p>替换World 为 Girl</p>
		<button onclick="myFunction()">点击这里</button>
		<p id="demo">Hello World</p>
		<script>
			function myFunction()
			{
    			var str = document.getElementById("demo").innerHTML; 
    			var txt = str.replace(/World/i,"Girl");
    			document.getElementById("demo").innerHTML = txt;
			}
		</script>
	</body>
</html>

JavaScript(js)基础
replace() 方法使用字符串

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<p>替换World 为 Girl</p>
		<button onclick="myFunction()">点击这里</button>
		<p id="demo">Hello World</p>
		<script>
			function myFunction()
			{
    			var str = document.getElementById("demo").innerHTML; 
    			var txt = str.replace("World","Girl");
    			document.getElementById("demo").innerHTML = txt;
			}
		</script>
	</body>
</html>

JavaScript(js)基础

  1. test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<script>
			var text=new RegExp("love");
			document.write(text.test("freedom and love are beautiful"));
		</script>
	</body>
</html>

JavaScript(js)基础

  1. exec() 方法用于检索字符串中的正则表达式的匹配。 该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<script>
			var text=new RegExp("love");
			document.write(text.exec("freedom and love are beautiful"));
		</script>
	</body>
</html>

JavaScript(js)基础

十五、JavaScript错误异常

  • try 语句测试代码块的错误。
  • catch 语句处理错误。
  • throw 语句创建自定义错误。
  • finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。

使用同java代码中一样

十六、JavaScript表单

  • JavaScript 验证输入的数字
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<h1>JavaScript 验证输入</h1>
		<p>请输入 1 到 10 之间的数字:</p>
		<input id="num">
		<button type="button" onclick="myFunction()">提交</button>
		<p id="demo"></p>
		<script>
			function myFunction() {
    		var x, text;

    		// 获取输入值
    		x = document.getElementById("num").value;
    		if (isNaN(x) || x < 1 || x > 10) {
        		text = "输入错误";
    		} else {
        		text = "输入正确";
    		}
    		document.getElementById("demo").innerHTML = text;
			}
		</script>
	</body>
</html>

JavaScript(js)基础

  • 邮箱验证
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			function Form(){
				var x=document.forms["myForm"]["email"].value;
				var atpos=x.indexOf("@");
				var dotpos=x.lastIndexOf(".");
				if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
					alert("不是一个有效的 e-mail 地址");
  					return false;
				}
			}
		</script>
	</head>
	<body>	
		<form name="myForm" onsubmit="return Form();" method="post">
		Email: <input type="text" name="email">
		<input type="submit" value="提交">
		</form>
	</body>
</html>

JavaScript(js)基础

以下两种验证方法可查阅资料细看,与HTML验证比较看待

JavaScript 表单验证
数据验证

十七、验证API

  • 约束验证DOM方法
方法 描述
checkValidity() 如果 input 元素中的数据是合法的返回 true,否则返回 false
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<p>输入数字并点击验证按钮:</p>
		<input id="id1" type="number" min="100" max="1000" required>
		<button onclick="myFunction()">验证</button>
		<p>如果输入的数字小于 100 或大于1000,会提示错误信息。</p>
		<p id="demo"></p>
		<script>
			function myFunction() {
    			var inpObj = document.getElementById("id1");
    			if (inpObj.checkValidity() == false) {
        			document.getElementById("demo").innerHTML = inpObj.validationMessage;
        			//validationMessage可参考下表属性
    			} else {
        			document.getElementById("demo").innerHTML = "输入正确";
    			}
			}
		</script>
	</body>
</html>

JavaScript(js)基础

  • 约束验证 DOM 属性
属性 描述
validity 布尔属性值,返回 input 输入值是否合法
validationMessage 浏览器错误提示信息
willValidate 指定 input 是否需要验证

十八、JavaScript this关键字

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • 在函数中,this 表示全局对象。
  • 在函数中,在严格模式下,this 是未定义的(undefined)。
  • 在事件中,this 表示接收事件的元素。
  • 类似 call() 和 apply() 方法可以将 this 引用到任何对象。

十九、JavaScript JSON

JSON 英文全称 JavaScript Object Notation
JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 。

JSON 语法规则

  • 数据为 键/值 对
  • 数据由逗号分隔
  • 大括号保存对象
  • 方括号保存数组

JSON 数据 – 一个名称对应一个值
如:"name":"小猪佩奇"

JSON 对象:JSON 对象保存在大括号内
如:{"name":"小猪乔治", "url":"www.qiaozhi.com"}

JSON 数组:JSON 数组保存在中括号内
如:

"sites":[
    {"name":"佩奇", "url":"www.peiqi.com"}, 
    {"name":"乔治", "url":"www.qiaozhi.com"},
    {"name":"gyt", "url":"www.tb.com"}
]

JSON 字符串转换为 JavaScript 对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<h2>为 JSON 字符串创建对象</h2>
		<p id="demo"></p>
		<script>
			var text = '{ "sites" : [' +
				'{ "name":"peiqi" , "url":"www.peiqi.com" },' +
				'{ "name":"qiaozhi" , "url":"www.qiaozhi.com" },' +
				'{ "name":"gyt" , "url":"www.tb.com" } ]}';
			obj = JSON.parse(text);
			// parse方法见下表
			document.getElementById("demo").innerHTML = obj.sites[2].name + " " + obj.sites[2].url;
		</script>
	</body>
</html>

JavaScript(js)基础

函数 描述
JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象
JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串

二十、JavaScript异步编程

异步(Asynchronous, async)是与同步(Synchronous, sync)相对的概念
同步按你的代码顺序执行,异步不按照代码顺序执行,异步的执行效率更高

简单示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>	
		<p>回调函数等待 3 秒后执行。</p>
		<p id="demo"></p>
		<script>
			function print() {
    			document.getElementById("demo").innerHTML="Hello World!";
			}
			setTimeout(print, 3000);
		</script>
	</body>
</html>

JavaScript(js)基础

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。