HTML,CSS,JavaScript三件套

前言

1.HTML

就是用来写网页的

就是超文本标记语言

1.1快速入门


标签是根标签,就是开始的地方 head就是头,加载一些资源信息,和展示title标题的地方,比如html快速入门那几个字就是title标题标签 body是身体,就是正文内容,就是乾坤未定那段内容 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/677fb4972c1c4f838ca590da000809a8.png) 桌面新建文件

然后随便选择一个文本编辑器来编辑

这样就成功了

第二个改成红色的

html 复制代码
<html>
    <head>
        <title>html快速入门</title>
    </head>
    <body>
        <font color="red">乾坤未定你我皆是黑马~</font>
    </body>

</html>

然后我们只需要刷新一下就可以了,不必重新打开文件了

说一下,第一html不区分大小写

一般用小写

第二就是,语法比较松散,可以不写结束标签,颜色可以不加引号

html 复制代码
<html>
    <head>
        <title>html快速入门</title>
    </head>
    <body>
        <font color=blue>乾坤未定你我皆是黑马~
    </body>

</html>

但是写的时候,还是要专业一点

文件以.htm或者html为扩展名

1.2 基础标签


选中右键检查,就可以查看html相关的代码了

可以在idea里面写代码的

直接就是java的模块就可以了,不用maven

建一个文件夹

在新建html文件

html 复制代码
<!--<!DOCTYPE html>是html5的一个标识-->
<!DOCTYPE html>
<html lang="en">
<head>
<!-- <meta charset="UTF-8">是用来定义页面字符集的   -->
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是标题 h1</h1>
<h2>我是标题 h2</h2>
<h3>我是标题 h3</h3>
<h4>我是标题 h4</h4>
<h5>我是标题 h5</h5>
<h6>我是标题 h6</h6>
</body>
</html>

这里直接点右上角的浏览器就可以了

html 复制代码
<h1>我是标题 h1</h1>
<h2>我是标题 h2</h2>
<h3>我是标题 h3</h3>
<h4>我是标题 h4</h4>
<h5>我是标题 h5</h5>
<h6>我是标题 h6</h6>
<hr>

代码是自动保存的,所以是同步的,不用刷新

html 复制代码
<h1>我是标题 h1</h1>
<h2>我是标题 h2</h2>
<h3>我是标题 h3</h3>
<h4>我是标题 h4</h4>
<h5>我是标题 h5</h5>
<h6>我是标题 h6</h6>
<hr>

<font>传智教育</font>


但是过时了

因为文本的样式用CSS来控制,所以过时了

回车

颜色的表示方式,第一英文red,pink

第二就是rgb(值1,值2,值3)三原色的方式,红绿蓝的方式

值的取值范围是0~255

rgb(255,0,0)全红

第三就是#值1值2值3

也是三原色

00~FF的范围

#ff0000

也是全红

这里可以看出没有换行

因为浏览器不会解析换行

html 复制代码
10月16日至17日,全国公安厅局长座谈会在天津市召开,就进一步深化改革创新,提升公安机关新质战斗力,高水平推进公安工作现代化等工作作出重要部署。<br>

通过聆听大会、分组讨论,参会代表认真学习领会会议精神,统一思想、凝聚共识。先进经验展示、实地考察观摩,大家从中得到新启发、新收获,互学互鉴、共同进步。

所以要手动加上br

html 复制代码
<p>
    10月16日至17日,全国公安厅局长座谈会在天津市召开,就进一步深化改革创新,提升公安机关新质战斗力,高水平推进公安工作现代化等工作作出重要部署。

</p>
<p>
    通过聆听大会、分组讨论,参会代表认真学习领会会议精神,统一思想、凝聚共识。先进经验展示、实地考察观摩,大家从中得到新启发、新收获,互学互鉴、共同进步。

</p>

这样的话,就变成了两段

html 复制代码
代表认真学习领会会<br>
<b>代表认真学习领会会</b>
html 复制代码
代表认真学习领会会<br>
<b>代表认真学习领会会</b><br>
<i>代表认真学习领会会</i><br>
<u>代表认真学习领会会</u><br>
html 复制代码
<center><b>代表认真学习领会会</b></center>

center就是居中,而且也过时了


特殊字符的打印要用转义字符

1.3 图片音频视频标签

src就是资源路径

直接把资源复制到html路径下就可以了

视频是mp4,音频是mp3

html 复制代码
<img src="a.png">
html 复制代码
<img src="a.png" width="200"height="400">

尺寸单位

1.默认的就是像素,px

2.百分比:就相当于占父元素的%20

父元素就是body

body的范围就是整个框体的范围

html 复制代码
<img src="a.png" width="20%"height="400">

音频文件到时候就是这样的,写的是video

html 复制代码
<videosrc="b.mp4"></video>
html 复制代码
<videosrc="b.mp4" controls="controls"></video>

或者这样

html 复制代码
<videosrc="b.mp4" controls></video>
html 复制代码
<video src="b.mp4" controls width="500" height="300"></video>

下面讲一下资源路径,上面我们写的是相对路径

我们也可以写绝对路径,盘符或者网页

点击复制图片地址就可以了

html 复制代码
<img src="https://inews.gtimg.com/om_bt/Os3eJ8u3SgB3Kd-zrRRhgfR5hUvdwcVPKUTNO6O7sZfUwAA/641" width="50%"height="400">

一般写相对路径,要找html文件和图片的相对位置关系,找到就可以写了

比如一个是xxx/html/02

一个是xxx/html/a.png

相对路径就可以这样

./a.png

./可以省略,默认在当前路径找

html 复制代码
<img src="./a.png" width="50%"height="400">

一个是xxx/html/02

一个是xxx/html/img/a.png

这样写

./img/a.png

一个是xxx/html/02

一个是xxx/img/a.png

这样写

.../img/a.png

1.4 超链接标签

href就是资源路径

html 复制代码
<a href="https://www.itcast.cn">点我有惊喜</a>


_self是默认值

html 复制代码
<a href="https://www.itcast.cn" target="_blank">点我有惊喜</a>

跳转到外部资源用这个

1.5 列表标签

html 复制代码
<OL>
  <li>咖啡</li>
  <li>奶茶</li>
  <li>牛奶</li>
</OL>

<uL>
  <li>咖啡</li>
  <li>奶茶</li>
  <li>牛奶</li>
</uL>
html 复制代码
<OL type="A">
  <li>咖啡</li>
  <li>奶茶</li>
  <li>牛奶</li>
</OL>

type就是给序号设置属性

html 复制代码
<uL type="circle">
  <li>咖啡</li>
  <li>奶茶</li>
  <li>牛奶</li>
</uL>

一般不建议修改

用CSS

1.6 表格标签

html 复制代码
<table>
  <tr>
    <th>序号</th>
    <th>品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>
  <tr></tr>
  <tr></tr>
  <tr></tr>
</table>
html 复制代码
<table>
  <tr>
    <th>序号</th>
    <th>品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>
  
  <tr>
    <td>010</td>
    <td><img src="../img/a.png" width="60" height="50"></td>
    <td>三只松鼠</td>
    <td>三只松鼠</td>
  </tr>

  <tr>
    <td>009</td>
    <td><img src="../img/b.png" width="60" height="50"></td>
    <td>优衣库</td>
    <td>优衣库</td>
  </tr>
  <tr>
    <td>008</td>
    <td><img src="../img/c.png" width="60" height="50"></td>
    <td>小米</td>
    <td>小米科技有限公司</td>
  </tr>

</table>

没有线条

html 复制代码
<table border="1">
  <tr>
    <th>序号</th>
    <th>品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>

  <tr>
    <td>010</td>
    <td><img src="../img/a.png" width="60" height="50"></td>
    <td>三只松鼠</td>
    <td>三只松鼠</td>
  </tr>

  <tr>
    <td>009</td>
    <td><img src="../img/b.png" width="60" height="50"></td>
    <td>优衣库</td>
    <td>优衣库</td>
  </tr>
  <tr>
    <td>008</td>
    <td><img src="../img/c.png" width="60" height="50"></td>
    <td>小米</td>
    <td>小米科技有限公司</td>
  </tr>

</table>

间距为1像素

两条线合二为一

html 复制代码
<table border="1" cellspacing="0">
  <tr>
    <th>序号</th>
    <th>品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>

  <tr>
    <td>010</td>
    <td><img src="../img/a.png" width="60" height="50"></td>
    <td>三只松鼠</td>
    <td>三只松鼠</td>
  </tr>

  <tr>
    <td>009</td>
    <td><img src="../img/b.png" width="60" height="50"></td>
    <td>优衣库</td>
    <td>优衣库</td>
  </tr>
  <tr>
    <td>008</td>
    <td><img src="../img/c.png" width="60" height="50"></td>
    <td>小米</td>
    <td>小米科技有限公司</td>
  </tr>

</table>

cellpadding表示间距为0

html 复制代码
<table border="1" cellspacing="0" width="500">

变宽

html 复制代码
<table border="1" cellspacing="0" width="500">
  <tr align="center">
    <th>序号</th>
    <th>品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>

  <tr align="center">
    <td>010</td>
    <td><img src="../img/a.png" width="60" height="50"></td>
    <td>三只松鼠</td>
    <td>三只松鼠</td>
  </tr>

  <tr align="center">
    <td>009</td>
    <td><img src="../img/b.png" width="60" height="50"></td>
    <td>优衣库</td>
    <td>优衣库</td>
  </tr>
  <tr align="center">
    <td>008</td>
    <td><img src="../img/c.png" width="60" height="50"></td>
    <td>小米</td>
    <td>小米科技有限公司</td>
  </tr>

</table>


就是居中

html 复制代码
<br>
<hr>
<br>
<table border="1" cellspacing="0" width="500">

合并单元格分为横向的合并和纵向的合并

比如这样

那怎么算行呢,就是右下角那个合并的,算第三行还是第四行呢,算第三行的,所以第四行只有三个单元格

html 复制代码
  <tr align="center">
<!--    第一个占两列-->
    <th colspan="2">品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>
html 复制代码
<table border="1" cellspacing="0" width="500">
  <tr align="center">
<!--    第一个占两列-->
    <th colspan="2">品牌logo</th>
    <th>品牌名称</th>
    <th>企业名称</th>
  </tr>

  <tr align="center">
    <td>010</td>
    <td><img src="../img/a.png" width="60" height="50"></td>
    <td>三只松鼠</td>
    <td>三只松鼠</td>
  </tr>

  <tr align="center">
    <td rowspan="2">009</td>
    <td><img src="../img/b.png" width="60" height="50"></td>
    <td>优衣库</td>
    <td>优衣库</td>
  </tr>
  <tr align="center">
    <td>008</td>
    <td><img src="../img/c.png" width="60" height="50"></td>
    <td>小米</td>
  </tr>

</table>

删除第四行一个单元格,第三行第一个单元格占两行

1.7布局标签

结合CSS来用

html 复制代码
<div>我是div</div>
<div>我是div</div>
<span>我是span</span>
<span>我是span</span>

div换行

一个标签占一行

span不换行,不会占满一行

1.8 表单标签

比如登录的窗口就是表单,采集用户输入的信息,一点按钮就把这些信息发送到服务端

html 复制代码
<input type="text">

定义一个文本输入框

html 复制代码
  <input type="submit">

定义一个按钮

html 复制代码
<form>
  <input type="text">
  <input type="submit">

</form>

我们这里点提交没有用的,因为没有指定form的anction属性

anction属性就是指定表单数据提交的URL,往哪个地方提交数据,就指定action为哪个URL

html 复制代码
<form action="#">

因为我们没有服务端,所以我们就用#代替,表示把表单数据提交到html页面来,后面我们就可以写服务器的资源路径

表单项数据要想被提交,则必须指定其name属性

html 复制代码
<input type="text" name="username">

username随便写的

html 复制代码
<body>
<form action="#">
  <input type="text" name="username">
  <input type="submit">

</form>

点提交

这样上面就增加了一个键值对,username=hehe#

username是name的属性值,键

hehe是文本输入框里面的值,这就是键值对

method是指定表单提交的方式的1.get是默认值2.post

get请求的参数会拼接在URL后边,http://localhost:63342/java2/html-demo/html/就是URL,就是地址,长度限制为4KB,所以请求参数有限制

post的话,请求参数会在http请求协议的请求体中,请求参数无限制

html 复制代码
<body>
<form action="#" method="post">
  <input type="text" name="username">
  <input type="submit">

</form>

重新打开页面

URL后边就没有键值对了

点击开发者工具

点network

在输入一次aaaa

这里多了一次请求

点击就可以查看我们的aaaa

1.9 表单项标签


比如id,用户不用书写,随着表单一起提交,这个就是hidden

html 复制代码
<form action="#" method="post">
  用户名:<input type="text" name="username"><br>
  密码:<input type="password" name="password"><br>
  <input type="submit" value="免费注册"><br>
<!-- value就是取名字 -->
  
</form>

提交就会提交到URL地址里

按着F12也可以打开开发者工具

现在我们希望我们点击用户名这三个字就能直接输入,而不是点击文本框

用lable标签就可以

html 复制代码
  <label for="username">用户名:</label>
  
  <input type="text" name="username" id="username"><br>

我们先把用户名:三个字放在lable里面,然后让input和lable有关联,就给input取个id,这个id是唯一标识,for就是去关联这个id

这样我们点击用户名三个字就能选中框框了

html 复制代码
<form action="#" method="post">
  <label for="username">用户名:</label>

  <input type="text" name="username" id="username"><br>

  <label for="password">密码:</label>
  密码:<input type="password" name="password" id="password"><br>
  <input type="submit" value="免费注册"><br>
<!-- value就是取名字 -->

</form>
html 复制代码
  性别:
  <input type="radio">
html 复制代码
  性别:
  <input type="radio" >男
  <input type="radio" >女


但是这里男女可以同时选中,所以还不行

,如何让两个单选框达到互斥的效果呢

让name的属性值一样就可以了

html 复制代码
  性别:
  <input type="radio" name="gender">男
  <input type="radio" name="gender">女

因为gender只能给一个赋值,所以是互斥的

但是我们这里gender却是on的值,为什么呢,选男是on,选女还是on,不选就没有gender

因为男没有关联到

所以还要加个value

html 复制代码
  性别:
  <input type="radio" name="gender" value="1">男
  <input type="radio" name="gender" value="2">女

这样加个value,提交的就是1,2了,提交的值就是value

在把男和女包括起来,点男这个字就选中男

html 复制代码
  性别:
  <input type="radio" name="gender" value="1" id="male"><label for="male">男</label>
  <input type="radio" name="gender" value="2" id="female"><label for="female">女</label>

这样就可以了

下面讲一下复选框

html 复制代码
  爱好:
  <input type="checkbox" name="hobby" value="1">旅游
  <input type="checkbox" name="hobby" value="2">电影
  <input type="checkbox" name="hobby" value="3">游戏

hobby就相当于是一个数组了

html 复制代码
  头像:
  <input type="file">



图片的数据就会被提交到服务端去

html 复制代码
  <input type="hidden" name="id" value="123">

写了这个没什么反应,但你提交服务端就会有id

html 复制代码
  <input type="submit" value="免费注册">
  <input type="reset" value="重置">
  <input type="button" value="一个按钮">

button没有任何效果,就是一个按钮,要结合javascipt

点重置的话,你写的就清空了

html 复制代码
  城市:
  <select>
    <option>北京</option>
    <option>上海</option>
    <option>广州</option>
  </select>

这就是一个下拉列表

要想被提交,就要指定name属性

html 复制代码
  城市:
  <select name="city">
    <option>北京</option>
    <option>上海</option>
    <option>广州</option>
  </select>
html 复制代码
    <option value="shanghai">上海</option>

如果这样写的话,就只会提交value的值了,没加value的话,就提交option里面的内容

html 复制代码
  个人描述:
  <textarea></textarea>

可以写很多行

html 复制代码
  个人描述:
  <textarea cols="20" rows="5"></textarea>

这个的意思就是可以写五行,每行20个字

而且还变大了

html 复制代码
  个人描述:
  <textarea cols="20" rows="5" name="desc"></textarea>


2.CSS

style标签里面就是CSS的代码

这个的意思选中html里面的就是body里面的所有的div标签里面的文本内容颜色改为红色

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  
  <style>
    div{
          color:red;
    }
  </style>
</head>
<body>
<div>hello css</div>

</body>
</html>

style标签是一种css与html结合的方式

css如何书写

div一部分:选择器

里面的键值对一部分:属性

2.1 CSS导入方式

内联样式:在html标签里面定义style属性,通过style属性指定CSS代码

html与css耦合在一起,就不利于维护

内部样式:在html页面里面定义style标签

style标签内部,定css代码

外部样式:现在外部定义css文件,在里面写css代码,在html页面里面使用link标签来引入css的外部文件

html 复制代码
<body>
    <div style="">hello css</div>

</body>

在style属性里面写css代码:就是属性键值对

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="color:red">hello css</div>
</body>
</html>
html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    
  </style>
</head>
<body>
    <div style="color:red">hello css</div>
    <span>hello css</span>
</body>
</html>

span里面写文本内容

style来控制里面的文本内容,里面写css代码

span标签的话,我们要写个选择器,就是span,意思就是选择body里面所有的span标签

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
      span{
      color:red;
    }
  </style>
</head>
<body>
    <div style="color:red">hello css</div>
    <span>hello css</span>
</body>
</html>


为了演示第二种方式,这里我们创建一个文件夹css1,里面放着demo.css

文件

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
      span{
      color:red;
    }
  </style>
</head>
<body>
    <div style="color:red">hello css</div>
    <span>hello css</span>

    <p>heloo css</p>
</body>
</html>

加个p标签

要控制p标签,所以选择器就写p

html 复制代码
p{
     color:red;

}

我们在html里面使用link来引入

html 复制代码
  <link href="">

href来引入css文件

html 复制代码
  <link href="../css1/demo.css" rel="stylesheet">

stylesheet的意思就是,link以后会引入很多文件的,stylesheet就是说我这个文件就是css属性的,才能特定解析

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
      span{
      color:red;
    }
  </style>

  <link href="../css1/demo.css" rel="stylesheet">
</head>
<body>
    <div style="color:red">hello css</div>
    <span>hello css</span>

    <p>heloo css</p>
</body>
</html>

2.2 CSS选择器

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      div{
      color:red;
      }
    </style>
    
</head>
<body>

<div>div1</div>
<div>div2</div>
<div>div3</div>

<span>span</span>
</body>
</html>

这个就是元素选择器

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      div{
      color:red;
      }
      
      #name{
      color:blue;
      }
    </style>

</head>
<body>

<div id="name">div1</div>
<div>div2</div>
<div>div3</div>

<span>span</span>
</body>
</html>

这个就是id选择器

这个的选择器是以name为准的,name优先

id选择器唯一,意思是id是唯一的

但是类选择器不是唯一的

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      div{
      color:red;
      }

      #name{
      color:blue;
      }
      
      .cls{
        color:pink;
      }
    </style>

</head>
<body>

<div id="name">div1</div>
<div>div2</div>
<div class="cls">div3</div>

<span class="cls">span</span>
</body>
</html>

2.3 CSS属性

点击HTML/CSS,选择CSS3,再点击参考书就可以找到css属性了

3. JavaScript

3.1 引入方式



html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  
  <script>
    alert("hello js")
  </script>
</head>
<body>

</body>
</html>

alert("hello js")弹出一个警告框

确定就没了

html 复制代码
  <script>
    alert("hello js")
  </script>

可以随便放,数量没限制

html 复制代码
<script>
  alert("hello js1")
</script>
<script>
  alert("hello js2")
</script>
<script>
  alert("hello js3")
</script>

这样就要点三个确定

一般放在body里面的偏后面

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</head>
<body>




<script>
  alert("hello js1")
</script>
<script>
  alert("hello js2")
</script>
<script>
  alert("hello js3")
</script>
</body>
</html>
html 复制代码
<script src="../js/demo.js"></script>

因为标签里面没有内容,所以可以自闭和

但是不能,因为这样就不能生效了

3.2 基础语法


结尾分号可以不写

window.可以省略

html 复制代码
<script>
  window.alert("hello js");
  document.write("hello js2");//写入html页面
</script>


html 复制代码
  window.alert("hello js");
  document.write("hello js2");//写入html页面
  console.log("hello js3");//写入浏览器控制台

浏览器控制台在开发者工具

f12

html 复制代码
<script>
  var test=20;
  alert(test);
</script>
javascript 复制代码
<script>
  var test=20;
  test="张三";
  alert(test);
</script>

var定义的变量是全局的

javascript 复制代码
  {
  var age =30;
  }
  alert(age);

变量可以重复定义

javascript 复制代码
  {
  var age =30;
  var age =20;
  }
  alert(age);

let关键字

javascript 复制代码
  {
  let age =30;
<!--  var age =20;-->
  }
  alert(age);

报错会在控制台里面提示

点链接就会有对应提示

let的作用域就在大括号,而且不能重复定义

const是用来定义常量的


javascript 复制代码
<script>
  var age=20;
  var price=99.8;
  alert(typeof age);
  alert(typeof price);
</script>
javascript 复制代码
<script>
  var age='q';
  var price='hahah';//单引号与双引号都是一样的
  alert(typeof age);
  alert(typeof price);
</script>
javascript 复制代码
  var age=true;
  var price=false;
  alert(typeof age);
  alert(typeof price);
javascript 复制代码
<script>
  var age=null;
  var price=false;
  alert(typeof age);
  alert(typeof price);
</script>

null弹出一个object,所以引用类型和null弹出都是object

javascript 复制代码
<script>
  var age;
  var price=false;
  alert(typeof age);
  alert(typeof price);
</script>


javascript 复制代码
  ///  == 与 ===全等于
  var age1=20;
  var age2="20";
  alert(age1==age2);

这些大于等于,等于等于,比较的时候都会进行类型转换,所以相等

先判断类型一不一样,不一样的话,就类型转换

全等于就不会类型转换,类型不一样直接false

javascript 复制代码
<script>
  ///  == 与 ===全等于
  var age1=20;
  var age2="20";
  alert(age1===age2);
</script>

类型转换:,其他类型转换为number,

string:按照字符串的字面值转换为数字

var str='20'

字面值就是20

var str='abc'

转不了数字

不会报错,但是会转成一个特殊的数字NaN

这就是一个不是数字的数字

javascript 复制代码
  var str=+"abc";

这里我们在前面加上一个+,因为+后面要接上数字,所以会自动强转

javascript 复制代码
  var str=+"abc";
  alert(str);
javascript 复制代码
  var str=+"20";
  alert(str+1);

如果是字符串就是201

可以用parseInt,把字符串转换成数字

javascript 复制代码
  var str="20";
  
  alert(parseInt(str)+1);

第二就是boolean转成数字,true为1,false为0

javascript 复制代码
  var flag=+true;
  alert(flag);

其他类型转换为boolean

number:0和NaN为false,其余为false

javascript 复制代码
  var flag=0;
  if(flag){
      alert("转为true");
  }else{
      alert("转为false");
  }

条件里面需要boolean,所以会自动转换

字符串:空字符串转false,就是一个引号,有内容为true

javascript 复制代码
  var flag="";
  if(flag){
      alert("转为true");
  }else{
      alert("转为false");
  }

undefined,null为fasle

javascript 复制代码
  var flag=null;
  if(flag){
      alert("转为true");
  }else{
      alert("转为false");
  }
javascript 复制代码
  var flag=undefined;
  if(flag){
      alert("转为true");
  }else{
      alert("转为false");
  }

作用就是原来要这样判断

javascript 复制代码
  var str="";
  if(str!=null&&str.length>0){
      alert("转为true");
  }else{
      alert("转为false");
  }

现在只需要

javascript 复制代码
  var str="";
  if(str){
      alert("转为true");
  }else{
      alert("转为false");
  }


javascript 复制代码
    var count = 3;
    if(count==3){
    alert(count);
    }

然后switch,case也是一样的

javascript 复制代码
    switch(count){
    case 3:
    alert("星期三");
    break;
    }
javascript 复制代码
    for(let i=0;i<=100;i++)
    {
    
    }

反正这些控制语句与原来的Java没什么区别

javascript 复制代码
    function add(a,b){
    return a+b;
    }
    var result =add(1,2);
    alert(result);


javascript 复制代码
    var add=function(a,b){
    return a+b;
    }
    var result =add(1,2);
    alert(result);
javascript 复制代码
    var add=function(a,b){
    return a+b;
    }
    var result =add(1,2,3);
    alert(result);

弹出来还是三,因为参数对应传,3没有传

javascript 复制代码
    var add=function(a,b){
    return a+b;
    }
    var result =add(1);
    alert(result);

因为b没有值,所以b就是NaN,所以和也是NaN

3.3 常用对象


javascript 复制代码
    var arr=new Array(1,2,3);
    alert(arr);
javascript 复制代码
    var arr=[1,2,3];
    alert(arr);
javascript 复制代码
    //访问
    arr[1]=111;
    alert(arr[1])

这里的数组相当于Java里面的集合,可以变长

javascript 复制代码
    var arr2=[1,2,3];
    arr2[10]=100;
    alert(arr2[10]);
javascript 复制代码
    var arr2=[1,2,3];
    arr2[10]=100;
    alert(arr2[10]);
    alert(arr2[9]);

没赋值就是这样,打印出来就是空字符串

javascript 复制代码
    arr2[5]="hello";
    alert(arr2[5]);

而且类型可变

javascript 复制代码
    //lenth就是数组元素个数
    var arr4=[1,2,3];
    for(let i=0;i<arr4.length;i++)
    {
    alert(arr4[i]);
    }
javascript 复制代码
    //push就是把元素添加到数组里面去
    //splice:删除方法
    var arr5=[1,2,3];
    arr5.push(10);
    alert(arr5);
javascript 复制代码
    //push就是把元素添加到数组里面去
    //splice:删除方法
    var arr5=[1,2,3];
    arr5.push(10);
    arr5.splice(0,1);
    alert(arr5);

splice的意思就是从0开始删,删一个元素

javascript 复制代码
    var str1=new String("hello");
    var str2=("hello");
    var str3=('hello');
    alert(str1);
    alert(str2.length);
javascript 复制代码
    //trim():去除字符串前后两端的空白字符
    var str4=('    hello    ');
    alert(1+str4+1)
javascript 复制代码
    //trim():去除字符串前后两端的空白字符
    var str4=('    hello    ');
    alert(1+str4.trim(str4)+1)

因为输入密码的时候,可能后面多输了几个空格

javascript 复制代码
    var person={
        name : " zhangan",
        age :23,
        eat:function(){
                alert("干饭");
        }
    };

    alert(person.name);
    alert(person.age);
    person.eat();

3.4 BOM


confirm就是你点删除的时候,弹出一个框让你是否要删除,防止用户误操作

后面两个方法是定时器

比如广告过一会而儿就换一张图片,这个就是定时器的作用

第一个循环执行,第二个是只执行一次

javascript 复制代码
    //window.可以省略
    confirm("确认删除?");

确认就删除,取消就什么都不干

因为要对应干不同的事,所以这个方法有返回值的

javascript 复制代码
    //window.可以省略
    var flag=confirm("确认删除?");
    alert(flag);

点确定就返回true,取消返回false

javascript 复制代码
    if(flag){
    //删除
    }
javascript 复制代码
    //定时器
    //setTimeout(function,毫秒值):在一定的时间间隔后去执行一个function,只执行一次
    //setInterval(function,毫秒值):在一定的时间间隔后去执行一个function,循环执行
    setTimeout(function(){
            alert("hehe");
    },3000)

三秒后弹hehe

javascript 复制代码
        setInterval(function(){
            alert("hehe");
    },1000)

过一秒就弹一次


javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <input type="button" onclick="on()" value="开灯">
  <img src="../img/off.png" id="myImage" border="0" style="...">
  <input type="button" onclick="off()" value="关灯">

<script>
  function on(){
      document.getElementById('myImage').src='../img/on.png';
  }
  
    function off(){
      document.getElementById('myImage').src='../img/off.png';
  }
  
  //定时器
  //setInterval(function (){},1000)
</script>

</body>
</html>

这个的效果就是你点开灯就开灯

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <input type="button" onclick="on()" value="开灯">
  <img src="../img/off.png" id="myImage" border="0" style="...">
  <input type="button" onclick="off()" value="关灯">

<script>
  function on(){
      document.getElementById('myImage').src='../img/on.png';
  }

    function off(){
      document.getElementById('myImage').src='../img/off.png';
  }

  var x=0;
  //定时器
  setInterval(function (){
      if(x%2==0){
        on();
      }else{
        off();
      }
      x++;
  },1000)
</script>

</body>
</html>

这样就可以一秒闪一次了

如果是三个方法的话的循环调用,就%3


就是这里的前后箭头

获取或者设置URL

javascript 复制代码
<script>
  alert("aaaa");
  location.href="https://www.baidu.com";
</script>

执行确定就会直接跳转到百度

javascript 复制代码
  document.write("三秒跳转到百度...");
  setTimeout(function(){
      location.href="https://www.baidu.com";
  },3000);


3.5 DOM


比如你点击按钮,里面的内容就随着改变


因为id唯一,标签不唯一

不唯一就返回数组

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img   id="Light"  src="../img/a.png" ><br>

<div class="cls">处置</div><br>
<div class="cls">aaa</div><br>

<input type="checkbox" name="hobby">电影
<input type="checkbox" name="hobby">旅游
<input type="checkbox" name="hobby">游戏
<br>

<script>
  
</script>
</body>
</html>
javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img   id="light"  src="../img/a.png" ><br>

<div class="cls">处置</div><br>
<div class="cls">aaa</div><br>

<input type="checkbox" name="hobby">电影
<input type="checkbox" name="hobby">旅游
<input type="checkbox" name="hobby">游戏
<br>

<script>
    var img =document.getElementById("light");//这个img就是<img   id="Light"  src="../img/a.png" >了
    alert(img);
</script>


</body>
</html>

这里就显示了一个object对象,而且类型都出来了

javascript 复制代码
    //根据标签名称获取
    var divs=document.getElementsByTagName("div");
    alert(divs.length); 
javascript 复制代码
  for(let i=0;i<divs.length;i++)
  {
      alert(divs[i]);
  }
javascript 复制代码
      //根据name获取
    var hobbys=document.getElementsByName("hobby");
    alert(hobbys.length);
  for(let i=0;i<hobbys.length;i++)
  {
      alert(hobbys[i]);
  }


javascript 复制代码
        //根据class属性获取
    var clss=document.getElementsByClassName("cls");
    alert(clss.length);
  for(let i=0;i<clss.length;i++)
  {
      alert(clss[i]);
  }


根据文档查看来使用对象的方法

总共有三种标签,img,input,div



看这个,我们利用src方法更换图片

javascript 复制代码
  var img =document.getElementById("light");
  img.src="../img/on.png";
javascript 复制代码
  var divs=document.getElementsByTagName("div");//期望把文字黑色换成红色

然后就是查文档

但这个里面没有方法

但他可以用Element对象的方法

因为继承 嘛

javascript 复制代码
  var divs=document.getElementsByTagName("div");//期望把文字黑色换成红色
  //style设置css样式
  //innerHTML设置元素内容
  for(let i=0;i<divs.length;i++){
      divs[i].style.color='red';
  }
javascript 复制代码
  var divs=document.getElementsByTagName("div");//期望把文字黑色换成红色
  //style设置css样式
  //innerHTML 设置元素内容
  for(let i=0;i<divs.length;i++){
<!--      divs[i].style.color='red';-->
      divs[i].innerHTML='hehheeheheh';
  }

这两个属性是通用的属性

每个html页面都有



true就是选中

javascript 复制代码
        //根据name获取
    var hobbys=document.getElementsByName("hobby");
    alert(hobbys.length);
  for(let i=0;i<hobbys.length;i++)
  {
      //alert(hobbys[i]);
      hobbys[i].checked=true;//就代表选中的状态
  }

这就默认选中了

3.6 事件监听


button是一个按钮,onclick是一个事件属性,设置一个方法,点击这个按钮,就调用这个方法,推荐使用第二种方式

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<input type="button" value="点我" onclick="on()"><br>
<input type="button" value="再点我"><br>


<script>
  function on(){
  alert("我被点亮");
  }
</script>
</body>
</html>
javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<input type="button" value="点我" onclick="on()"><br>
<input type="button" value="再点我" id="btn"><br>


<script>
  function on(){
  alert("我被点亮");
  }
  
  document.getElementById("btn").onclick=function(){
  alert("我被点了")
  }
</script>
</body>
</html>

常见事件

移到文本输入框点击就有光标,移到外面就没有光标了,而且里面的内容会变成大写


就是你点一下就会发生一些情况

就是你点击外面会发生一些事情



javascript 复制代码
    <input type="text" name="username"/>
    <input type="submit" name="提交"/>

username=输入内容

javascript 复制代码
<form id="register" action="#">
  <input type="text" name="username"/>
  <input type="submit" name="提交"/>
</form>

<script>
  document.getElementById("register").onsubmit=function(){
  return false;//表单就不会提交
  }//给表单绑定一个onsubmit事件
</script>

看嘛,点了提交URL还是不变的

return true就会提交

3.10 表单验证



有红就不能提交,无红提交就发往服务端

失去焦点onblur

javascript 复制代码
<div class="form-div">
  <div class="reg-content">
    <h1>欢迎注册</h1>
    <span>已有帐号?</span><a href="#">登录</a>
  </div>
<!--  //提交方式是get,提交到当前页面#,三个input输入-->
  <form id="reg-form" action="#" method="get">
    <table>

      <tr>
        <td>用户名</td>
        <td class="inputs" >
          <input name="username" type="text" id="username">
          <br>
<!--          span包裹的就是错误提示信息-->
          <span id="username_err" class="err_msg" style="display:none">用户名不太受欢迎</span>
        </td>
      </tr>

      <tr>
        <td>密码</td>
        <td class="inputs" >
          <input name="password" type="text" id="password">
          <br>
          <span id="password_err" class="err_msg" style="display:none">密码格式有误</span>
        </td>
      </tr>

      <tr>
        <td>手机号</td>
        <td class="inputs" >
          <input name="tel" type="text" id="tel">
          <br>
          <span id="tel_err" class="err_msg" style="display:none">手机号格式有误</span>
        </td>
      </tr>

    </table>
  </form>
</div>

我们这样输入没有提示信息

我们把display:none中的display的none信息去掉就有提示信息了,但是会一直存在的

javascript 复制代码
          <span name="username_err" class="err_msg" style="display:">用户名不太受欢迎</span>

判断输入内容是否符合要求,如果不符合要求,修改css样式的display的属性值设置为空就可以了,提示信息就出来了

javascript 复制代码
<script>
  //1.验证用户名是否符合规则
  //1.1获取用户名的输入框
  var usernameInput=document.getElementById("username");
  //1.2绑定onblur事件  失去焦点
  usernameInput.onblur=function(){//1.3获取用户名
       var username=usernameInput.value.trim();//排除空格
      //usernameInput.value;可以获取输入框的填写内容
      //判断用户名是否符合规则:长度6~12
      if(username.length>=6&&username.length<=12){
      //符合规则
      }else{
      //不符合规则    获取span
      document.getElementById("username_err").style.display='';
      }
  };

</script>



但是现在我们填对了,也不会取消那个东西了

所以还要修改

javascript 复制代码
  //1.验证用户名是否符合规则
  //1.1获取用户名的输入框
  var usernameInput=document.getElementById("username");
  //1.2绑定onblur事件  失去焦点
  usernameInput.onblur=function(){//1.3获取用户名
       var username=usernameInput.value.trim();//排除空格
      //usernameInput.value;可以获取输入框的填写内容
      //判断用户名是否符合规则:长度6~12
      if(username.length>=6&&username.length<=12){
      //符合规则
            document.getElementById("username_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("username_err").style.display='';
      }
  };

这样就可以了

密码和用户名就没有什么区别了

ctrl+r全部选中,进行替换

再点全部替换

javascript 复制代码
    //1.验证密码是否符合规则
  //1.1获取密码的输入框
  var passwordInput=document.getElementById("password");
  //1.2绑定onblur事件  失去焦点
  passwordInput.onblur=function(){//1.3获取密码
       var password=passwordInput.value.trim();//排除空格
      //passwordInput.value;可以获取输入框的填写内容
      //判断密码是否符合规则:长度6~12
      if(password.length>=6&&password.length<=12){
      //符合规则
      document.getElementById("password_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("password_err").style.display='';
      }
  };



再改一下length

javascript 复制代码
      //1.验证手机号是否符合规则
  //1.1获取手机号的输入框
  var telInput=document.getElementById("tel");
  //1.2绑定onblur事件  失去焦点
  telInput.onblur=function(){//1.3获取手机号
       var tel=telInput.value.trim();//排除空格
      //telInput.value;可以获取输入框的填写内容
      //判断手机号是否符合规则:长度11
      if(tel.length==11){
      //符合规则
      document.getElementById("tel_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("tel_err").style.display='';
      }
  };

下面我们来完成第二个需求,就是不满足就无法提交

javascript 复制代码
  //获取表单对象
  var regForm=document.getElementById("reg-form");
  //绑定一个onsubmit
  reForm.onsubmit=function(){
  //挨个判断每一个表单项是否符合要求,一个不符合都不提交
  //判断每个表单项的话,利用方法就可以了
  }

判断每个表单项的话,利用方法就可以了,所以方法得有返回值才行

,而且还要额外取个名

javascript 复制代码
  //1.验证用户名是否符合规则
  //1.1获取用户名的输入框
  var usernameInput=document.getElementById("username");
  //1.2绑定onblur事件  失去焦点
  usernameInput.onblur=checkUsername;
  function checkUsername(){//1.3获取用户名
       var username=usernameInput.value.trim();//排除空格
      //usernameInput.value;可以获取输入框的填写内容
      //判断用户名是否符合规则:长度6~12
      var flag=username.length>=6&&username.length<=12
      if(flag){
      //符合规则
      document.getElementById("username_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("username_err").style.display='';
      }
      return flag;
  };
javascript 复制代码
  //获取表单对象
  var regForm=document.getElementById("reg-form");
  //绑定一个onsubmit
  regForm.onsubmit=function(){
  //挨个判断每一个表单项是否符合要求,一个不符合都不提交
  //判断每个表单项的话,利用方法就可以了
  var flag=checkUsername() && checkPassword()  && checkTel();
  return flag;
  }

true才会提交

javascript 复制代码
    <div class="buttons">
      <input value="注 册"  type="submit" id="reg_btn" >
    </div>

这个是我们的提交按钮

这样就无法提交了

3.11 正则表达式

javascript 复制代码
<script>
    //规则:单词字符,6~12
var reg=/^\w{6,12}$/;
var str="abc";
var flag=reg.test(str);
alert(flag);
</script>

上一个表单验证就可以这样改了

javascript 复制代码
      var reg=/^\w{6,12}$/;
      var flag=reg.test(username);
javascript 复制代码
      var reg=/^\w{6,12}$/;
      var flag=reg.test(password);
javascript 复制代码
      //判断手机号是否符合规则:长度11,数字组成,1开头
      var reg=/^[1]\d{10}$/;
      var flag=reg.test(tel);

全部代码如下

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

<div class="form-div">
  <div class="reg-content">
    <h1>欢迎注册</h1>
    <span>已有帐号?</span><a href="#">登录</a>
  </div>
<!--  //提交方式是get,提交到当前页面#,三个input输入-->
  <form id="reg-form" action="#" method="get">
    <table>

      <tr>
        <td>用户名</td>
        <td class="inputs" >
          <input name="username" type="text" id="username">
          <br>
<!--          span包裹的就是错误提示信息-->
          <span id="username_err" class="err_msg" style="display:none">用户名不太受欢迎</span>
        </td>
      </tr>

      <tr>
        <td>密码</td>
        <td class="inputs" >
          <input name="password" type="text" id="password">
          <br>
          <span id="password_err" class="err_msg" style="display:none">密码格式有误</span>
        </td>
      </tr>

      <tr>
        <td>手机号</td>
        <td class="inputs" >
          <input name="tel" type="text" id="tel">
          <br>
          <span id="tel_err" class="err_msg" style="display:none">手机号格式有误</span>
        </td>
      </tr>

    </table>

    <div class="buttons">
      <input value="注 册"  type="submit" id="reg_btn" >
    </div>
  </form>
</div>


<script>
  //1.验证用户名是否符合规则
  //1.1获取用户名的输入框
  var usernameInput=document.getElementById("username");
  //1.2绑定onblur事件  失去焦点
  usernameInput.onblur=checkUsername;
  function checkUsername(){//1.3获取用户名
       var username=usernameInput.value.trim();//排除空格
      //usernameInput.value;可以获取输入框的填写内容
      //判断用户名是否符合规则:长度6~12,单词字符组成
      var reg=/^\w{6,12}$/;
      var flag=reg.test(username);
      if(flag){
      //符合规则
      document.getElementById("username_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("username_err").style.display='';
      }
      return flag;
  };


    //1.验证密码是否符合规则
  //1.1获取密码的输入框
  var passwordInput=document.getElementById("password");
  //1.2绑定onblur事件  失去焦点
  passwordInput.onblur=checkPassword;
  function checkPassword(){//1.3获取密码
       var password=passwordInput.value.trim();//排除空格
      //passwordInput.value;可以获取输入框的填写内容
      //判断密码是否符合规则:长度6~12
      var reg=/^\w{6,12}$/;
      var flag=reg.test(password);
      if(flag){
      //符合规则
      document.getElementById("password_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("password_err").style.display='';
      }
      return flag;
  };

      //1.验证手机号是否符合规则
  //1.1获取手机号的输入框
  var telInput=document.getElementById("tel");
  //1.2绑定onblur事件  失去焦点
  telInput.onblur=checkTel;
  function checkTel(){//1.3获取手机号
       var tel=telInput.value.trim();//排除空格
      //telInput.value;可以获取输入框的填写内容
      //判断手机号是否符合规则:长度11,数字组成,1开头
      var reg=/^[1]\d{10}$/;
      var flag=reg.test(tel);
      if(flag){
      //符合规则
      document.getElementById("tel_err").style.display='none';
      }else{
      //不符合规则    获取span
      document.getElementById("tel_err").style.display='';
      }
      return flag;
  };

  //获取表单对象
  var regForm=document.getElementById("reg-form");
  //绑定一个onsubmit
  regForm.onsubmit=function(){
  //挨个判断每一个表单项是否符合要求,一个不符合都不提交
  //判断每个表单项的话,利用方法就可以了
  var flag=checkUsername() && checkPassword()  && checkTel();
  return flag;
  }

</script>
</body>
</html>

总结

过两天上传加上gitee链接,不然代码太多了

相关推荐
NightCyberpunk14 分钟前
HTML、CSS
前端·css·html
lv程序媛27 分钟前
el-table表头前几列固定,后面几列根据接口返回的值不同展示不同
javascript·vue.js·elementui
ZwaterZ28 分钟前
el-table-column自动生成序号&&在序号前插入图标
前端·javascript·c#·vue
蒟蒻的贤1 小时前
vue学习11.21
javascript·vue.js·学习
初遇你时动了情2 小时前
uniapp 城市选择插件
开发语言·javascript·uni-app
zongzi_4943 小时前
二次封装的天气时间日历选择组件
开发语言·javascript·ecmascript
麻辣_水煮鱼3 小时前
vue数据变化但页面不变
前端·javascript·vue.js
一条晒干的咸魚3 小时前
【Web前端】实现基于 Promise 的 API:alarm API
开发语言·前端·javascript·api·promise
WilliamLuo4 小时前
MP4结构初识-第一篇
前端·javascript·音视频开发
过期的H2O24 小时前
【H2O2|全栈】JS进阶知识(七)ES6(3)
开发语言·javascript·es6