1、JavaScript介绍
注意:Java是强类型(类型不可变),而JavaScript是弱类型(类型可变 var)
JavaScript的特点:
- 交互性:信息的动态交互
- 安全性:不允许直接访问本地硬盘
- 跨平台性:只要是可以解释js的浏览器 都可以执行,和平台无关
2、JavaScript和HTML代码的结合
第一种方法:
在head标签中,或者在body标签中,使用script标来书写JavaScript代码
第二种方法:
使用script标签引入
注:script标签可以用来定义js代码,也可以引入js文件。但是两个功能二选一使用,不能同时使用两个功能,想用多次的话只需要再加一对script标签
<script type="text/javascript" src="1.js"> </script>
<script type="text/javascript">...</script >
3、变量
1、JavaScript的变量类型:
2、JavaScript里的特殊的值:
- undefined:未定义,所有js变量未赋予初始值的时候,默认值都是unfinished
- null:空值
- NAN:全称为not a number。非字数 ,非数值
3、变量的定义
var 变量名;//不赋初值
var 变量名=某个值;//赋初值
4、typeof()函数
typeof()是JavaScript提供的一个函数,它可以取变量的数据类型返回
4、关系运算
等于:==,字面值的比较
全等于:===还会比较数值的类型
5、逻辑运算
且运算:&&
或运算:||
取反运算:!
返回结果:
6、数组(重点)
js中数组的定义:
格式:
(1)定义一个空数组
(2)js中数组会可以自动扩容,中间未给赋值的值为undefined
(3)js中数组的遍历
var写成int、double等就会报错
7、函数(重点)
(1)第一种定义方式:使用function关键字来定义函数
使用格式如下:
function 函数名(形参列表)
{
函数体
}
①无参函数:
②有参函数
③有返回值的函数
函数体内添加return就可以。
(2)第二种定义方式
使用格式如下:
var 函数名 = function(形参列表){函数体}
(3)js中的函数不允许重载
(4)函数的arguments 隐形参数(只在function函数内)
基本内容:
需求:编写一个函数,用于计算所有参数相加的和并返回
结果:
当出现string时:
结果:
所以,最终的代码应该为:
8、js中的object形式的自定义对象(扩展)
1.对象的定义
2.对象的访问
格式:
操作实例:
9、js中的{}形式的自定义对象(扩展)
1.对象的定义
调用时同object形式一致
9、JavaScript中的事件
1.什么是事件
2.常用事件
3.什么是事件的注册(绑定)?
4.事件的注册分为静态注册和动态注册两种
(1)静态注册:
(2)动态注册:
先通过js代码得到标签的dom对象,然后再通过dom对象.事件名=function(){}这种形式赋予事件响应后的代码,叫动态注册
基本步骤:
(一)onload事件
onload事件是浏览器解析完页面之后就会自动触发的事件
(1)静态注册:
(2)动态注册:
...
<head>
<script type="text/javascript">
//onload动态注册是固定写法
window.onload = function()
{
alert("动态注册onload事件");
}
<script>
</head>
(二)onclick单击事件(多用于按钮button)
(1)静态注册:
(2)动态注册:
<head>
<script>
window.onload = function(){
//1.获取标签对象
/*
*document是JavaScript语言提供的一个对象(文档)
*get 获取
*Element 元素(就是标签)
*by 通过。。。 由。。。经。。。
*id id属性
*getElementById 通过id属性获取标签对象
*/
var btnobj = document.getElementById("btn01");
}
//2、通过 标签对象.事件名 = function(){}
btnobj.onclick = function()
{
alert("动态注册的onclick事件")
}
</script>
</head>
<body>
<button id="btn01">按钮</button>
</body>
(三)onblur失去焦点事件(常用于输入框)
(1)静态注册:
(2)动态注册:
(四)onchange内容发生改变事件(下拉列表和输入框)
(1)静态注册:
(2)动态注册:
- head标签内script标签内:
- body标签内:
(五)onsubmit表单提交事件(表单)
(1)静态注册:
- head标签内script标签内:
- body标签内:
(2)动态注册: - head标签内script标签内:
- body标签内:
10、DOM中模型
(一)Document对象
对应HTML代码:
Document文档树内存结构:
HTML要对象化改 怎么办
(二)document方法的介绍(重点)
案例一:验证用户名是否有效
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
function onclickFun()
{
//操作标签之前需要获取这个标签对象
var usernameObj=document.getElementById("username");
//将输入框输入的内容传入usernameText
var usernameText=usernameObj.value;
//正则表达式判断是否满足要求
var patt = /^\w{5,12}$/;
//test()方法用于测试某个字符串,符合返回true,不符合返回false
if(patt.test(usernameText))//判断传入到usernameText的输入框里的内容是否满足条件
{alert("用户名合法")}
else
{alert("用户名不合法")}
}
</script>
</head>
<body>
用户名:<input type="text" id="username" value="123"/>
<button onclick="onclickFun()">校验</button>
</body>
</html>
正则表达式对象:
RegExp对象:
语法:
方括号[]:
元字符(主要是\w):
量词:
因此我们可以知道:
var patt = /^\w{5,12}$/;
//含义为:从头到尾有5-12个单词字符
var str="53165416";
patt.test(str)
(三)两种常见的验证提示效果
第一种:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
function onclickFun()
{
//操作标签之前需要获取这个标签对象
var usernameObj=document.getElementById("username");
//将输入框输入的内容传入usernameText
var usernameText=usernameObj.value;
var usernameSpanObj = document.getElementById("usernameSpan");
var patt = /^\w{5,12}$/;
//test()方法用于测试某个字符串,符合返回true,不符合返回false
if(patt.test(usernameText))//判断传入到usernameText的输入框里的内容是否满足条件
{usernameSpan.innerHTML = "用户名合法";}//起始标签和结束标签中间的内容
else
{usernameSpan.innerHTML = "用户名不合法";}
}
</script>
</head>
<body>
用户名:<input type="text" id="username" value="123"/>
<span id="usernameSpan" style="color:red;"></span>
<button onclick="onclickFun()">校验</button>
</body>
</html>
第二种:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
function onclickFun()
{
//操作标签之前需要获取这个标签对象
var usernameObj=document.getElementById("username");
//将输入框输入的内容传入usernameText
var usernameText=usernameObj.value;
var usernameSpanObj = document.getElementById("usernameSpan");
var patt = /^\w{5,12}$/;
//test()方法用于测试某个字符串,符合返回true,不符合返回false
if(patt.test(usernameText))//判断传入到usernameText的输入框里的内容是否满足条件
{usernameSpan.innerHTML = "<img src=\"right.png\" width\"18\" height\"18\">";}//起始标签和结束标签中间的内容
else
{usernameSpan.innerHTML = "<img src=\"wrong.png\" width\"18\" height\"18\">";}
// height\"18\"中的\为转义字符
}
</script>
</head>
<body>
用户名:<input type="text" id="username" value="123"/>
<span id="usernameSpan" style="color:red;"></span>
<button onclick="onclickFun()">校验</button>
</body>
</html>
(三)getElementsByName方法
为了实现全选,全不选,反选之类的操作。
全选:
全不选:
反选:
(四)getElementsByTagName方法(按照标签名)
js代码实现:
(五)document对象三个查询方法的使用注意事项
1、使用顺序
2.以上三个方法,一定要在页面加载完成之后执行,才能查询到标签对象
以上便是博主这两天自学JavaScript的全部内容,希望对你能有所帮助