JavaScript

一.Js简介

1.Js是一种基于对象和事件驱动(通过鼠标或热键的动作)的客户端脚本语言,是一种轻量的编程语言
2.Js是可插入HTML页面的编程代码,所有浏览器都可执行
3.Js用途:可以让页面动起来

二.js的引入方式

1.直接写入

<body>
	<input type="button" value="普通按钮" οnclick="alert('我是一个普通按钮')"/>
	<!--外面是双引号,里面要使用单引号,alert是弹出一个提示框-->
</body>

2.嵌入式

<head>
	<script type="text/javascript">
		//可用document.write();输出在浏览器页面中
		function method2(){
			alert("普通按钮2");
		}
	</script>
</head>
<body>
	<input type="button" value="普通按钮2" οnclick="method2()"/>
</body>

3.外链式,调用外界js文件
外界js文件只写函数:function method2(){alert("普通按钮2");}

<head>
	<script type="text/javascript" src="./第三章.js">//用src引入,必须单写出来
	<script type="text/javascript">
		function method2(){
			alert("普通按钮2");
		}
	</script>
</head>
<body>
	<input type="button" value="普通按钮2" οnclick="method2()"/>
</body>

三.语法规范

1.常规

1.语句由表达式,运算符,关键字组成
2.单行注释//,多行注释/**/
3.js区分大小写,html不区分大小写
4.js会忽略程序中的空格,制表符和换行符,但依然使用缩进,便于理解代码(分号可以不写)

2.Js的输出

1.使用 window.alert() 弹出警告框。

window.alert(5 + 6);

2.使用 document.write() 方法将内容写到 HTML 文档中。

//日期会直接显示在p段落下面
<p>我的第一个段落。</p>
<script>
document.write(Date());
</script>
//点击按钮后悔触发myFunction函数,建日期打印到一个新的文档中
<p>我的第二个段落。</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction() 
{
    document.write(Date());
}
</script>

3.使用 innerHTML 写入到 HTML 元素。

document.getElementById("demo").innerHTML = "段落已修改。";

4.使用 console.log() 写入到浏览器的控制台。

<script>
a = 5;
b = 6;
c = a + b;
console.log(c);
</script>

3.变量

1.变量可以是字母,数字,下划线和美元符号($),不能以数字开头
2.javascript是弱类型语言(java是强,有long,int等),直接用var来声明一个变量var i=3; var s=“abc”;

4.数据类型

1.基本数据类型
①.数字(都是由浮点型表示,不区分整型和浮点型数值)
②.字符(字符串由一对单双引号括起来)
③.布尔值(true表示1,false表示0)
2.两种特殊数据类型
①null
②undefined//未定义
3.复合数据类型(对象)
①.array(数组)
②.function(函数)

5.js的运算符

1.算数运算符:+,-,*,/,++,–
2.关系运算符:>,<,>=,<=,!=,==(比较值的大小),===(比较类型和值的大小都相同时结果才为true)
3.逻辑运算符:&&,||,!
4.条件运算符/三目运算:boolean表达式?表达式1:表达式2;(表达式为true则选表达式1,为false选表达式2)

6.分支结构语句

1.if语句
if(单向判断),if-else(双向判断),if-else if-else(多向判断)
2.switch语句

switch(整型表达式){
	case1:
		语句一;
		break;
	case2:
		语句二;
		break;
	...
	default:
		语句;
		(break;)
}

7.循环结构语句

1.for(表达式1①;表达式2②;表达式3){③循环体;}
2.while(表达式){语句块;}//先判断后执行
3.do{语句块;}while(boolean表达式)//先执行后判断,至少执行一次

四.数组

1.数组的特点

1.数组元素不赋值,则值为undefined
function method1(){
var array =new Array();
alert(array[0]);
}

2.一个数组内可以存放任意类型的数据
function method1(){
var arr=new Array(3);
arr[0]=10;
arr[1]=“嗨”;
arr[2]=true;
alert(arr[2]);
}

3.打印数组时,若某个元素没有赋值,这会打出""(空)
function method1(){
var arr=new Array(3);
arr[0]=10;
arr[1]=“嗨”;
alert(arr);
}//打出10,嗨,

4.访问数组范围以外的元素,不会出现异常,为undefined
function method1(){
var arr=new Array(3);
arr[0]=10;
arr[1]=“嗨”;
arr[2]=true;
alert(arr[3]);
}//打出undefined

5.定义数组大小,依然可以添加更多的元素,不会报错
function method1(){
var arr=new Array(3);
arr[0]=10;
arr[1]=“嗨”;
arr[2]=true;
arr[3]=45;
arr[4]=“java”;
alert(arr);//arr在java中打印的是地址,在js中打印的是值
}//打出10,嗨,true,45,java

2.一维数组的定义

1.var arr1=new Array();
arr1[0]=10;
arr1[1]=20;
2.var arr2=new Array(2);//规定了数组的长度,依然可以添加更多的元素
3.var arr3=new Array(true,123,false);//直接赋值
4.var arr4=[false,“aaa”,‘bbb’,123];//单双引号都可以放

3.单双引号的问题

1.只能这样使用" ' ' "或者' " " '(单引号包裹双引号或双引号包裹单引号)

2.var a=“你好”;
var b=‘你好’;
alert(a===b);//输出true,它们本质都是一样的字符串你好
3.var a=" ‘你好’ “;//a代表字符串’你好’
var b=’ “你好” ';//b代表字符串"你好”
alert(a===b);//输出false,它们不是一样的字符串

4.单引号和双引号之间的字符串可以相加(组合)‘af’+“bvvv”+'dd’输出 “afbvvvdd”

4.二维数组的定义(一维数组的一维数组)

1.方法一,创建一个七行两列的数组
var arr=new Array(7);
for(var i=0;i<=6;i++){
arr[i]=new Array(2);
}

2.方法二,创建一个两行三列的数组
var arr=[[00,01,2],[01,2,3]];//打印出来是0,1,2,1,2,3
arr[0][1]=01;

五.函数和事件

函数是事件驱动的,或者当它被调用时执行的可重复使用的代码块

1.定义函数(不需要指定参数类型,返回值可有可无)

1.普通定义
function 函数名(){函数体;}
2.带参函数
function 函数名(var1 var2){函数体;}
3.带返回值的函数,只需要在函数体里面加一个return var1;就会默认返回var1
function 函数名(){函数体; return var1;}

2.常用事件

表单事件:onclick(单击鼠标),ondblclick(双击鼠标),onmouseover(鼠标滑过),onmouseout(鼠标滑出),onfocus(集中鼠标焦点),onblur(失去焦点),onsubmit(表单提交时触发,进行表单校验)
在这里插入图片描述
在这里插入图片描述

//onclick(单击鼠标)
function method(){alert();}
<input type="button" value="普通按钮1" onclick="method()">
function method(a,b){alert(a+b);}
<input type="button" value="普通按钮1" onclick="method(10,20)">
function method(a,b){return a+b;}
<input type="button" value="普通按钮1" onclick="alert(method(10,20))">
<input type="text" onfocus="method4()"/>
<input type="text" onblur="method5()"/>

页面事件:onload(页面加载[初始化html]时触发函数)

<script type="text/javascript">
		function load(){alert("loading..");}
</script>
<body onload="load()"></body>
<script type="text/javascript">
	window.onload=function(){alert("loading..");}//这样写时不能在body里面写οnlοad="load()"
</script>
3.对文本框内容的情况进行判断

1.获取文本框里面的值
——var username=document.getElementById(“username”).value;
2.判断是否为空
——if(username==""){alert(“用户名不能为空”);},
——文本框判断不能与null进行判断,要与""进行判断

正则表达式一般是由/开始,/结束
邮箱的正则表达式/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
正则.test(“字符串”)//字符串为用户输入的邮箱,通过id来获得的
str.match(“正则表达式”);

六.Js对象

1.Js中所有事物都是对象,分为三类

1.简单对象:String,Number,Boolean
2.组合对象:Array,Math,Date
3.复杂对象:Function,Regex,Object

2.对象是拥有属性和方法的数据

1.访问属性:var a=“hello”; var x=a.length;
2.调用方法:var a=“hello”; var x=a.toUpperCase();

3.String对象

var str1=“hello world”;
var str2=“HELLO WORLD”;
alert(str1.toUpperCase());//转成大写
alert(str2.toLowerCase());//转成小写
alert(str1.charAt(3));//找到下标为3的字符
alert(str1.charCodeAt(3));//找到下标为3的字符的ASCII码值
alert(str1.indexOf("r",4));//从第4个位置开始r在数组中的下标
alert(str1.lastIndexOf(“o”,9));//从后向前查某个指定的字符串在字符串中最后一次出现的位置
alert(str1.substring(1,5));//截取1-5的字符串
alert(str1.replace("ello","ey"));//用ey替换ello
alert(str1.split(" "));//将hello word以空格隔开,成为两个元素

4.Array数组

var arr=new Array(10,true,“hello”);
1.alert(arr.join(" : "));//将数组里面的元素以:隔开
2.alert(arr.toString());//正常显示
3.alert(arr1.concat(arr2));//拼接arr1和arr2
4.alert(arr1.slice(start-0,end-2));//从第0个位置开始选两个
5.var arr2=arr1.reverse();//颠倒
alert(arr2);
6.arr1.sort();//排序,只有它返回的是自己本身,其他的都返回一个数组
alert(arr1);

5.日期(Date)对象

var date=new Date();
date.getFullYear();
1.Date()//返回当日日期
2.getDate()//返回一个月中的某一天
3.getDay()//返回一周中的某一天,获取星期是0到6,0是星期日
4.getMonth()//返回月份(0-11)当是12月份的时候会显示11月
5.getFullYear()//返回年份,替代了getYear()
6.getHours()//返回小时
7.getMinutes()//返回分钟
8.getSeconds()//返回秒
9.getMilliseconds()//返回毫秒
10.getTime()//返回从1970年1月1日到今天的毫秒数

//年月日时分秒:
var date=new Date();
date.getFullYear()+":"+date.getMonth()+1+":"+date.getDay()+":"+date.getHours()+":"+date.getMinutes()+":"+date.getMilliseconds()
6.Math方法(使用Math.方法使用)

1.abs(x);//绝对值
2.random();//返回0-1的随机数(包含0,不包含1)
alert(Math.random()*100+1);
3.ceil(x);//向上舍入
4.floor(x);//向下舍入
5.round(x);//四舍五入
var math=-10.83;
alert(Math.round(math));
6.max(x,y);//返回x,y的最大值
7.min(x,y);//返回x,y的最小值
8.log(x);//返回以e为底的自然对数
9.exp(x);//返回e的指数
10.pow(x,y);//返回x的y次幂
11.sqrt(x);//返回数的平方根
12.sin(x),cos(x),tan(x);acos(x);asin(x);atan(x);atan2(x);//x必须以弧度表示的角Math.PI/2
13.toSource()//返回该对象的源代码
14.valueOf();//返回Math对象的原始值

7.Number对象

1.toString();//用于把Number对象转化为一个字符串,并且返回结果
2.toFixed();//可以把Number四舍五入为指定位小数位数的小数
var number=10.58658;
alert(number.toFixed(3));

8.Window对象

七.小案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第三章表单校验练习</title>
		<style type="text/css">
			#div1{
				border: 1px solid blue;
				background-color: lightpink;
				width: 100%;
				height: 600px;
				margin: auto;
			}
			#div2{
				border: 3px solid gray;
				background-color: white;
				width: 800px;
				height: 400px;
				margin: auto;
				position: absolute;
				top: 100px;
				left: 360px;
			}
		</style>
		<script type="text/javascript">
			function method1(){
				var username=document.getElementById("username").value;
				var password1=document.getElementById("password1").value;
				var password2=document.getElementById("password2").value;
				var email=document.getElementById("email").value;
				//验证值为null时,要与""比较
				if(username==""){
					alert("用户名不能为空");
				}else if(password1==""){
					alert("密码不能为空");
				}else if(password2!=password1){
					alert("两次密码不一致");
				}else if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){
					alert("邮箱输入错误");
				}else{
					alert("注册成功");
				}
			}
		</script>
	</head>
	<body>
		<div id="div1">
			<div id="div2">
				<table border="0" cellpadding="10px" cellspacing="0">
					<form action="http://www.baidu.com">
						<tr>
							<td width="100px">用户名</td>
							<td><input type="text" id="username"/></td>
						</tr>
						<tr>
							<td width="100px">密码</td>
							<td><input type="password" id="password1"/></td>
						</tr>
						<tr>
							<td width="100px">确认密码</td>
							<td><input type="password" id="password2"/></td>
						</tr>
						<tr>
							<td width="100px">性别</td>
							<td>
								<input type="radio" name="sex"/><input type="radio" name="sex"/></td>
						</tr>
						<tr>
							<td>籍贯</td>
							<td>
								<select>
									<option value="bj">北京</option>
									<option value="sh">上海</option>
									<option value="hn">河南</option>
								</select>
								<select>
									<option value="zy">信阳</option>
									<option value="sq">商丘</option>
									<option value="zz">郑州</option>
								</select>
							</td>
						</tr>
						<tr>
							<td width="100px">爱好</td>
							<td>
								<input type="checkbox" name="hobby"/>篮球
								<input type="checkbox" name="hobby"/>足球
								<input type="checkbox" name="hobby"/>排球
								<input type="checkbox" name="hobby"/>羽毛球
							</td>
						</tr>
						<tr>
							<td width="100px">邮箱</td>
							<td>
								<input type="text" id="email"/>
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<input type="submit" value="注册" onclick="method1()"/>
							</td>
						</tr>
					</form>
				</table>
			</div>
		</div>
	</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值