Javascript
变量:
什么是变量,变量是可以存储某些值的内存的命名。
JavaScript的变量类型:
数值类型 | number |
字符船类型 | String |
对象类型 | object |
布尔类型 | Boolean |
函数类型 | function |
Javascript里特殊的值:
undefined | 未定义,所有js变量未赋于初始值的时候就是undefined |
null | 空值 |
NAN | 全称是:Not a Number 非数字 非数值 |
Js中定义变量格式:
var 变量名;
var 变量名 = 值 ;
typeof() 函数查看当前变量是什么类型:
<script type:"text/javascript">
var i ="12";
alert(typeof(i))
</script>
关系运算符:
等于: == 等于是简单的做字面值比较
全等于: === 除了做变量的字面值比较之外,还会比较两个变量的数据类型
逻辑运算符:
&& 且运算
- 当表达式全为真true的时候返回最后一个表达式的值
- 当表达式中又一个为假false的时候返回第一个为假的值
|| 或运算
- 当表达式全为假false的时候返回最后一个表达式的值
- 当表达式中又一个为真true的时候返回第一个为假的值
数组:
var arr = [true,"javascript,3,null,undefined"]
arr[2] = "abc;
var arr[9];
arr.length 获取数组长度
JS中的数组只要我们通过数组索引下标赋值,那么做大的索引值,就会自动的给数组扩容操作。
for循环:
for (var j = 0; j < 100; j++) {
}
JavaScript函数**:
函数的两种定义方式
注意:JavaScript中函数不允许重载,一个html文件里面两个同名的function,最后写的会覆盖上一个写的。
第一种:可以用function关键字来定义函数
使用的格式如下:
function 函数名(形参列表) {
函数体
}
第二种:
var 函数名= function (形参列表) {
函数体
}
无参函数:
<script>
//第一种
function fun1() {
alert("无参函数JavaScript")
}
//第二种
var fun2 = function () {
alert("无参函数JavaScript")
}
//输出
fun1();
fun2();
</script>
带参函数:
<script>
//第一种方式
function fun(a,c) {
alert("带参函数a="+a+"带参函数c="+c)
}
fun(12,"代餐函数")
//第二种方式
var fun2 = function(a,b){
alert("带参函数a="+a+"带参函数c="+c)
}
fun2(12,"代餐函数")
</script>
在JavaScript语言中如何定义带有返回值的函数?
只需要在函数体中直接return语句返回值即可。
带有返回值的参数:
<script>
//第一种方式
function fun1(a,c) {
var number = a+c;
return number;
}
//第二种方式
var fun2 = function(a,c){
var number = a+c;
return number;
}
alert(fun2(100,200))
alert(fun1(100,200))
//打印输出300
</script>
获取参数,查看参数的个数:
<script>
function sum(a,b) {
alert("函数1"+arguments[0])
alert("函数2"+arguments[1])
alert(arguments.length)
}
sum(1,"abc");
</script>
JS中的自定义对象:
Object形式自定义对象:
对象的定义:
var 变量名 = new Object(); //对象实例
变量名.属性名 = 值; //定义一个属性
变量名.函数名 = function(){ //定义一个函数
函数体
}
案例:
<script type="text/javascript">
var obj = new Object();
obj.name = "华仔";
obj.age = 18;
obj.hua = function () {
alert("姓名:"+this.name+",年龄:"+this.age);
}
alert("姓名:"+obj.name); //姓名:华仔
obj.hua(); //姓名:华仔,年龄:18
</script>
花括号{}定义对象:
对象的定义:
var 变量名 = { //空对象
属性名:值, //定义一个属性
属性名:值 //定义一个属性
函数名:function(){ //定义一个函数
函数体
}
}
对象访问:
变量名.属性 / 属性名()
案例:
<script type="text/javascript">
var cai = {
age: 18,
name: "菜",
fun: function () {
alert("姓名:" + this.name + ",年龄:" + this.age)
}
}
alert(cai.age);//弹出 年龄:18
cai.fun();//弹出:姓名:菜,年龄:18
</script>
JS中的事件
什么是事件?
事件是电脑输入设备与页面进行的交互。
常用的事件:
onload | 加载完成事件 | 页面加载完成后,常用于做页面js代码初始化操作。 |
onclike | 单机事件 | 常用于按钮的点击响应事件。 |
onblur | 失去焦点的事件 | 常用于输入框鼠标离开焦点,用于验证输入内容是否合法 |
onchange | 内容发生改变事件 | 常用于下拉列表和输入框内容发生改变后操作 |
onsubmit | 表单提交事件 | 常用于表单提交前,验证所有表单项是否合法 |
事件注册又分为静态注册和动态注册:
什么是事件的注册(绑定)?
其实就是告诉浏览器,当前事件响应后要执行哪些操作代码,叫事件注册或事件绑定。
静态注册:
通过html标签的事件属性直接赋予事件响应后的代码,这种事情我们叫做静态注册。
onload事件
<script type="text/javascript">
window.onload = function (){
alert("动态事件")
}
</script>
<!--<body onload="onlodfun()">-->
<body onload="alert('ollode静态事件')">
</body>
动态注册:
先通过js代码得到标签的dom对象,然后再通过dom对象.事件名= function(){}这种形式赋予事件响应后的代码,叫做动态注册。
动态注册基本步骤:
- 获取标签对象
- 标签对象.事件名 = function(){}
window.onload = function(){
var name = document.getElementById("");
name.事件名 = function(){
}
}
onload事件:加载完成事件
<script type="text/javascript">
window.onload = function (){
alert("动态事件")
}
</script>
</head>
<body>
</body>
onclick单机事件
<script type="text/javascript">
// 静态事件
function onclik() {
alert("静态事件2")
}
//动态事件
window.onload = function () {
var element = document.getElementById("btn01");
element.onclick = function () {
alert("动态事件")
}
}
</script>
</head>
<body>
<button onclick="alert('静态事件1')">静态事件1</button>
<button onclick=onclik()>静态事件2</button>
<button id="btn01">动态事件</button>
</body>
onblur失去焦点事件:
<script type="text/javascript">
function onblurfun() {
console.log("静态失去焦点")
}
window.onload = function () {
var password = document.getElementById("password");
password.onblur = function () {
alert("动态失去焦点")
}
}
</script>
</head>
<body>
账号:<input type="text" onblur="onblurfun()"/><br>
密码:<input type="text" id="password"><br>
</body>
onchange内容发生改变事件:
<script type="text/javascript">
function onchangefun(){
alert("静态事件内容发生改变2")
}
window.onload = function () {
var name = document.getElementById("name");
name.onchange = function (name) {
alert("动态事件内容发生改变"+name)
}
}
</script>
</head>
<body>
<select onchange="alert('静态事件内容发生改变1')">
<option>---请选择---</option>
</select>
<select onchange=onchangefun()>
<option>---请选择---</option>
<option>小明</option>
<option>小红</option>
<option>小白</option>
</select>
<select id="name">
<option>---请选择---</option>
<option>热巴</option>
<option>娜扎</option>
<option>丫丫</option>
</select>
onsubmit提交事件:
<script type="text/javascript">
function fun() {
alert("静态表单提交")
return false;//阻止表单提交
}
window.onload = function () {
var form = document.getElementById("form01");
form.onsubmit = function () {
alert("动态标签提交")
return false;//阻止表单提交
}
}
</script>
</head>
<body>
<form onsubmit="return fun()" action="../../servlet/web/a/b/c.html">
<input type="submit" name="静态表单提交">
</form>
<form onsubmit="return fun()" action="../../servlet/web/a/b/c.html" id="form01">
<input type="submit" name="动态表单提交">
</form>
</body>
DOM对象
1.document.getElementById ( Id );
根据标签的id属性查找标签的dom对象,参数id是标签的id属性值。
innerHtml方法:表示起始标签和结束标签中的内容
2.document.getElementByName ( name ) ;
根据标签的name属性查找标签的dom对象,参数name是标签的name属性值。
checked方法:表示复选框中的值,true为选中,false为不选
3.document.getElementByTagName(tagname);
根据标签名查找标签的dom对象,参数tagname是标签名称。
4.document.createElement(tagtext);
通过给定的标签名创建一个标签对象。tagtext是标签名
注意:document对象的三个查询方法,如果标签有id属性的话优先使用getElementById方法查询,如果没有id属性,则使用getElementByName方法查询,如果没有name属性,则使用标签名getElementByTagName方法查询。代码一定要在页面加载完成后才能查询到对象
document.getElementById();根据id获取标签(id相同只获取第一个)
document.getElementById().innerHtml; 表示起始标签和结束标签中的内容
<script type="text/javascript">
function fun() {
//1.当我们要操作一个标签的时候,一定要先取这个标签对象
var usernameobj = document.getElementById("username");
//2.获取标签输入框的值
var value = usernameobj.value;
var z = /^\w{5,12}$/;
var error = document.getElementById("error");
var success = document.getElementById("success");
/**
* test方法用于测试某个字符串是不是匹配我的规则
* 匹配就返回true
*/
if (z.test(value)) {
//innerHTML表示起始标签和结束标签中的内容
success.innerHTML = "输入名称合法:" + value
error.innerHTML = ""
} else {
success.innerHTML = ""
error.innerHTML = "输入名称不合法:" + value
}
}
</script>
</head>
<body>
用户名:<input type="text" id="username">
<span id="error" style="color: red"></span>
<span id="success" style="color: chartreuse"></span>
<button onclick="fun()">校验</button>
</body>
document.getElementByName获取标签的name属性
document.getElementByName.checked复选框的状态 true是选中,false是不选,可读可写
<script type="text/javascript">
function yes() {
var byName = document.getElementsByName("happy");
for (let i = 0; i < byName.length; i++) {
byName[i].checked = true;
}
}
function no() {
var byName = document.getElementsByName("happy");
for (let i = 0; i < byName.length; i++) {
//checked复选框的状态,可读可写
byName[i].checked = false;
}
}
function noandyes(){
var byName = document.getElementsByName("happy");
for (let i = 0; i < byName.length; i++) {
byName[i].checked = !byName[i].checked;
}
}
</script>
</head>
<body>
<input type="checkbox" name="happy" value="java">java
<input type="checkbox" name="happy" value="php">php
<input type="checkbox" name="happy" value="JavaScript">JavaScript
<br>
<br>
<button onclick="yes()">全选</button>
<button onclick="no()">全不选</button>
<button onclick="noandyes()">反选</button>
</body>
document.getElementByTagName:通过标签名查找标签dom对象
<script type="text/javascript">
function yes() {
var byName = document.getElementsByTagName("input");
for (let i = 0; i < byName.length; i++) {
byName[i].checked = true;
}
}
</script>
</head>
<body>
<input type="checkbox" value="java">java
<input type="checkbox" value="php">php
<input type="checkbox" value="JavaScript">JavaScript
<br>
<br>
<button onclick="yes()">全选</button>
</body>
document.createElement(tagtext);
appendChild可以添加一个子节点
<script type="text/javascript">
window.onload = function () {
var htmlDivElement = document.createElement("div");
htmlDivElement.innerHTML = '我是createElement创建的标签内容'
document.body.appendChild(htmlDivElement)
}
</script>
</head>
<body>
</body>
节点的常用属性和方法
节点就是html标签对象
方法
通过具体的元素节点调用
getElementByTagName();
方法,
appendChild(ochildNode)
方法,可以添加一个子节点,ochildNode是要添加的孩子节点
属性:
chidNodes
属性,获取当前节点的所有子节点
firstChild
属性,获取当前节点的第一个子节点
listchild
属性,获取当前节点的最后一个子节点
parendNode
属性,获取当前节点的父节点
nextSibling
属性,获取当前节点的下一个节点
previouSibling
属性,获取当前节点的上一个节点
className
用于获取或设置标签的Class对象
innerHTML
属性,获取标签起始到结束的内容
innerText
属性,获取标签其实到结束的文本