睁眼写BUG,闭眼改BUG。

JavaScript 入门

2020.03.02

虽然我的目标是后端,但是前端的这些很厉害的东东,起码了解一下吧!
嘿嘿!

fighting!fighting!

Js

常见方法

eval() 计算字符串中的算数

length 长度

...

数组方法

concat() 数组合并

join() 指定间隔符转换字符串,例如join("-");

pop() 移除数组中最后一个元素,并返回

push() 数组的追加,返回新的长度

reverse() 返回一个元素顺序反转的array() 对象

shift() 移除数组中的第一个元素,并返回

unshift() 在开始位置插入指定元素

sort() 对数组进行适当的排序

splice() 数组删除指定位置的元素,并返回(可以在删除位置添加元素)

...

函数(function )

函数的声明

function test1(a1,a2){
 alert("函数声明一");
}
//js中函数可以为对象
var test2 = new Function("a1","a2","alert('函数声明二')");
//方式三
var test3 = function(a1,a2){
 alert("函数声明三");
}
//调用声明的函数
test1(1,2);
test2(1,2);

函数的参数

  • js 中的函数在调用时,形参可以不赋值,不报错
  • js 中的函数在调用时,形参赋值可以不全部赋值,不报错,但是实参会依次进行赋值

函数的返回值

  • js 中如果函数有返回值则直接返回,没有返回默认返回值undefined

类的声明

function Person(name,age){
    this.name=name;
    this.age=age;
    this.fav="唱歌";
    this.test=function(a){
        alert(a);
    }
}

类的使用

var p1=new Person("张三",32);
alert(p1.name);

对象

创建自定义对象

var obj=new Object();
//var obj={};
obj.name="张三";
obj.age=23;
obj.test=function(){
	alert("我是obj");
}

常用对象和方法

String

  • toUpperCase() 将字符串转换为大写
  • toLowerCase() 将字符串转换为小写
  • split() 按照指定的字符串切割字符串,返回数组
  • substr() 从指定的开始位置截取指定长度的子字符串
  • substring() 从指定的开始位置和指定的结束位置截取子字符串,含头不含尾.
  • indexOf() 返回指定子字符串第一次出现的角标,没有则返回-1

Date

  • getYear() 1900年开始距今的年份数
  • getFullYear() 当前的年份
  • getMonth() 当前月份的角标值,需要+1
  • getDate() 当前的日期数
  • getDay() 当前的星期数,但是周天会返回值为0
  • getHours() 当前事件的小时数
  • getMinutes()
  • getSeconds() 当前时间的秒数

Math

  • random() 返回0-1之间的随机数字,含0不含1
  • floor() 向下取整
  • ceil() 向上取整
  • round() 四舍五入
  • min()
  • max()

Global

  • eval() 将字符串转换为可执行的代码
  • isNaN() 判断是否值NaN
  • parseFloat() 获取字符中的浮点数

事件机制*

单双击事件

function testOnclick(){
    alert("单击事件");
}
function testOndblclick(){
    alert("双击事件");
}
<input type="button" name="" id="" value="单击事件" onclick="testOnclick();"/>
<input type="button" name="" id="" value="双击事件" ondblclick="testOndblclick();"/>

鼠标事件

function testOnmouseover(){
    alert("鼠标悬停事件");
}
function testOnmousemove(){
    alert("我被移动了");
}
function testOnmouseout(){
	alert("我被移出了");
}
<style type="text/css">
    #showdiv{
        width: 300px;
        height: 300px;
        border: solid 1px;
    }
</style>
<div id="showdiv" onmouseover="testOnmouseover();" onmousemove="testOnmousemove();" onmouseout="testOnmouseout();">
    
</div>

键盘事件(onkeyup,onkeydown)

...

焦点事件(onfocus,onblur)

...

页面加载事件(onload)

...

其他小姿势

  • onchange 值改变事件
  • 事件冲突 例如单双击
  • 事件阻断
  • 超链接调用js函数 调用js函数

window对象

常用方法

  • alert 警告框:提示一个警告信息,没有返回值

  • confirm 确认框:提示用户选择一项操作(确定true/取消false)

  • prompt 提示框:提示用户某个信息的录入(有数据点确定有返回值)


  • window.setTimeout() 指定的时间后执行指定的函数(参数1:函数对象;参数2:时间,单位毫秒;)

  • window.setInterval() 间隔执行(参数1:函数对象;参数2:时间,单位毫秒;)

  • clearTimeout clearInterval 分别停止上面的两位

子窗口方法

  • window.open('url','newwindow',....)
  • window.close(); 只能关闭open打开的页面

子页面调用父页面的函数

  • window.opener.方法名();

window对象常用属性

  • 地址栏属性(location)

    • window.location.href="url";
    • window.location.reload(); 刷新
  • 历史记录属性(history)

    • window.history.forward(); 前进
    • window.history.back(); 后退
    • window.history.go(index); 跳转到指定的历史记录资源
  • 屏幕属性(screen)

    • window.screen.width;
    • window.screen.height;
  • 浏览器配置属性(navigator)

    • window.navigator.userAgent;
  • 主题面板属性(document)

document对象**

浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存的HTML文档的所有信息.

获取html元素对象

直接获取方式

//id
window.document.getElementById("");
//name
document.getElementByname("");
//标签名
document.getElementTagName("");
//class
document.getElementClassName("");

间接获取方式

//父子关系
function testParent(){
    //获取父级元素对象
    var showdiv=document.getElementById("showdiv");
    //获取所有子元素对象数组
    var childs=showdiv.childNodes;
    alert(childs);
}
//子父关系
function testChild(){
    //获取子元素对象
    var inp=document.getElementById("inp");
    var div=inp.parentNode;
    alert(div);
}
//兄弟关系
function testBrother(){
    //兄获取弟
    var inp=document.getElementById("inp");
    var preEle=inp.previousSiblig;//弟获取兄
    var nextEle=inp.nextSibling;//兄获取弟
    alert(preEle+""+nextEle);
}

操作html元素对象的属性

//获取属性值
function testField(){
	//获取元素对象
    var inp=document.getElement("uname");
    //获取元素属性值
    alert(inp.type+":"+inp.name=":"+inp.id+":"+inp.value);
}
//修改元素属性值
function testField2(){
	//获取元素对象
    var inp=document.getElementById("uname");
    //修改元素属性
    inp.value="哈哈";
    inp.type="button";
}
//自定义属性
function testOwnField(){
					//获取元素对象
						var inp=document.getElementById("uname");
					//获取自定义属性的值
						alert(inp.getAttribute("abc"));//abc是属性名
				}
				//修改
				function testOwnField2(){
					//获取元素对象
					var inp=document.getElementById("uname");
					//修改自定义属性的值
					inp.setAttribute("abc","呵呵");
				}
//使用自定义方式操作固有属性
				function testOper(){
					//获取元素对象
						var inp=document.getElementById("uname");
					//操作对象属性
						alert(inp.getAttribute("type"));
						alert(inp.getAttribute("value"));
				}

操作html元素对象的内容和样式*

  • 元素对象名.innerHTML 返回当前元素对象的所有内容,包括HTML标签

  • 元素对象名.innerText 返回当前元素对象的所有内容,不包括HTML标签

  • 元素对象名.style.样式名= ""; //添加、修改、删除元素样式

  • 获取元素.className;//获取class,借此更改css样式(div.className="commen2";//修改class值==修改css样式)

操作html的文档结构

function delInp(btn){
	//获取父级div
    var showdiv=document.getElementById("showdiv");
    //获取要删除的子div
    var cdiv=btn.parentNode;//获取按钮的父级==showdiv的子级
    //父div删除子div
    showdiv.removeChild(cdiv);
}

document操作form元素

js操作form

获取form表单对象

​ 使用 id :var fm=document.getElementById("fm");

​ 使用name属性 :var frm=document.frm;

获取form下的所有表单元素对象集合

​ fm.elements

form表单的常用方法

​ 表单对象名.submit(); //提交表单数据

form的属性操作

​ 表单对象名.action="新的值" //动态的改变数据的提交路径

​ 表单对象名.method="新的值" //动态的改变提交方式

js表单元素的通用属性

只读模式:

​ readonly="readonly" //不可以更改,但是数据可以提交

关闭模式:

​ disabled="disabled" //不可以进行任何的操作,数据不会提交

document操作表格

具体看案例

...

document对象实现form表单校验

...