JavaScript基础语法
1.书写语法
1.1区分大小写:和Java一样
1.2分号可有可无
1.3注释和java一样
1.4大括号表示代码块
2.输出语句
Windows.alter() 警告框输出
document.write() html文件输出
console.log() 控制台输出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS输出语句</title>
</head>
<body>
<script>
window.alert("hello JavaScript1~");
document.write("hello JavaScript2~");
console.log("hello JavaScript3~");
</script>
</body>
</html>
3.变量
var
* 1.作用域大全局变量
* 2.可以重复相同的变量名
* let
* 1.当前作用域
* 2.不可以重复相同的变量名
* 变量可以赋值不同的数据类型
* 常量const4.数据类型
原始数据类型 引用数据类型
number:数字(整数、小数、NaN)
string:字符、字符串、单双引号都可以
boolean:布尔、ture、false
null:对象为空
undefined:当声明的变量未初始化时,该变量的默认值是undefined
typeof 变量名称返回对应的数据类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量数据类型</title>
</head>
<body>
<script>
var test2=666;
var test1=666;
var test1=888
/* var
* 1.作用域大全局变量
* 2.可以重复相同的变量名
* let
* 1.当前作用域
* 2.不可以重复相同的变量名
* 变量可以赋值不同的数据类型
* 常量const*/
{
let test=777;
alert(test2)
}
alert(test1)
const number='sdasdasd';
alert(number)
</script>
</body>
</html>
5.运算符
类型转换
其他类型转为number
1.string:按照字符串的字面值,转为数字,如果字面值不是数字,则转为false,其他的数字转化为true。
2.boolean:ture转为1,false转为0
其他类型转为boolean
1.number:0和NaN转为false
2.string:空字符串转为false
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>运算符</title>
</head>
<body>
<script>
/*类型转换
其他类型转为number
1.string:按照字符串的字面值,转为数字,如果字面值不是数字,
则转为false,其他的数字转化为true。
2.boolean:ture转为1,false转为0
其他类型转为boolean
1.number:0和NaN转为false
// 健壮性判断
2.string:空字符串转为false,*/
var test=500;
var test_="500";
// string会转为数字比较
// ==比较的是俩个数的值
// ===比较两个数值和数据类型
if (test == test_){
alert("输出为ture")
}else {
alert("输出为false")
}
if (0){
alert("输出为ture")
}else {
alert("输出为false")
}
if (1){
alert("输出为ture")
}else {
alert("输出为false")
}
if (NaN){
alert("输出为ture")
}else {
alert("输出为false")
}
if (""){
alert("输出为ture")
}else {
alert("输出为false")
}
</script>
</body>
</html>
6.流程控制语句
会javaSE就够了
7.函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数</title>
</head>
<body>
<script>
/*
* 被设计为执行特定任务的代码块
定义:JavaScript函数通过function关键字进行定义,语法为:
fanctio functionName(参数1,参数2,......){
}
注意:
1.形式参数不需要类型。因为JavaScript是弱类型语言
2.返回值也不需要定义类型,可以在函数内部直接使用return·1
返回即可。
*/
//法一
function add(a,b) {
return a+b;
}
alert(add(12,30,50,5,15,1)) //多参数不报错
alert(add(12)); //少参数返回Nan
//法二
var a=function (a,b) {
return a*b
}
let a1 = a(10,2);
alert(a1)
</script>
</body>
</html>
JavaScript对象
Array定义对象
数组是变长的,变类型,类似于java的集合
定义
var 变量名 = new Array(元素列表);
var 变量名 = [元素列表];
例子
var arr = new Array(1,2,3);
var arr = [1,2,3];
访问
变量名[索引值]
属性:length:数组中元素的个数
方法:
1.push:添加方法
2.splice:删除数组
splice(删除开始值,结束值)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组</title>
</head>
<body>
<script>
/*
* Array定义对象
// 数组是变长的,变类型,类似于java的集合
定义
var 变量名 = new Array(元素列表);
var 变量名 = [元素列表];
例子
var arr = new Array(1,2,3);
var arr = [1,2,3];
访问
变量名[索引值]
//属性:length:数组中元素的个数
// 方法:
1.push:添加方法
2.splice:删除数组
splice(删除开始值,结束值)*/
var a=new Array(1,2,3,4,5,6,7);
alert("数组法一:"+a);
var b=[1,2,3,4,5,6];
alert("数组法二:"+b);
//属性length
let length = b.length;
alert("数组length属性:"+length);
//方法splice
let numbers = a.splice(1,3);
alert("数组splice方法:".charAt(1)+numbers)
var c=[1,2,3,4,"6",'7','结束'];
alert(c)
for (i=0;i<c.length;i++){
alert(c[i]);
}
c.push("嗨嗨嗨开始了!");
alert(c);
alert(c[20]);
</script>
</body>
</html>
String定义对象
方式
1.var str1 = new srting(“abc”);
方式
2.var str2 =‘abc’;
2.var str2 = “abc”
// 属性:length:返回字符串长度
// trim():去除字符串前后端的空白字符
例子
var stat = “ abc ”
alter(stat.ttim)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>String对象</title>
</head>
<body>
<script>
let str1 = String("abc");
alert(str1);
let str2 ='abc';
alert(str2);
let str3 ="abc";
alert(str3)
//length属性
alert(str1+str2+str3);
//方法大多数的方法都类似于Java,trim()去除空格
let str4 = " 123 ";
alert(1+str4.trim()+1)
alert(str4)
</script>
</body>
</html>
自定义对象
var person = {
属性1:值
属性1:值
函数名称:function (){}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义对象</title>
</head>
<body>
<script>
var User={
age:18,
name:"张三",
address:"北京",
eat:function (a,b) {
return a+b;
}
}
alert(User.age);
alert(User.name);
alert(User.address);
alert(User.eat(12,10));
</script>
</body>
</html>
BOM对象
window对象可以省略
window:浏览器窗口对象
alter:警告框
confirm:对话框 返回值类型为boolean
setTimeout:一段时间执行一个function,只执行一次
setInterval:一段时间执行一个function,循环执行
Naviger:浏览器对象
Screen:用户屏幕对象
History:历史记录对象
window.history.方法()
back()返回上一个URL
forward()返回下一个URL
Location:地址栏对象
window.location.方法();
href() 设置或返回完整的URL
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>BOM对象</title>
</head>
<body>
<script>
/*
window:浏览器窗口对象
alter:警告框
confirm:对话框 返回值类型为boolean
setTimeout:一段时间执行一个function,只执行一次
setInterval:一段时间执行一个function,循环执行
Naviger:浏览器对象
Screen:用户屏幕对象
window对象可以省略
History:历史记录对象
window.history.方法()
back()返回上一个URL
forward()返回下一个URL
Location:地址栏对象
window.location.方法();
href() 设置或返回完整的URL
*/
window.confirm("我是一个对话框!");
window.setTimeout(function () {
window.location.href="https://www.baidu.com"
},3000)
</script>
</body>
</html>
DOM对象
获取Element
获取Element对象
1.getElementsByTagName 标签名称获取返回Element数组
2.getElementsByName 根据name属性值获取,返回Element数组
3.getElementsByClassName 根据class属性值获取,返回Element数组
4.getElementsById 根据id属性值获取返回一个Element对象
Element对象属性的使用
style:设置Css样式
innerHTML:设置元素内存
checkbox:ture false选中框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM对象</title>
</head>
<body>
<font id="NewTitle" >标题</font>
<input type="button" name="button" class="ClassTitle" value="button">
<div>
<p>
<h2>
我是文字1.
</h2>
</p>
</div>
<div>
<p>
<h2>
我是文字1.
</h2>
</p>
</div>
<div>
<p>
<h2>
我是文字1.
</h2>
</p>
</div>
<script>
//获取Element对象
let elementsByClassName = document.getElementsByClassName("ClassTitle");
let elementsByName = document.getElementsByName("button");
let elementById = document.getElementById("NewTitle");
let elementsByTagName = document.getElementsByTagName("div");
for (let i=0;i<elementsByTagName.length;i++){
elementsByTagName[i].style.color='red';
}
elementsByClassName[0].style.color='blue';
elementById.style.color='yellow';
elementsByName[0].style.color='brown';
elementsByTagName[0].innerHTML="我是文字0";
</script>
</body>
</html>
JavaScript事件监听
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件监听</title>
</head>
<body>
<input type="button" name="按钮1" id="NewButton" onclick="add(12,13)" value="按钮1"> <br>
<input type="button" name="按钮2" id="NewButton1" value="按钮2">
<script>
var add=function (a,b){
return alert(a+b);
};
document.getElementById("NewButton1").onclick=function () {
alert("无耦合方法输出")
};
</script>
</body>
</html>
JavaScript表单验证
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单验证</title>
<style>
#error{
color: red;
}
#error_password{
color: red;
}
</style>
</head>
<body>
<form id="login" action="#" >
<table width="300" >
<tr>
<td><h3>用户名:</h3></td>
<td><input type="text" id="username" name="用户名"><br>
<span id="error" style="display:none">用户名输入有误!</span>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><h3>密 码:</h3></td>
<td><input type="password" id="password" name="密码">
<br>
<span id="error_password" style="display:none">密码输入有误!</span>
</td>
</tr>
<tr>
<td></td>
<td> <input type="submit" value="登录"></td>
</tr>
</table>
</form>
<script>
var usernameInput = document.getElementById("username");
usernameInput.onblur=checkUsername;
function checkUsername () {
var reg = /^\w{1}\d{8}$/;
var value = usernameInput.value;
var flag = reg.test(value);
//var flag=usernameInput.value.length>=6 && usernameInput.value.length<=12;
if (flag){
document.getElementById("error").style.display='none';
}else {
document.getElementById("error").style.display='';
}
return flag;
}
var password = document.getElementById("password");
password.onblur=checkPassword;
function checkPassword () {
var reg = /^\d{6}$/;
var value = password.value;
var flag = reg.test(value);
//var flag=password.value.length>=6 && password.value.length<=12;
if (flag){
document.getElementById("error_password").style.display='none';
}else {
document.getElementById("error_password").style.display='';
}
return flag;
}
var elementById = document.getElementById("login");
elementById.onsubmit=function () {
var flag=checkPassword()&&checkUsername ();
return flag;
}
</script>
</body>
</html>