1 JavaScript介绍
JavaScript语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码。(简称JS)。
JS是弱类型,Java是强类型。(弱类型就是类型可变 ,如var = i,i = 1,i = " abc";强类型就是定义变量的时候类型确定,不能改变)
特点:
1)交互性(可以做信息的交互)
2)安全性(不允许直接访问本地硬盘)
3)跨平台性(只需要浏览器,和平台无关)、
2 JavaScript和HTML结合
2.1 第一种使用方式
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript">
/*
alert是js语言中提供的警告函数
它可以接收任意参数,这个参数就是警告框提示的信息
*/
alert("hello")
</script>
</head>
2.2第二种
引入外部的JS文件来执行。
<script type = "text/javascript" src =”1.js“ >
</script>
3 变量
JavaScript中的变量类型:
数值类型: number(对应java中的float 、int、 byte等等)
字符串类型: String
对象类型:object
布尔类型: boolean
函数类型: function
JavaScript里的特殊值:
undefind:未定义,所有js变量未赋初始值的时候,默认值都是undefined
null: 空值
NAN: 全称是:Not a Number。非数字,非数值
创建变量和java相同
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript" >
var i;
i = 12;
alert(typeof(i));
</script>
</head>
NAN的情况:
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript" >
var i = 12;
var p = "xixihaha";
alert(i*p);
</script>
</head>
3.1 JavaScript的关系运算
<script type = "text/javascript" >
var a = "12";
var b = 12;
alert(a == b);//true
alert(a === b);//false
</script>
3.2 逻辑运算
3.2.1 &&与运算
有两种情况:
第一种:当表达式全为真的时候,返回最后一个表达式的值。
第二种:当表达式中,有一个为假的时候,返回第一个为假表达式的值。
<script type = "text/javascript">
var a = "abc";
var b = "true";
var d = false;
var c = null;
alert(a&&b);//true
alert(b&&a)//abc
alert(a&&d)//false
alert(a&&c)//null
</script>
3.2.2 || 运算
两种情况:第一种情况:当表达式为假时,返回最后一个表达式的值
第二种情况:只有一个表达式为真,就会返回第一个为真的值
4 数组
<script type = "text/javascript">
var arr = [];
arr[3] = "abc";
for (var i = 0;i<arr.length;i++){
alert(arr[i]);
}
</script>
JS语言中的数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动的给数组做扩容操作。
5 函数
5.1 函数第一种使用方式
<script language="JavaScript">
function fun(){
//function的无参调用
alert("无参数funciton被调用了");
}
function fun2(a,b){
//function的有参调用
alert(a+b);
}
fun();
fun2(1,2)
</script>
5.2第二种使用方式
使用格式如下:
var 函数名 = function{形参列表}{函数体}
JS不允许重载
在Java中函数允许重载,但是在JS中函数的重载回直接覆盖掉上一次的定义
5.3 函数的arguments隐形参数(只在function函数内)
就在function函数中不需要定义,但却可以直接用来获取所有参数的变量,我们管它交隐形参数。
<script language="JavaScript">
function sum(num1,num2){
var result = 0;
for(var i = 0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
alert(sum(1,2,34,5,6,67,8,9))
</script>
6 JS中自定义对象
object形式的自定义对象
对象的定义:
var 变量名 = new object();//对象实例(空对象)
变量名.属性名 = 值;//定义一个属性
变量名.函数名 = fucntion{}//定义一个函数
对象的访问:
变量名.属性/函数名();
<script language="JavaScript">
var obj = new Object();
obj.name = "邢大靠普"
obj.age = "18";
obj.fun = function (){
alert(obj.name+obj.age);
}
alert(obj.fun())
</script>
var 变量名 = {};//空对象
<script language = "JavaScript">
var obj = {
name: "也弟",
fun:function () {
alert(this.name);
}
}
;
alert(obj.name)
</script>
7 JS中的事件
事件是电脑输入设备与页面进行交互的响应。我们称之为事件。
常用的事件:
onload加载完成事件 页面加载完成之后,常用于作业面JS代码初始化操作
onclick单机事件 常用于按钮的点击响应操作。
onblur失去焦点事件 常用于输入框失去焦点后验证其输入内容是否合法。
onchange内容发生改变事件 常用于下拉列表和输入框内容发生改变后的操作
onsubmit表单提交事件: 常用于表单提交前,验证所有表单项是否合法
7.1事件的注册(静态 动态)
事件的注册:
告诉浏览器,当事件响应后要执行哪些操作代码,叫事件的注册或事件的绑定。
静态注册事件:通过html标枪的时间属性直接赋于事件响应后的代码,这种方式我们叫静态注册。
动态注册事件:是指通过js代码得到标签的dom对象,然后通过dom对象.事件名 = function(){}这种形式赋予事件响应后的代码,叫动态注册。
动态注册的基本步骤:
1)获取标签对象
2)标签对象.事件名 = function(){}
7.2 onload事件
静态:
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
function fun(){
alert("xixihaha");
}
</script>
</head>
<body onload="fun()">
</body>
动态注册是固定写法
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
window.onload = function(){
alert("123")
}
</script>
</head>
<body>
</body>
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
window.onload = function(){
var btnObj = document.getElementById("btn1");
btnObj.onclick = function(){
alert("动态注册");
}
}
</script>
</head>
<body>
<button id = "btn1"> 按钮</button>
</body>
7.3 onblur事件
静态:
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
function fun(){
console.log("静态注册失去焦点事件");
}
</script>
</head>
<body>
<button onblur="fun()"> 按钮</button>
</body>
运行结果如下:
动态:
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
window.onload = function (){
var passwordObj = document.getElementById("password");
passwordObj.onblur = function(){
console.log("动态");
}
}
</script>
</head>
<body>
密码:<input id = "password" type = "text"> </input>
</body>
运行结果如下:
7.4 表单提交事件onsubmit
动态:
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script language = "JavaScript">
window.onload = function (){
var formsubmit = document.getElementById("Tpwork");
formsubmit.onsubmit = function(){
}
}
</script>
</head>
<body>
<form action = "http://baidu.com" method = "post" id = "Tpwork" >
<input type = "submit" value = "注册">
</form>
</body>
8 DOM模型
把标签、属性、文本 转换成为对象来管理。
Document 对象的理解:
第一点:Document对象管理所有的HTML文档内容
第二点:Document它是一种树形结构的文档。有层级关系。
第三点:它让我们把所有的标签 都对象化
第四点:我们可以通过Document访问所有的标签对象
8.1 document对象
8.1.1 getElementById
验证用户
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript">
function onclickFun(){
var getusername = document.getElementById("username");
var textgetusername = getusername.value;//dom对象
var patt = /^\w(5,12)$/;
/**
* test方法用于测试某个字符串是不是匹配我的规则
* 匹配返回true 不匹配返回false
*/
if(patt.test(textgetusername)){
alert("合法");
}else{
alert("不合法")
}
}
</script>
</head>
<body>
<input type = "text" id = "username" value = "abc" />
<button onclick="onclickFun()">点击</button>
</body>
8.1.2 getElementsByName
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript">
//全选
function checkall(){
//让所有的复选框都选中
//document.getElementByName()是根据指定得name属性查询返回多个标签对象集合
//这个集合的操作跟数组一样
var hobbies = document.getElementsByName("hobby");
for(var i = 0;i<hobbies.length;i++){
hobbies[i].checked = true;
}
}
//全部选
function checkNo(){
var hobbies = document.getElementsByName("hobby");
for(var i = 0;i<hobbies.length;i++){
hobbies[i].checked = false;
}
}
//反选
function checkReverse(){
var hobbies = document.getElementsByName("hobby");
for(var i = 0;i<hobbies.length;i++){
hobbies[i].checked = !hobbies[i].checked;
}
}
</script>
</head>
<body>
<input type = "checkbox" name = "hobby" value = "c++" />C++
<input type = "checkbox" name = "hobby" value = "java" />java
<input type = "checkbox" name = "hobby" value = "javascript" />javascript
<button onclick="checkall()">全选</button>
<button onclick="checkNo()">全不选</button>
<button onclick="checkReverse()">反选</button>
</body>
8.1.3 getElementsByTagName
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
<meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
<title></title>
<script type = "text/javascript">
//全选
function checkall(){
// document.getElementsByTagName()根据指定标签名来进行查询并返回集合
var inputs = document.getElementsByTagName("input");
for(var i = 0;i<inputs.length;i++){
inputs[i].checked = true;
}
}
</script>
</head>
<body>
<input type = "checkbox" name = "hobby" value = "c++" />C++
<input type = "checkbox" name = "hobby" value = "java" />java
<input type = "checkbox" name = "hobby" value = "javascript" />javascript
<button onclick="checkall()">全选</button>
</body>
8.1.4 添加子元素
<script type = "text/javascript">
window.onload = function(){
//用js代码创建html标签并显示在页面上
var dibobj = document.createElement("div");//在内存中<div></div>
dibobj.innerHTML = "旭哥牛逼";//<div>旭哥牛逼</div>但还只是在内存中
document.body.appendChild(dibobj);
}
</script>
效果相同
<script type = "text/javascript">
window.onload = function(){
var t = document.createTextNode("123")
document.body.appendChild(t);
}
</script>
8.2 正则表达式
<script type = "text/javascript">
/**
* 正则表达式对象的两种写法
* @type {RegExp}
*/
//表示字符串中,必须包含字母e
var patt = new RegExp("e");
var patt2 = /e/;
</script>
(更详细内容查百度)