CSS
01第一个样式

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>CSS层叠样式表</title> <style type="text/css"> p { background-color: red; font-size: 20px; } </style></head><body> <p>http://www.15pb.com.cn</p> <p>十五派信息安全教育</p></body></html>
02外部方式引入样式表

p { background-color: red; font-size: 20px;}.study-url{ background-color: skyblue; }
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>外部方式引入css</title> <!-- rel 关系, type 文件类型, href 文件路径 --> <link rel="stylesheet" type="text/css" href="import.css"></head><body> <p class="study-url">http://www.15pb.com.cn</p> <p>十五派信息安全教育</p></body></html>
03选择器

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>CSS层叠样式表</title> <style type="text/css"> /* 类选择器 */ .study-url{ background-color: skyblue; } /* 标签选择器 */ p { background-color: red; font-size: 20px; } </style></head><body> <p class="study-url">http://www.15pb.com.cn</p> <p>十五派信息安全教育</p></body></html>
04背景样式

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>背景样式</title> <style type="text/css"> pre{ font-size: 30px; } body { background-color: aqua; background-image: url("img/4.jpg"); background-repeat: repeat-y; background-attachment:fixed; background-position: top left; /* background: aqua url("img/4.jpg") repeat-y fixed top center */ } </style></head><body> <p>网络安全</p> <p>十五派信息安全教育</p> <p> 随着国家对于网络安全的逐步重视以及各大公司对于信息安全人才的需求猛增,对于基础型网络安全人才的要求正逐步走向理性,已经可以看到大量公司对于人才的需求正从注重奇技淫巧向基础扎实技术涉猎面广发展,为网络安全教育的合理性奠定了一个必要基础。与此同时恰逢十五派软件安全课程成熟,有能力抽调部分研发力量集中研发新课程,进而诞生了十五派网络安全课程。 网络安全高级课是十五派推出的主打课程,主要面向对黑客技术或信息安全有兴趣、有追求的,或是有意从事前端安全的极客群体。为了使得十五派的网络安全方向毕业生更有竞争力,因此课程从研发之初就将课程的重点放在“网络”而并非“前端”上,前端的渗透仅仅被作为一个基础,而体现学生关键竞争力的被定位到网络协议分析与APP安全上,这将使得从十五派毕业的学生基础更加扎实,工作适应面更广。 勿在浮沙筑高台,本课程将涵盖HTML、CSS、JavaScript、PHP、SQL、Python、Java、Smali等八种语言的开发级讲解,业内罕有,从而使得后面课程的深入讲解成为可能。与此同时,不用担心十五派的网络安全课程会像其他机构一样“变异”成网站开发培训附带网络安全或网络运维培训附带网络安全。我们充分利用了十五派在软件安全教学过程中总结的教学方法,可以使得学生在较短的时间内掌握以上语言的开发技能,进而将以上八种语言的学习时间控制在一个月以内,而基础部分的课时占比更是被严格控制在30%以内。 </p></body></html>
05文本样式

p { /* 指定颜色 */ color: rgb(121, 59, 59); /* 指定文字的方向,rtl 从右到左,阿拉伯数字 */ direction: ltr; /* 字符之间的空隙 */ letter-spacing: 20px; /* 行高 */ line-height: 50px; /* 文本对齐 justify是左或右对齐,看direction*/ text-align: justify; /* 设置文本下划线、上划线、删除线 */ text-decoration: underline; /* 设置文本阴影 */ text-shadow:5px 5px 5px red; /* 设置文本大(u)小(l)写转换 */ text-transform: uppercase; /* 首行缩进 */ text-indent:20px;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>文本样式</title> <link rel="stylesheet" href="import1.css"></head><body> <p>网络安全</p> <p>十五派信息安全教育</p> <p>a b c d e f</p> <p>1 2 3 4 5 6</p> <p> 随着国家对于网络安全的逐步重视以及各大公司对于信息安全人才的需求猛增,对于基础型网络安全人才的要求正逐步走向理性,已经可以看到大量公司对于人才的需求正从注重奇技淫巧向基础扎实技术涉猎面广发展,为网络安全教育的合理性奠定了一个必要基础。与此同时恰逢十五派软件安全课程成熟,有能力抽调部分研发力量集中研发新课程,进而诞生了十五派网络安全课程。 网络安全高级课是十五派推出的主打课程,主要面向对黑客技术或信息安全有兴趣、有追求的,或是有意从事前端安全的极客群体。为了使得十五派的网络安全方向毕业生更有竞争力,因此课程从研发之初就将课程的重点放在“网络”而并非“前端”上,前端的渗透仅仅被作为一个基础,而体现学生关键竞争力的被定位到网络协议分析与APP安全上,这将使得从十五派毕业的学生基础更加扎实,工作适应面更广。 勿在浮沙筑高台,本课程将涵盖HTML、CSS、JavaScript、PHP、SQL、Python、Java、Smali等八种语言的开发级讲解,业内罕有,从而使得后面课程的深入讲解成为可能。与此同时,不用担心十五派的网络安全课程会像其他机构一样“变异”成网站开发培训附带网络安全或网络运维培训附带网络安全。我们充分利用了十五派在软件安全教学过程中总结的教学方法,可以使得学生在较短的时间内掌握以上语言的开发技能,进而将以上八种语言的学习时间控制在一个月以内,而基础部分的课时占比更是被严格控制在30%以内。 </p></body></html>
06字体样式

p { /* 设置字体 */ font-family: 隶书; /* 设置字体斜体 */ font-style: italic; /* 设置字体粗细 */ font-weight: bold; /* 设置字体大小 */ font-size: 20px;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>字体样式</title> <link rel="stylesheet" href="import2.css"></head><body> <p>网络安全</p> <p>十五派信息安全教育</p> <p>a b c d e f</p> <p> 随着国家对于网络安全的逐步重视以及各大公司对于信息安全人才的需求猛增,对于基础型网络安全人才的要求正逐步走向理性,已经可以看到大量公司对于人才的需求正从注重奇技淫巧向基础扎实技术涉猎面广发展,为网络安全教育的合理性奠定了一个必要基础。与此同时恰逢十五派软件安全课程成熟,有能力抽调部分研发力量集中研发新课程,进而诞生了十五派网络安全课程。 网络安全高级课是十五派推出的主打课程,主要面向对黑客技术或信息安全有兴趣、有追求的,或是有意从事前端安全的极客群体。为了使得十五派的网络安全方向毕业生更有竞争力,因此课程从研发之初就将课程的重点放在“网络”而并非“前端”上,前端的渗透仅仅被作为一个基础,而体现学生关键竞争力的被定位到网络协议分析与APP安全上,这将使得从十五派毕业的学生基础更加扎实,工作适应面更广。 勿在浮沙筑高台,本课程将涵盖HTML、CSS、JavaScript、PHP、SQL、Python、Java、Smali等八种语言的开发级讲解,业内罕有,从而使得后面课程的深入讲解成为可能。与此同时,不用担心十五派的网络安全课程会像其他机构一样“变异”成网站开发培训附带网络安全或网络运维培训附带网络安全。我们充分利用了十五派在软件安全教学过程中总结的教学方法,可以使得学生在较短的时间内掌握以上语言的开发技能,进而将以上八种语言的学习时间控制在一个月以内,而基础部分的课时占比更是被严格控制在30%以内。 </p></body></html>
07列表样式

ul{ /* 设置无序列表项 类型是空心圆,none是没有列表符号 */ list-style-type: circle; /* 设置列表符号的位置 */ list-style-position: outside; /* 设置列表符号的图标 */ list-style-image: url("logo/1.gif"); /* 设置上面三个属性 */ /* list-style: circle outside url("logo/9.gif"); */}ol{ /* 设置大写拉丁字母 */ list-style-type: upper-latin;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="import3.css"> <title>列表样式</title></head><body> <ul> <li>列表项</li> <li>列表项</li> <li>列表项</li> </ul> <ol> <li>列表项</li> <li>列表项</li> <li>列表项</li> </ol></body></html>
08伪类选择器

/* 超链接未访问时属性 */a:link{ color:red;}/* 超链接访问后属性 */a:visited{ color: green;}/* 鼠标在超链接上面属性 */a:hover{ color: yellow; font-size: 30px;}/* 鼠标点击超链接时属性 */a:active{ color:blue;}/* 鼠标在输入框上面属性 */input:hover{ background-color: red;}/* 鼠标激活输入框属性 */input:active{ background-color: blue;}/* 光标在输入框内属性 */input:focus{ background-color: yellow;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>伪类选择器</title> <link rel="stylesheet" href="import4.css"></head><body> <p>http://www.15pb.com.cn</p> <p>十五派信息安全教育</p> <a href="http://www.15pb.com.cn">十五派信息安全教育</a> 用户名:<input type="text" ></body></html>
09结构性伪类选择器

/* body中第一个标签是p时有效 *//* p:first-child{ background-color: red;} *//* body中最后一个标签是p时有效 *//* p:last-child { background-color: red;} *//* body中指定位置标签是p时有效 */p:nth-child(3){ background-color: red;}/* 设置表格指定列属性 *//* td:nth-child(2){ background-color: blue;} *//* 设置表格倒数指定列属性 *//* td:nth-last-child(2){ background-color: red;} *//* 设置body下的第一个元素h1,如果不是则找到它设置,找不到则无效 */body h1:first-of-type{ background-color: red; }
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>结构性伪类选择器</title> <link rel="stylesheet" href="import5.css"></head><body> <h1>标题</h1> <p>网络安全</p> <p>十五派信息安全教育</p> <p>a b c d e f</p> <table border="1" width="500px"> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>2</td> <td>2</td> <td>2</td> </tr> <tr> <td>3</td> <td>3</td> <td>3</td> <td>3</td> </tr> </table> <p> 随着国家对于网络安全的逐步重视以及各大公司对于信息安全人才的需求猛增,对于基础型网络安全人才的要求正逐步走向理性,已经可以看到大量公司对于人才的需求正从注重奇技淫巧向基础扎实技术涉猎面广发展,为网络安全教育的合理性奠定了一个必要基础。与此同时恰逢十五派软件安全课程成熟,有能力抽调部分研发力量集中研发新课程,进而诞生了十五派网络安全课程。 网络安全高级课是十五派推出的主打课程,主要面向对黑客技术或信息安全有兴趣、有追求的,或是有意从事前端安全的极客群体。为了使得十五派的网络安全方向毕业生更有竞争力,因此课程从研发之初就将课程的重点放在“网络”而并非“前端”上,前端的渗透仅仅被作为一个基础,而体现学生关键竞争力的被定位到网络协议分析与APP安全上,这将使得从十五派毕业的学生基础更加扎实,工作适应面更广。 勿在浮沙筑高台,本课程将涵盖HTML、CSS、JavaScript、PHP、SQL、Python、Java、Smali等八种语言的开发级讲解,业内罕有,从而使得后面课程的深入讲解成为可能。与此同时,不用担心十五派的网络安全课程会像其他机构一样“变异”成网站开发培训附带网络安全或网络运维培训附带网络安全。我们充分利用了十五派在软件安全教学过程中总结的教学方法,可以使得学生在较短的时间内掌握以上语言的开发技能,进而将以上八种语言的学习时间控制在一个月以内,而基础部分的课时占比更是被严格控制在30%以内。 </p></body></html>
10伪元素选择器

/* before 在标签前面加上内容 */p::before{ content: "我是添加上去的内容";}/* after 在标签最后加上内容 */p::after{ content: "结束了";}/* 修改第一行 属性 */p::first-line{ background-color: yellow;}/* 修改第一单词 属性 */p::first-letter{ font-size: 30px;}/* 修改选中 属性 */p::selection{ background-color: red;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="weielm.css"></head><body> <!-- <p>网络安全</p> <p>十五派信息安全教育</p> <p>a b c d e f</p> --> <p> 随着国家对于网络安全的逐步重视以及各大公司对于信息安全人才的需求猛增,对于基础型网络安全人才的要求正逐步走向理性,已经可以看到大量公司对于人才的需求正从注重奇技淫巧向基础扎实技术涉猎面广发展,为网络安全教育的合理性奠定了一个必要基础。与此同时恰逢十五派软件安全课程成熟,有能力抽调部分研发力量集中研发新课程,进而诞生了十五派网络安全课程。 网络安全高级课是十五派推出的主打课程,主要面向对黑客技术或信息安全有兴趣、有追求的,或是有意从事前端安全的极客群体。为了使得十五派的网络安全方向毕业生更有竞争力,因此课程从研发之初就将课程的重点放在“网络”而并非“前端”上,前端的渗透仅仅被作为一个基础,而体现学生关键竞争力的被定位到网络协议分析与APP安全上,这将使得从十五派毕业的学生基础更加扎实,工作适应面更广。 勿在浮沙筑高台,本课程将涵盖HTML、CSS、JavaScript、PHP、SQL、Python、Java、Smali等八种语言的开发级讲解,业内罕有,从而使得后面课程的深入讲解成为可能。与此同时,不用担心十五派的网络安全课程会像其他机构一样“变异”成网站开发培训附带网络安全或网络运维培训附带网络安全。我们充分利用了十五派在软件安全教学过程中总结的教学方法,可以使得学生在较短的时间内掌握以上语言的开发技能,进而将以上八种语言的学习时间控制在一个月以内,而基础部分的课时占比更是被严格控制在30%以内。 </p></body></html>
11ID选择器

/* 标签选择器 */p { background-color: yellow;}/* 类选择器 */.cls1 { background-color: aqua;}/* id选择器 */#p1{ background-color: red;}#p2{ background-color: blue;}#p3{ background-color:darkseagreen;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="id.css"></head><body> <p class="cls1" id="p1">网络安全</p> <p class="cls1" id="p2">十五派信息安全教育</p> <p class="cls1" id="p3">a b c d e f</p></body></html>
12星号选择器

* { background-color: aqua;}/* 标签选择器 */p { background-color: yellow;}/* 类选择器 */.cls1 { background-color: aqua;}/* id选择器 */#p1{ background-color: red;}#p2{ background-color: blue;}#p3{ background-color:darkseagreen;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="xinghao.css"></head><body> <label>十五派信息安全教育</label> <div>网络安全</div> <p class="cls1" id="p1">网络安全</p> <p class="cls1" id="p2">十五派信息安全教育</p> <p class="cls1" id="p3">a b c d e f</p></body></html>
13逗号选择器

/* 逗号选择器,可以联合标签名、类名、id名 */label,div,.cls1,#p1 { background-color: yellow;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="douhao.css"></head><body> <label>十五派信息安全教育</label> <div>网络安全</div> <p class="cls1" id="p1">网络安全</p> <p class="cls1" id="p2">十五派信息安全教育</p> <p class="cls1" id="p3">a b c d e f</p></body></html>
14后代选择器

/* 可以通过空格访问父标签下面的子标签 */div p{ background-color: aqua;}/* 可以访问父标签的孙子标签 *//* div p span{ background-color: hotpink;} *//* 直接访问父标签的孙子标签 */div span{ background-color:red;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="houdai.css"></head><body> <div> <label for="">信息安全</label> <p>网络安全<span>非常重要</span></p> </div></body></html>
15子选择器

/* 指定父标签的子标签 的属性 */div>p{ background-color: aqua;}/* 不能直接访问孙子标签,需要精确 *//* div>span{ background-color: red;} */div>p>span{ background-color: red;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="zi.css"></head><body> <div> <label for="">信息安全</label> <p>网络安全<span>非常重要</span></p> </div></body></html>
16相邻兄弟选择器

/* 兄弟关系,指定同级标签中,h1旁边是p标签的属性 *//* 即 h1和p之间是相邻的 */h1 + p { font-family: 隶书;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="xiongdi.css"></head><body> <h1>信息安全</h1> <p>网络安全</p></body></html>
17属性选择器

/* 通过属性选择 */p[id="p1"]{ background-color: aqua;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="shuxing.css"></head><body> <p class="cls1" id="p1">信息安全</p></body></html>
JS语法
01JS代码注释
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script> /* 多行注释 代码语句最后最好加分号; 变量、函数名、操作符区分大小写 */ alert("hello js"); console.log("log ing"); // var num = prompt("请输入数字"); // alert(num); // 单行注释 </script> <!-- <script src="1.js"></script> --></head><body> 网页内容</body></html>
01JS引入方式
console.log("hello 3");
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script type="text/javascript"> console.log("hello 1 "); console.log("hello 1 1"); var num=1; var $num1=1; var _num2=2; var num3="hello"; var num4=1.34; var num5; num5 = 1.0; num5 = "hello"; num6 = 15; </script> <script src="1.js"></script></head><body> <script type="text/javascript"> console.log("hello 2 "); </script></body></html>
02数据类型
// 当变量未定义时,返回是undefinedconsole.log(typeof(num));var num = 1;console.log(typeof(num));var floatNum = 1.5;console.log(typeof(floatNum));var string="hello";console.log(typeof(string));var bool = false;console.log(typeof(bool));var user;console.log(typeof(user));// 将变量初始化为null,变量类型是objectvar pass = null;console.log(typeof(pass));var num = "hello"/100;if(isNaN(num)){ console.log(num + " num is not number");}else{ console.log("num is number");};Number 可以转换任意类型为数值var num01 = "1.2";var num02 = false;var num03 = "hello1.2";// 当字符串中是纯数值,可以直接转换,console.log(typeof(Number(num01)));console.log(Number(num01));// 当变量是布尔类型,true=1, false=0;console.log(typeof(Number(num02)));console.log(Number(num02));// 如果里面有其他的内容,转换之后就是NaNconsole.log(typeof(Number(num03)));console.log(Number(num03));var string1=" 1.2.2 ";// parseInt 可以过滤空格,去除浮点后面的数console.log("parseInt:" + parseInt(string1));var string2=" 1.2.2 ";console.log("parseFloat:" + parseFloat(string2));var num11 = 123;var bool1 = false;var string11=" 1.2.2 ";var string22='hello';console.log("num11:"+typeof(num11));console.log(num11);// 控制台输出的内容,蓝色代表数值,黑色就是字符串var string33=num11.toString();console.log("nustring33:"+typeof(string33));console.log(string33);// 布尔类型转为字符串,false="false",true="true"console.log(bool1.toString());var stringxxx = null;// 空对象,使用String转换输出字符串 nullconsole.log(String(stringxxx));布尔类型var bool22 = "123";var bool33 = "0";var bool44 = 0;// 布尔类型在控制台输出,也是蓝色// 转换布尔类型,只有0是false,其他都是true;console.log(Boolean(bool22));console.log(Boolean(bool33));console.log(Boolean(bool44));算数运算符var num41 = ((12+12-5)*5)/5;console.log(num41);var num42 = 12%5;console.log(num42);递增递减运算符var num43 = 0;var num44 = num43++;var num45 = ++num43;console.log(num43);console.log(num44);console.log(num45);var num53 = 0;var num54 = ++num53;var num55 = num53++;console.log(num53);console.log(num54);console.log(num55);赋值运算符var num62 = -1;var num63 = 1;var num64 = num63;// += 左值必须已经初始化过num64 += num63;console.log(num64);num64 -= num62;console.log(num64);num64 /= 2; // 除以之后,如果除不尽有小数console.log(num64);num64 %= 2;console.log(num64);比较运算符var num72 = 1;var num73 = true;var num74 = "1";var num75 = 1;// == 只比较数值,可以进行隐式转换if(num72 == num74){ console.log("相等");}else{ console.log("不相等");}// === 比较数值,也比较类型if(num72 === num74){ console.log("相等");} else{ console.log("不相等");}// != 只比较值是否不相等if(num72 != num74){ console.log("不相等");} else{ console.log("相等");}// !== 比较值是否不相等的同时,比较类型是否不相等if(num72 !== num74){ console.log("不相等");} else{ console.log("相等");}三元操作符var num82 = 1;var isRet = (num82 == 1) ? true:false;console.log(isRet);// 逻辑与var num92 = 1;var num93 = 0;var num94 = (--num92)&&(num93--);console.log(num92);console.log(num93);console.log(num94);num92++;num93--;// 逻辑与,当第一个表达式返回为真,才会计算执行&&后面的表达式// 当执行完表达式之后,返回的最后一个表达式执行的结果num94 = (num92++)&&(num93++);console.log(num92);console.log(num93);console.log(num94);var num95 = null;var num96 = 5;// 当表达式中有null时,返回nullconsole.log(num95&&num96);console.log(num96&&num95);// 当表达式中有NaN时,返回NaNnum95 = "hello";num95 *= 5;console.log(num95&&num96);console.log(num96&&num95);// 当表达式中有未初始化变量,返回undefinedvar num97;console.log(num97&&num96);console.log(num96&&num97);逻辑或var num102 = 1;var num103 = 0;var num104 = (--num102)||(num103--);console.log(num102);console.log(num103);console.log(num104);num102++;//1num103--;//-2// 逻辑或,当第一个表达式为真,第二个表达式就不用执行了num104 = (num102++)||(num103++);console.log(num102);console.log(num103);console.log(num104);var num105 = null;var num106 = null;console.log(num105||num106);console.log(num106||num105);num105 = "hello";num105 *= 5;// num105(NaN), num106(null)// 当第一个是NaN时,会进一步判断第二个console.log(num105||num106);// 当第一个是null时,会进一步判断第二个console.log(num106||num105);// 当表达式中都是null,NaN,undefined,返回最后执行的结果var num107;console.log(num107||num106);console.log(num106||num107);逻辑非var num112 = 1;var num113 = !num112;var num114 = !num113;console.log(num112);console.log(num113);console.log(num114);num112 = "123";num113 = 0.0;console.log(!!num112);console.log(!!num113);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="2.js"></script></head><body></body></html>
02if实例
console.log("if语句");// 接收输入var num = prompt("请你输入一个数");var num2 = prompt("请你输入另一个数");if(num == null || num2== null){ alert("输入无效");} else{ // prompt函数默认返回都是字符串 // 两个字符串相加,就是字符串拼接 console.log(num+num2); // 转换为整型之后进行计算 var num3 = parseInt(num)+parseInt(num2); console.log(num3);}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="3.js"></script></head><body></body></html>
04jf实例
// 1.接收输入的年龄var age = prompt("请输入您的年龄");// 类型转换age = parseInt(age);// 2. 根据年龄进入判断if (age<18){ alert("未成年人不得入内");} else if (age>=18&&age<=59){ alert("可以进入");} else { alert("您已超出年龄限制");}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="4.js"></script></head><body></body></html>
05if实例
var strings = "hello";console.log(strings.length);var password = prompt("请输入您的密码");if(password.length != 6){ alert("请输入6位长度的密码");} else{ if(isNaN(password)){ alert("请输入6位数字"); } else{ alert("密码设置正确"); }}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="5.js"></script></head><body></body></html>
07switch实例
// 获取星期var day = new Date().getDay();console.log(day);// 输出到网页中// document.write("今天是星期" + day);//switch (day) { case 1: document.write("今天是星期" + day); document.write("可以好好学习"); break; case 2: document.write("今天是星期" + day); document.write("可以继续学习"); break; case 3: document.write("今天是星期" + day); document.write("可以努力学习"); break; case 4: document.write("今天是星期" + day); document.write("可以学习学习"); break; case 5: document.write("今天是星期" + day); document.write("可以学习努力"); break; default: document.write("今天是星期" + day); document.write("可以努力努力"); break;}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="7.js"></script></head><body></body></html>
08循环结构
// 求和,1-100// var sum = 0;// for(var i=1; i<=100; i++){// sum += i;// }// 打印九九乘法表// for(var i=1; i<=9; i++){// for(var j=1; j<=i; j++){// document.write(i+"*"+j+"="+ (i*j) + " ");// }// document.write("<br />");// }//while// var i=1,j=1;// while(i<=9){// j=1;// while(j<=i){// document.write(i+"*"+j+"="+ (i*j) + " ");// j++;// }// document.write("<br />");// i++;// }// do-whilevar i=1;do { var j=1; while(j<=i){ document.write(i+"*"+j+"="+ (i*j) + " "); j++; } document.write("<br />"); i++;}while(i<=9);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="8.js"></script></head><body></body></html>
09函数
// 定义一个函数function add(num1,num2){ return num1+num2;}// 函数变量var add1 = function(num1,num2){ return num1+num2;}// 调用函数var sum = add1(1,2);console.log(sum);// 定义一个增强版加法函数function addEx(){ // 获取参数个数 var lens = arguments.length; var sum = 0; for(var i=0; i<lens; i++){ sum += arguments[i]; } return sum;}var sum1 = addEx(1,2,3);console.log(sum1);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="9.js"></script></head><body></body></html>
01数组的基本操作
// 数组的基本操作// 创建数组// new Array()var arrays = new Array();var arrays2 = new Array(1,2,3,4,5,6);// 字面量方式var arrays3 = [1,2,3,3,5,6];// 访问数组元素console.log(arrays3[0]);console.log(arrays2[3]);arrays3[0] = 12;console.log(arrays3[0]);// 初始化数组元素arrays[0] = 1;arrays[99] = 1;var len = arrays.length;console.log(len);// 数组元素未初始化时 是undefinedfor(var i=0; i<100;i++){ console.log(arrays[i]); }// 数组中的方法// 在数组尾部压入一个数值arrays.push(99);console.log(arrays.length); console.log(arrays[100]); // 在数组尾部压入一组数值arrays.push(100,101,102);console.log(arrays.length); // 在数组开头加入一组数值arrays.unshift(111,2,3,4);console.log(arrays.length); console.log(arrays[0]); // 删除数组最后一个元素arrays.pop();console.log(arrays.length); // 删除数组的第一个元素arrays.shift();console.log(arrays[0]); console.log(arrays.length); // 转换函数,排序var arrays4 = [1,3,5,2,4,6,8,7,9];var str = arrays4.join();console.log(str);// 排序console.log(arrays4.sort());// 逆序输出console.log(arrays4.reverse());// 自定义排序function cmp(a,b){ // 返回正数,从小到大 // 返回负数,从大到小 return b-a;}// sort传参可以传递一个函数进去,用于排序参考console.log(arrays4.sort(cmp));// 连接数组var arrays5 = [1,3,5,2,4,6,8,7,9];var arrays6 = [9,6,4,6,3,2,4,1];// 连接数组var arrays7 = arrays5.concat(arrays6);console.log(arrays7);// 选取区间 [5,10)var arrays8 = arrays7.slice(5,10);console.log(arrays8);// 不指定结束,就是到末尾var arrays9 = arrays7.slice(5);console.log(arrays9);// // start是负数以及指定了负数再指定范围,都是不正确的var arrays10 = arrays7.slice(-1, 10);console.log(arrays10);// 对数组进行操作var arrays11 = arrays7.slice(5);console.log(arrays11);// 从第一个开始删除,删除7个元素arrays11.splice(3,7);console.log(arrays11);// 参数1=下标// 参数2=删除的数量// 参数3=添加的元素(在删除的下标开始添加)arrays11.splice(3,1,5,6,7,8,9);console.log(arrays11);// 替换arrays11.splice(3,1,99);console.log(arrays11);// 查找元素指定元素,返回数组下标// 找不到返回-1var index = arrays11.indexOf(99,2);// 打印下标console.log(index);// 通过下标访问数值console.log(arrays11[index]);// 从后往前找var arrays12 = ["hello","andy","jack"];var index = arrays12.lastIndexOf("andy");// 打印下标console.log(index);// 通过下标访问数值console.log(arrays12[index]);// JS的数组,可以保存多种类型的元素var arrays13 = ["hello",true,123456];console.log(arrays13);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="1.js"></script></head><body></body></html>
02字符串对象函数的使用
var strings = "hello 15pb";// 获取某一个字符var ch = strings.charAt(1);console.log(ch);// 获取某一个字符的字符编码// ascii 编码var chCode = strings.charCodeAt(1);console.log(chCode);// 查找字符串var strings1 = "hello 15pb";// 返回找到的字符串的起始数组下标var index = strings1.indexOf("15");console.log(index);// 从后往前查找字符串,返回下标var index1 = strings1.lastIndexOf("15");console.log(index1);// 截取字符串var strings2 = "hello world 15pb no1";// [start, end)var str1 = strings2.slice(6,11);console.log(str1);// [start, end)var str2 = strings2.substring(6,11);console.log(str2);// start, lenvar str3 = strings2.substr(6,5);console.log(str3);// 编写一个函数,获取字符串中扩展名function getExt(string){// 1. 查找.的索引// 从后往前查找字符串,返回下标var index = string.lastIndexOf(".");// 2. 获取子字符串var strExt = string.substring(index);console.log(strExt); return strExt;}// 调用函数 获取 扩展名getExt("hello.txt");// 指定分隔符 分割字符串,转换为数组var strings3 = "hello world 15pb no1";var strings = strings3.split(" ");console.log(strings);var strings4 = "hello-world-15pb-no1";var strings = strings4.split("-");console.log(strings);// 替换字符串var strings5 = "hello-world-15pb-no1";// 第一个参数传入子字符串或者正则表达式// 替换完成之后,需要有一个变量接收var strs = strings5.replace("world", "hello");console.log(strs);// 大小写转换// 大写转换函数,返回大写的字符串var strs = strings5.toUpperCase();console.log(strs);// 小写转换函数,返回小写的字符串var strs1 = strs.toLowerCase();console.log(strs1);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="2.js"></script></head><body></body></html>
03字符串例子
// 将字符串分割为数组// split分割var strings = "hello-world-a15pb-no1";var strArray = strings.split("-");// console.log(strArray);// 遍历数组,修改首字母是大写var len = strArray.length;for(var i=0; i<len; i++){ if(i == 0 ) continue; // console.log(strArray[i]); // 修改每一个字符串的首字母为大写。 // 获取字符串中的第一个字母 var ch = strArray[i].charAt(0); // 变成大写 var ch1 = ch.toUpperCase(); // 替换 var strs = strArray[i].replace(ch,ch1); strArray[i] = strs;}// 输出for(var i=0; i<len; i++){ console.log(strArray[i]);}// 拼接字符串var string1 = "";for(var i=0; i<len; i++){ // 连接字符串 string1 += strArray[i];}console.log(string1);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="3.js"></script></head><body></body></html>
04Math对象及函数的使用
// var arrays = [1,2,3,4,5,6] ;// 求一组数的最小值var min = Math.min(1,5,3,6,4,2);console.log(min);// 求一组数的最大值var max = Math.max(1,5,3,6,4,2);console.log(max);// 向上取整,有小数点就进位var num1 = Math.ceil(13.01);console.log(num1);// 向下取整,丢弃小数点var num2 = Math.floor(13.99);console.log(num2);// 四舍五入var num3 = Math.round(13.51);console.log(num3);var num4 = Math.round(13.49);console.log(num4);// 绝对值var abs = Math.abs(-15);console.log(abs);// 随机数// Math.random 0~1之间的一个小数var nums = Math.random();console.log(nums);// 获取一个0~100之间的数var nums1 = Math.floor(Math.random()*100);console.log(nums1);
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="4.js"></script></head><body></body></html>
05Date对象相关的函数
// 日期对象// 创建日期对象var date = new Date();// 获取年console.log(date.getFullYear());// 月份范围:0 ~ 11console.log(date.getMonth()+1);// 日期范围:1 ~ 31console.log("当前日期:"+date.getDate());// 星期天是0,其他是 1~ 6console.log("星期" +date.getDay());// 小时console.log("小时:" +date.getHours());// 分console.log("分:" +date.getMinutes());// 设置日期对象的信息date.setHours(11);// 输出时间字符串console.log(date.toString());
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="5.js"></script></head><body></body></html>
06异常
// var sum;// console.log(sum.length);// 递归,就是自己调用自己// 递归要有合理的退出条件,否则就可能造成RangeError: Maximum call stack size exceededfunction Add(num){ if(num == 1){ return 1; } else { return num+Add(num-1); }}var sum = Add(23);console.log(sum);// 程序跑起来可以暂停,让调试来控制// debugger// 求100的和var sum = 0, i;for(i = 1; i<=100; i++) { sum += i;}console.log(sum);// 乘法function mul(a,b){ return a * b ;}console.log(mul(1,"hello"));// 除法function div(a,b){ if(b==0){ throw "除0异常"; } return a / b ;}// console.log(div(1,0));try { // 这个语句块就是用户代码 console.log(div(1,0)); // console.log(mul(1,2));} catch{ // 这个语句块是异常时运行 console.log("出错了");} finally{ // 这个语句块是不论异常还是正常都会执行 console.log("程序运行完毕");}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="6.js"></script></head><body></body></html>