首页 > temp > JavaScript教程 >
-
了解js-javaScript一篇足矣
1.javaScript
js.后台打印日志
- console.log() --->控制台正常语句
- document.write();文档打印,向页面输出内容
基本的语法
变量 定义变量需要 用关键字 ‘var’
int i =10; var i=10
有五种类型: number 数值类型,boolean类型 String类型,object 对象类型,undefined 未定义类型
注意:
1.var可以省略不写,建议保留
2.最后一个分号可以省略,建议保留
3.同时定义多个变量可以用","隔开,公用一个‘var’关键字. var c = 45,d='qwe',f='68';
-
typeof操作符
-
写法:typeof(变量名) 或 typeof 变量名
-
null与undefined的区别:
null: 对象类型,已经知道了数据类型,但对象为空。
undefined:未定义的类型,并不知道是什么数据类型。
-
-
转换函数
- parseInt();将一个字符串转成整数 如果一个字符串包含非数字符则返回一个NAN
- inNAN():转换判断是否能换一个数字如果是非数据返回true isNAN=is not a number
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var i = 5; //整数
var f = 3.14; //浮点
var b = true; //布尔
var c = 'a'; //字符串
var str = "abc"; //字符串
var d = new Date(); //日期
var u; //未定义类型
var n = null; //空
document.write("整数:" + typeof(i) + "<br/>");
document.write("浮点 :" + typeof(f) + "<br/>");
document.write("布尔:" + typeof(b) + "<br/>");
document.write("字符:" + typeof(c) + "<br/>");
document.write("字符串:" + typeof(str) + "<br/>");
document.write("日期:" + typeof(d) + "<br/>");
document.write("未定义的类型:" + typeof(u) + "<br/>");
document.write("null:" + typeof(n) + "<br/>");
</script>
</body>
</html>
-
==
和===
的区别
var i = 2;
var j = "2";
alert(i==j); // ==比较的仅仅是数值, true
alert(i===j); // ===比较的是数值和类型.false
函数
什么是函数函数类似于java里的方法用于封装一些可重复使用的代码块
-
普通函数
function 函数名(形参列表){ 函数体 [return 返回值]--》可加 } 调用函数 var resule = 函数名(实参列表) </实例> //定义一个函数:计算两个数字之和 function add(a, b) { return a+b; } //调用函数 var v = add(1, 2); document.write("1, 2之和:" + v); </实例>
-
匿名函数:也叫回调函数,类似于java里的函数接口里的方法
function(形参列表){ 函数体 [return 返回值;] }
特点
参数列表里面直接写参数的变量名,不写var
函数没有重载,后面的直接把前面的覆盖了
js事件
事件介绍:
- HTML 事件是发生在 HTML 元素上的“事情”, 是浏览器或用户做的某些事情
- 事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。
属性 | 此事发生在何时 |
---|---|
onclick | 用户点击于事件 |
ondblclick | 用户双击事 |
onchange | 内容被改变 |
onblur | 失去焦点 |
onfocus | 获得焦点 |
onload | 加载完成后(一张页面或图片加载) |
onsubmit | 确定按钮被点击表单提交 |
onkeydown | 某个键盘键按下 |
onkeypress | 某个键盘被按住 |
onkeyup | 某个键盘被松开 |
onmousedown | 鼠标按钮被按下。 |
onmouseout | 鼠标从某元素移开。 |
omouseover | 鼠标移到某个元素之上 |
onmousemove | 鼠标被移动 |
事件绑定
使用事件的二种方式
- 普通函数方式
<标签 属性="js代码,调用函数"></标签>
- 匿名函数方式
<script>
标签对象.事件属性 = function(){
//执行一段代码
}
</script>
-
点击事件
需求:每点击一次按钮弹出hello
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--方式一:设置标签的属性--> <input type="button" value="点我吧" onclick="sayHello()"/> <!--方式二:派发事件匿名函数标签对象事件属性 =function(){}--> <input id ="inputId" type="button" value="干我吧"/> <script> function sayHello() { document.write("hello"); } //这个方法中的getElementById会介绍到 document.getElementById("inputId").onclick =function () { document.write("你好") } </script> </body> </html> <script src="my.js"></script>
-
获得焦点(onfocus)和失去焦点
- 需求:给输入框设置和失去焦点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input id ="inputId" type="text" onfocus="onfou(this)" onblur="onblu()" value="hello.."> <script> function onfou(t){ //this 表示形参指的是input里的内容 ,t实参调用this console.log(t.value); // document.write(t.value); } function onblu() { console.log("你好"); } </script> </body> </html> <script src="my.js"></script>
-
内容改变
需求:给select设置内容改变事件
<body> <!--内容改变(onchange)--> <select onchange="changeCity(this)"> <option value="bj">北京</option> <option value="sh">上海</option> <option value="sz">深圳</option> </select> </body> <script> function changeCity(obj) { console.log("城市改变了"+obj.value); } </script>
等xx加载完成(onload) 可以把script放在body的后面/下面, 就可以不用了
<head> <meta charset="UTF-8"> <title>Title</title> <script> function initData() { // 标签对象.value = ""; var inputEle = document.getElementById("inputId"); inputEle.value = "你好.."; } </script> </head> <!--onload: 等xx加载完成--> <body onload="initData()"> <input id="inputId" type="text" value="hello..."/> </body>
正则表达式
正则表达的语法
对象形式:var len =new RegExp(正则表达式)
直接定义:var reg =/正则表达式/;
常用方法
test(string) String为要校验的字符串 返回值为bolean类型 正确返回true
常见正则表达式
符号 | 作用 |
---|---|
\d | 数字 |
\D | 非数字 |
\w | 单词:a-zA-z0-9 |
\W | 非单词 |
. | 任意字符匹配 |
{n} | 匹配n次 |
{n,} | 大于或等于n次 |
{n,m} | 在n次和m次之间 |
+ | 1~n次 |
* | 0-n次 |
? | 0-1次 |
^ | 匹配开头 |
$ | 匹配结尾 |
[a-zA-Z] | 英文字母 |
[a-zA-Z0-9] | 英文字母和数字 |
[xyz] | 字符集合, 匹配所包含的任意一个字符 |
没了 |
使用示例
需求:
- 出现任意数字3次
- 只能是英文字母的, 出现6~10次之间
- 只能由英文字母和数字组成,长度为4~16个字符,并且以英文字母开头
- 手机号码: 以1开头, 第二位是3,4,5,6,7,8,9的11位数字
步骤:
-
创建正则表达式
-
调用test()方法
<SCRIPT> ^和$没有啥特殊的含义只是表示开头和结尾哦 //出现任意数字3次 var len =/^/d{3}$/ //校验字符串 len.text(123)->true //只能是英文字母出现6-10次 var len1 =/^[a-zA-Z[6-10]]$/ //3 用户名:只能由英文字母和数字组成,长度为4~16个字符,并且以英文字母开头 var reg3 =/^[a-zA-Z][a-zA-Z0-9]{3,15}$/; var str3 = "zs"; // alert(reg3.test(str3)); //4. 手机号码: 以1开头, 第二位是3,4,5,6,7,8,9的11位数字 //var reg4 =/^1[3456789]\d{9}$/i; //忽略大小写的 var reg4 =/^1[3456789]\d{9}$/; //不忽略大小写的 var str4 = "188245899"; alert(reg4.test(str4)); </script>
内置对象Array数组【重点】
和java的数组不同它类似像java中的所有的存对象的合集整合了java中list,array和map
语法
- var arr = new Array(size)
- var arr =new Array(elment1,element2,element3,.....)
- var arr=[element1,element2,element3,.....];最常用
数组的特点为
- 数组 中的每个元素可以是任意类型比较开放
- 数组的度可以变更加像java中的List
<script>
//方式一new Array(Size)
var array01 = new Array(4);
array01[0]=1;
array01[1]=2;
//方式二 new Array(ele,ele...)
var array02 = new array02(1,2,34,5,6);
//方式三
var array02=[2,34,566,45,90];
//任意类型
var array04 = [1, 2, 3, "哈哈"];
</script>
数组常见的方法
ApI介绍
concat():连接两上或更多的数组,并返回结果
join:把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔
reverse 颠倒数组中的元素的顺序
//3.常用的方法
//3.1 concat() 连接两个或更多的数组,并返回结果。【重点】
var array05 = [1, 2, 3, 4];
var array06 = ["哈哈", "你好", 100, 200];
var array07 = array05.concat(array06);
console.log(array07);
//3.2 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
var str = array05.join("**");
console.log(str);
//3.3 reverse() 颠倒数组中元素的顺序。
array06 = array06.reverse();
console.log(array06);
数组里面再入数组就是二维数组
//4.二维数组
//方式一:
var citys = new Array(3);
citys[0] = ["深圳", "广州", "东莞", "惠州"];
citys[1] = ["武汉", "黄冈", "黄石", "鄂州", "荆州"];
citys[2] = ["济南", "青岛", "烟台", "淄博", "聊城"];
var citys02 = [
["深圳", "广州", "东莞", "惠州"],
["武汉", "黄冈", "黄石", "鄂州", "荆州"],
["济南", "青岛", "烟台", "淄博", "聊城"]
];
for (var i = 0; i < citys02.length; i++) {
var cityArray = citys02[i];
console.log(cityArray);
for(var j = 0;j<=cityArray.length;j++){
console.log(cityArray[j]);
}
}
3.2. 日期常用方法
3.2.1API介绍
方法 | 描述 |
---|---|
Date() | 返回当日的日期和时间。 |
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setYear() | 请使用 setFullYear() 方法代替。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setTime() | 以毫秒设置 Date 对象。 |
toLocaleString() | 根据本地时间格式,把 Date 对象转换为字符串。 |
<script>
//1.创建日期对象
var myDate = new Date();
//2.调用方法
console.log("年:" + myDate.getFullYear());
console.log("月:" + (myDate.getMonth()+1));
console.log("日:" + myDate.getDate());
console.log("时:" + myDate.getHours());
console.log("分:" + myDate.getMinutes());
console.log("秒:" + myDate.getSeconds());
console.log("毫秒:" + myDate.getMilliseconds());
console.log(myDate.toLocaleString()); //打印本地时间 2019-12-06 12:02:xx
//console.log(myDate);
</script>
js的BOM
Browser Object Model ,浏览器对象模型. 为了便于对浏览器的操作,JavaScript封装了对浏览器中各个对象,使得开发者可以方便的操作浏览器中的各个对象。
3.2.BOM里面的五个对象
3.2.1window: 窗体对象
方法 | 作用 |
---|---|
alert() | 显示带有一段消息和一个确认按钮的警告框 |
confirm() | 显示带有一段消息以及确认按钮和取消按钮的对话框 |
setInterval('函数名()',time) | 按照指定的周期(以毫秒计)来调用函数或计算表达式 |
setTimeout('函数名()',time) | 在指定的毫秒数后调用函数或计算表达式 |
clearInterval() | 取消由 setInterval() 设置的 Interval()。 |
clearTimeout() | 取消由 setTimeout() 方法设置的 timeout。 |
<body>
<input type="button" value="开始" onclick="startSayHello()"/>
<input type="button" value="结束" onclick="stopSayHello()"/>
<script>
//1.弹出警告框 window.alert("不能删除!!!");widow可以省略
//alert("不能删除!!!");
//2.弹出确认框
//var flag = confirm("您确认删除吗?");
//console.log("flag="+flag);
//if(flag){
//请求服务器 删除
//}
//3.周期执行 setInterval('函数名()',time) eg: setInterval("sayHello()",1000);
//setInterval("sayHello()",10000);
//4.延迟执行 5s之后调用sayHello()
//setTimeout("sayHello()",5000);
var intervalFlag;
function startSayHello() {
//每隔1s开始打印hello...
intervalFlag = setInterval("sayHello()",100);
}
function stopSayHello() {
//停止打印sayHello()
clearInterval(intervalFlag);
}
function sayHello() {
console.log("hello..");
}
</script>
location.href:获取路径
location.href = "http://www.baidu.com"; 设置路径,跳转到百度页面
dom介绍(重要)
1. 什么是dom
- DOM:Document Object Model,文档对象模型。是js提供的,用来访问网页里所有内容的(标签,属性,标签的内容)
2. 什么是dom树
-
当网页被加载时,浏览器会创建页面的DOM对象。DOM对象模型是一棵树形结构:网页里所有的标签、属性、文本都会转换成节点对象,按照层级结构组织成一棵树形结构。
-
整个网页封装成的对象叫
document
-
标签封装成的对象叫
Element
-
属性封装成的对象叫
Attribute
-
文本封装成的对象叫
Text
-
整个网页封装成的对象叫
一切皆节点,一切为对象
3.1. 获取标签
方法 | 描述 | 返回值 |
---|---|---|
document.getElementById(id) |
根据id获取标签 |
Element 对象 |
document.getElementsByName(name) |
根据标签name获取一批标签 |
Element 类数组 |
document.getElementsByTagName(tagName) |
根据标签名称获取一批标签 |
Element 类数组 |
document.getElementsByClassName(className) |
根据类名获取一批标签 |
Element 类数组 |
//1.根据id获得
var inputEle = document.getElementById("inputId");
//2.根据标签名获得
var inputELes = document.getElementsByTagName("input");
console.log(inputELes.length); //8
//3.根据类名获得
var inputELes02 = document.getElementsByClassName("inputClass");
console.log(inputELes02.length); //4
3.2. 操作标签
方法 | 描述 | 返回值 |
---|---|---|
document.createElement(tagName) |
创建标签 |
Element 对象 |
parentElement.appendChild(sonElement) |
插入标签 | |
element.remove() |
删除标签 | |
document.createTextNode() |
创建文本 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>操作标签体</title>
</head>
<body>
<input type="button" value="获取d1的标签体内容" onclick="getHtml()">
<input type="button" value="设置d1的标签体内容" onclick="setHtml()">
<div id="d1">
你好
<p>嘿小黑马你好</p>
</div>
<script>
var d1 = document.getElementById("d1");
function getHtml() {
var html = d1.innerHTML;
alert(html);
}
function setHtml() {
d1.innerHTML = "<h1>深圳大马哥JavaEE</h1>";
}
</script>
</body>
</html>
作操属性
-
每个标签
Element
对象提供了操作属性的方法
方法名 | 描述 | 参数 |
---|---|---|
getAttribute(attrName) |
获取属性值 | 属性名称 |
setAttribute(attrName, attrValue) |
设置属性值 | 属性名称, 属性值 |
removeAttribute(attrName) |
删除属性 | 属性名称 |
好了就介绍到这里啦,欢迎留言呀!
出处:https://www.cnblogs.com/pyb4334/p/14530261.html