JS、事件、正则、函数

目录

一、JS语言概述

变量与数据类型

script方式

数据类型

验证代码

引用类型与数组

定义引用类型

数组的使用

验证代码

运算符与流程控制

运算符

流程控制

代码验证

二、函数

函数的基本使用

弹窗函数

代码验证

其他函数

代码验证

三、事件和正则

事件

代码验证

字符串操作

代码验证

正则表达式

代码验证


一、JS语言概述

概述:是一种解释性脚本语言(无需编译过程,直接执行即可);是一种弱类型语言(同一种类型,都是var类型定义)

应用:在游览器中,为HTML增加触控效果

关系:HTML是毛坯房;CSS是内外装修;JS安装智能家电

变量与数据类型

script方式

1.直接引用js文件;在js文件李输出内容

2.直接在当前script标签中编写js代码

数据类型

string:字符串;number:整数;undifined:未被定义;boolean:布尔;object;null就是object类型

验证代码

<head>
		<meta charset="UTF-8">
		<title></title>
		<!--方式1:直接引用js文件;在js文件里输出内容-->
		<!--<script src="../js/text.js"></script>-->
		<!--方式2:直接在当前script标签中编写js代码-->
		<script>
			/*三种打印情况*/
			//alert("hello,js。****");//弹出框的打印提示
			//document.write("hello,js&&&+<br />");//页面的打印提示
			//console.log("hello,js$$$$");控制台打印提示
			
			//js是弱类型,定义变量都是var类型接收
			var a="wuyanzu"//定义字符串类型
			document.write(a+"<br />")
			a=666;//重新赋值整数类型
			document.write(a+"<br />")//在js中""''都代表字符串
			a=true//这里没有;
			document.write(a+"<br />")
			a=3.1415926
			document.write(a+"/<br />")
			
			//数据类型:string,number,undifined,boolean,object
			//string
			/*下面测试各种情况下的数据类型*/
			a="wuyanzu";
			document.write(typeof+"<br />")//string
			
			/*以下的有问题*/
			a=888;
			document.write(typeof a+"<br />")//number
			a=true
			document.write(typeof a+"<br />")//boolean
			a=3.1415926
			document.write(typeof a+"<br />")//number
			
			var b=null;
			document.write(b+"<br />");null
			document.write(typeof b+"<br />");//object
			
			var c;
			document.write(c+"<br />");//undefined
			document.write(typeof c+"<br />");//undifined
			document.write(c+1+"<br />");//NaN-->not a number
			document.write(typeof NaN+"<br />");//number
		</script>
	
	</head>

引用类型与数组

定义引用类型

方式:直接创建 var 对象名={属性:值,属性:值}

区别:在java中需要创建类和对象;在js中没有类的概念之间创建对象

数组的使用

包括:静态赋值、动态赋值、增删改查以及存引用类型

验证代码

<script>
			/*创建对象*/
			var star={name:"wuyanzu",age:45};
			/*取对象的属性值*/
			document.write(star.name+"----"+star.age+"<br />")
			
			/*数组的使用*/
			var a=[1,2,3];/*静态赋值*/
			document.write(a+"<br />")
			/*通过下标进行操作*/
			document.write(a[0]+"<br />")
			a[2]=5;//修改
			a[5]=8;//添加  注意:a[3]和a[4]是undifined
			//循环遍历的输出
			for(var i=0;i<a.length;i++){
				document.write(a[i]+"<br />")
			}
			delete a[2];//删除
			document.write(a+"<br />")
			
			a.length=0;//删除所有
			document.write(a+<br />);
			
			var b=new Array();//动态赋值
			b.push(3,6);
			document.write(b+"<br />")
			
			//数组存引用类型
			var c=[{name:"liangchaowei",age:45},{name:"zhangmanyu",age:47}];
			for(var i=0;i<c.length;i++){
				document.write(c[i].name+c[i].age+"<br />");
			}
		</script>

运算符与流程控制

运算符

关系运算符

==比较内容一致;===比较内容和类型

++自增;--自减

算数运算符

加、减、乘除

流程控制

if分支结构

在js中,false、null、undifined、NaN、0以及""输出为false

代码验证

<script>
			/*关系运算符*/
			var a=1;
			document.write((a=="1")+"<br />");//true
			document.write((a==="1")+"<br />");//false;因为一个是整数,一个是字符串
			document.write((a===1)+"<br />");//true;类型与内容一致
			document.write(a++);//1
			document.write(++a);//3
			document.write(a--);//3
			document.write(--a);//1
			/*算数运算符*/
			document.write("<br />");
			var b=5/2;
			document.write(b+"<br />");
			
			//if分支
			if(""){
				document.write("为true");
			}else{
				document.write("为false")
			}
		</script>

二、函数

分为调用和实现;也有参数和返回值的用法

函数的基本使用

<script>
			/*1.无参数无返回值函数*/
			test();//函数调用
			function test(){//函数实现
				document.write("无参,无返回值<br />");
			}
			/*2.有参数无返回值函数*/
			print(999);
			document.write(print(666));//无返回值则打印undifined
			
			function print(a){
				document.write("打印"+a+"<br />");
			}
			document.write(add(1,2));
			document.write(add(1,2,3));
			//如果返回值中的加数多余上面所赋予的数字个数会输出NaN
			//如何解决?
			/*function add(a,b){
				return a+b;
			}*/
			/*function add(a,b,c){
				return a+b+c;
			}*/
			//使用可变参数解决--arguments(数组)可以解决上述的问题
			function add(){
				var sum=0;
				for (var i=0;i<arguments.length;i++) {
					sum+=arguments[i];
				}
				return sum;
			}
		</script>

弹窗函数

弹窗函数的结构简单,但实用性较强

代码验证

<script>
			//alert("弹窗");//警告框
			if (confirm("你确认接收这个惊喜吗?")) {
				document.write("你点击了确认");
			} else{
				document.write("你点击了取消")
			}
			/*var a=prompt("温馨提示:欢迎光临我校")
			document.write(a)*/
	</script>

其他函数

parseInt:将数字字符串转number

parseFloat:将数字字符串转小数的number类型

isNaN:是否为非数字;是true,不是false

代码验证

<script>
			//parseInt:
			var a="99感冒灵";
			/*var a="感冒灵99";*///为NaN
			//原因:当字符串不能转换为数字时,解析函数返回 NaN :表示解析失败
			var a=parseInt(a);
			document.write(a+"<br />");//99
			document.write(typeof a+"<br />");//number
			//parseFloat:
			a="3.14";
			document.write(parseInt(a)+"<br />");//3
			document.write(parseInt(a)+"<br />");//3.14
			//isNaN
			document.write(isNaN());
			document.write(isNaN(123));
			document.write(isNaN("123"));
			document.write(isNaN("abc"));
		</script>

三、事件和正则

事件

含义:HTML与JS之间进行动态交互的桥梁

细节:通过函数调用的形式发到JS代码中

代码验证

<script >
			function change(){
				alert("改变触发");
			}
			function myclick(){
				alert("点击触发");
			}
			function myover(){
				alert("鼠标移入时触发");
			}
			function myout(){
				alert("鼠标移出时触发");
			}
			function mydown(){
				alert("键盘按下时触发");
			}
			function myup(){
				alert("键盘弹起时触发");
			}
			/*//该html页面从上到下都加载完成后,自动触发onload
			 * onload=function(){
				alert("页面加载完成后的触发")
			}*/
			function mysub(){
				console.log("点击的提交按钮");//默认的返回结果为true,表示会提交到后端
				return false;
			}
		</script>
<!--onchange:一般用作下拉列表,或文本内容的改变中-->
		<select onchange="change()">
		<option>重庆</option>
		<option>四川</option>
		<option>湖北</option>
		<option>贵州</option>
		</select>
		<h1 onclick="myclick()">一级标题</h1>
		<input type="button"onmouseover="myover()" value="鼠标移入时" />
		<input type="button"onmouseout="myout()" value="鼠标移出时"/>
	<!--键盘按下或弹起的触发:往往用在文本框中-->
		<input onkeydown="mydown()" /><br />
		<input onkeyup="myup()" /><br /><!--键盘弹起-->
		<form onsubmit="return mysub()">
			<input type="submit"value="提交" />
		</form>
		

字符串操作

与Java类似,按照Java的方式去使用即可

代码验证

<script>
			var s="morning";
			var s1="morning";
			/*document.write(s.equals(s1));*/
			document.write(s==s1);
			document.write(s.length);
			document.write("  morning  ".trim());/*去掉左右的空格*/
			document.write(s.startsWith("mor"));/*是否以字串开头*/
		</script>

正则表达式

含义:一组特定规则的字符串

应用场景:匹配一些规则,完成相应的场景判断

代码验证

<script>
			//案例:判断传入的字符串是否为手机号码“18624248484”
			//分析:常规方式:使用字符串判断-1.以1开头 2.第2位为3578 3.11位都是数字
			//正则表达式:^1[3578][0-9]{9}$  ^1[3578]\d{9}$
			//var rep=new RegExp("^1[3578]\\d{9}$");
			var rep=/^1[3578][0-9]{9}$/;
			document.write(rep.test("18624248484")+"<br />")//true
		
		//exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发送匹配,则返回null
		var reg=/morning/ig;//i大小写不敏感;g代表全局匹配
		var str="hello morning,morning一日之计在于晨,morning空气好";
		var msg;
		while(msg=reg.exec(str)){
			document.write(msg+"<br />")//三个morning
		}
		
		reg=/hello/ig;
		str="hello morning,morning一日之计在于晨,morning空气好";
		var arr=str.match(reg);
		document.write(arr+"<br />");//hello
		
		reg=/morning/ig;
		str="hello morning,morning一日之计在于晨,morning空气好";
		document.write(str.replace(reg,"evening")+"<br />");//hello evening,evening一日之计在于晨,evening空气好
		
		var str="hello morning,morning is best time";
		arr=str.split(/[,]/);
		document.write(arr+"<br />");
		</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值