HTML CSS JavaScript(2111)

本文详细介绍了HTML超文本标记语言、CSS层叠样式表和JavaScript的基础知识,包括HTML的结构、常用标签,CSS的选择器、盒子模型,以及JavaScript的基本语法、数据类型和函数。此外,还提及了表单标签、音频视频的添加、DOM操作及BOM对象。通过学习,读者可以掌握前端开发的基础技能。
摘要由CSDN通过智能技术生成

2022.01.05 第二阶段 day 07

HTML超文本标记语言,实现页面展现,形成静态网页

CSS层叠样式表实现页面美化

JS javascript脚本语言实现页面前端和后端的数据交互,形成动态网页

React facebook出品前端、移动端JavaScript框架

Angular google 出品基于TypeScript的开源 Web 应用框架

Vue 国人出品,阿里收购构建用户界面的渐进式框架,自底向上开发

NodeJS 基于 Chrome V8 引擎的 JavaScript 运行环境

HTML超文本标记语言

<>

html5兼容性好

制作网页的最基础语言,有独特语法,由大量标记描述的一门语言

后缀: .html .htm

结构

文档声明:声明文档类型

头部:描述网页属性 标题 编码 被网页优先加载。

体部:要展示的数据

<!doctype html>
<html>
  <head>
      <meta charset="UTF-8"/>
      <title></title>
  </head>
  <body>
      hello html
	  hello html<br></br>
	  hello html
  </body>
</html>

html不区分大小写,语法相对java不太严谨 <br/>换行

  • HTML标签

HTML是一门标记语言,成对出现,标签分为开始标签和结束标签

如果开始和结束中间没有内容,可以合并成一个自闭标签

  • HTML属性

如果有多个属性,要以空格隔开。属性的值要用单引号或者双引号引起来。

  • HTML注释

<!-- 注释内容 -->

  • 如何在网页中做空格和换行

换行:<br/>

空格:在HTML中,多个空格会被当成一个空格来显示。用&nbsp

常用标签
标题标签h1h6(大小,字体加粗且自动换行)
列表标签

ul+li无序列表unorderlist+list (type 定义列表符号,默认是 disc 小圆点

  • )

ol+li有序列表orderlist+list

    <ul>
		<li>111</li>
		<li>111</li>
		<li>111</li>
	</ul>
	<ol>
		<li>111</li>
		<li>111</li>
		<li>111</li>
	</ol>
图片标签

img向网页中引入图片 border:边框 width:图片宽度 ,单位是px height:图片高度

src属性用来指定图片位置和路径(如果图片和网页文件在同级文件夹可直接写图片名称)

<img src="1.jpg" border="10px" width="50%" height="30%">
超链接标签

href属性用来让超链接可以被点击,也可指定点击的跳转网址 不跳转只用一个#表示

target属性用来指定超链接的打开方式,默认是_self当前窗口打开_blank是用新窗口打开

<a href="https://www.baidu.com/" target="_blank">百度一下</a><br/>
锚定:从一个位置回到指定的另一位置
   <a name="top">顶部</a>
		<h1>11111111111</h1>
		......
		<h1>11111111111</h1>
   <a href="#top">回到顶部</a>
Input标签

input标签,表示输入框

提交按钮submit:把用户在游览器的数据,提交给java程序来处理

<body>
		普通文本框:<input type="text" /><br />
		密码:<input type="password" /><br />
		数字:<input type="number" /><br />
		日期:<input type="date" /><br />
		星期:<input type="week" /><br />
		单选框:<input type="radio" /><br />
		复选框:<input type="checkbox" />吃饭 <input type="checkbox" />遛弯 <br />
    	邮箱:<input type="email" /><br/>
		按钮<input type="button" value="点一下" /><br />
		<button>注册</button><br />
		提交<input type="submit" value="提交" /><br />
</body>
表格标签

<table></table>

表格的行用<tr></tr>表格的列用<td></td>

border:表格的边框 cellspacing:单元格的间距 bgcolor:背景颜色 width:宽度 align:位置

<body>
		<table border="1px" cellspacing="0" bgcolor="bisque" width="500px" align="center">
			<tr>
				<td>11</td> <td>12</td> <td>13</td>
			</tr>
			<tr>
                <td>21</td> <td>22</td> <td>23</td>
			</tr>
			<tr>
                <td>31</td> <td>32</td> <td>33</td>
			</tr>	
		</table>
</body>

表头不用td用th

合并单元格 合并行rowspan 把N行合并成一大行 合并列colspan 把N列合并成一大列

行合并rowspan 列合并colspan都在<td>标签操作

<table bgcolor="pink" width="500px" border="1px" cellspacing="0">
			<tr>
				<td colspan="2">11</td>
				<td>13</td>
			</tr>
			<tr>
				<td>21</td>
				<td>22</td>
				<td rowspan="2">23</td>
			</tr>
			<tr>
				<td>31</td>
				<td>32</td>
			</tr>
		</table>

	<body>
		<table border="1px" bgcolor="antiquewhite" width="500px">
			<tr>
				<th>总页面流量</th> <th>共计来访</th> <th>会员</th> <th>游客</th>
			</tr>
			<tr>
				<td>11111111</td> <td>111111</td> <td>11111</td> <td>11111</td>
			</tr>
			<tr>
				<td>11111111</td> <td>111111</td> <td>11111</td> <td>11111</td>
			</tr>
			<tr>
				<td>111111111</td> <td>111111</td> <td>11111</td> <td>11111</td>
			</tr>
			<tr>
				<td>平均每人浏览</td> <td colspan="3">1.58</td>
			</tr>
		</table>
	</body>

表单标签

比表格多了数据提交功能

要求:必须使用form标签+必须有提交按钮+配置name属性

效果: 实现了数据提交,数据都在地址栏进行了拼接,多组数据使用&连接 http://127.0.0.1:8848/hbuilderx/cgb2111/register.html?user=jack&pwd=123

数据提交的格式: 属性名=属性值 其中,属性名是 网页上name属性的值 ,属性值 是用户在浏览器中输入的数据

<form></form>

name属性的存在就是告诉编译器,这个type="radio"的input单选题里,这几个选项是一组的,他们中间只能选择一个。

下拉框select 文本域<textarea></textarea>

重置reset 提交submit 定义下拉选项option

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单标签</title>
	</head>
	<body>
		<form>
			<h1>注册表单</h1>
			<table bgcolor="aquamarine" border="1px" width="400px" cellspacing="0">
				<tr>
					<td>用户名</td><td><input type="text" name="username"/></td>
				</tr>
				<tr>
					<td>密码</td><td><input type="password" name="pwd"></td>
				</tr>
				<tr>
					<td>确认密码</td><td><input type="password" name="pwd"></td>
				</tr>
				<tr>
					<td>昵称</td><td><input type="text" name="nickname"></td>
				</tr>
				<tr>
					<td>邮箱</td><td><input type="email" name="mailbox"></td>
				</tr>
				<tr>
					<td>性别</td><td><input type="radio" name=sex value="1"/>男 <input type="radio" name=sex value="0"/>女</td>
				</tr>
				<tr>
					<td>爱好</td><td><input type="checkbox" name="hobby" value="basketball"/>篮球<input type="checkbox" name="hobby" value="soccer"/>足球<input type="checkbox" name="hobby" value="ping-pang"/>乒乓球 </td>
				</tr>
				<tr>
					<td>城市</td>
					<td>
						<select name="city">
						  <option>请选择</option>
						  <option value="Beijing">北京</option>
						  <option value="Shanghai">上海</option>
						  <option value="Guangzhou">广州</option>
						</select>
					</td>
				</tr>
				<tr>
					<td>头像</td><td><input type="file"/></td>
				</tr>
				<tr>
					<td>验证码</td><td><input type="text"/>
					<img src="验证码1.png" width="100px" height="30px" />
					<button>点击更换</button>
					</td>
				</tr>
				<tr>
					<td>自我描述</td>
					<td>
						<textarea>请进行描述</textarea>
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<button type="submit">提交</button>
						<input type="reset" value="重置" />
					</td>
				</tr>
				
				
			</table>
		</form>
	</body>
</html>


2022.01.06 第二阶段 day 08
表单标签

1.表单标签:比表格多了数据提交的功能
1.1, 要求:必须使用form标签 + 必须有提交按钮 + 必须配置name属性
1.2, 效果: 实现了数据提交,数据都在地址栏进行了拼接,多组数据使用&连接
http://127.0.0.1:8848/hbuilderx/cgb2111/register.html?user=jack&pwd=123
1.3, 数据提交的格式: 属性名=属性值是
其中,属性名是 网页上name属性的值 ,属性值 是用户在浏览器中输入的数据
1.4, 提交数据的方式:get和post两种方式!!!
get方式提交数据:在地址栏拼接数据,可以方便的查看数据,但是不安全,长度受限
post方式提交数据:安全,数据大小不受限,但是,不好找数据了…
1.5, form标签拥有两个重要属性:
method属性用来指定数据提交方式,默认是get
action属性用来指定数据提交给哪段java程序来处理

性别单选需添加name属性,且两个相同name值,即可实现单选,注意两个都得加上value=?

单选多选默认选中加上checked=“checked”

<tr>
	<td>性别</td><td><input type="radio" name=sex value="1" checked="checked"/><input type="radio" name=sex value="0"/></td>
</tr>
<tr>
	<td>爱好</td>
    <td><input type="checkbox" name="hobby" value="basketball"/>篮球
        <input type="checkbox" name="hobby" value="soccer"/>足球
        <input type="checkbox" name="hobby" value="ping-pang"/>乒乓球 
    </td>
</tr>
  • 提交数据的方式:get和post两种方式

  • get方式提交数据:在地址栏拼接数据,可以方便的查看数据,但是不安全,长度受限

  • post方式提交数据:安全,数据大小不受限,但是不方便查找数据

form标签拥有两个重要属性:

  • method用来指定数据提交的方式,默认是get

  • action属性用来指定数据提交给哪段java程序来处理

    <form method="post" action="#">
    

    表单总结:
    1,标签:form表单用来提交数据,table表格,h1标题,tr表里的行,td行里的列,input输入框
    select用来定义下拉框,option定义下拉选项,img图片,button是按钮,textarea文本域
    2,属性:method是用来指定form提交数据的方式,action是用来指定form提交数据到哪段程序
    bgcolor设置表格的背景色,border设置表格的边框,width设置表格的宽度,
    cellspacing设置单元格间距,type是设置输入框的类型,src用来指定图片的位置
    name是用来作为数据提交时的标识,colspan用来设置列合并
    3,问题: 单选框和多选框,默认提交的都是on
    4,解决方案:给单选框和多选框提供value属性用来指定提交时要使用的值(不再提交on了)

其他标签
<div> 是一个块级元素。这意味着它的内容自动地开始一个新行。
<p> 标签定义段落。
<span> 标签被用来组合文档中的行内元素。
<body>
	<!-- 一个占一行 -->
	<div>大家好</div><div>大家好</div>
	
	<!-- 段落 -->
	<p> Nice</p><p> Nice</p>
	
	<!-- 多个占一行:行元素 -->
	<span> hello</span><span> hello</span>
</body>

placeholder 属性规定可描述输入字段预期值的简短的提示信息(比如:一个样本值或者预期格式的短描述)。

该提示会在用户输入值之前显示在输入字段中。

加入音频和视频
        <!-- 在网页加入音频 -->
		<audio controls="controls">
			<source src="音乐.MP3"></source>
		</audio>
		<!-- 在网页加入视频 -->
		<video controls="controls">
			<source src="视频.MP4"></source>
		</video>

css 全称叫层叠样式表Cascading style sheet

{}

是用来修饰HTML网页的一门技术,增强网页的展示能力

CSS 节省了大量工作。它可以同时控制多张网页的布局

语法:选择器{属性名:属性值;样式2;…}

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明,每条声明由一个属性和一个值组成。

使用位置:内联CSS,内部CSS,外部CSS

在HTML网页中,嵌入一段css代码,使用style标签

选择器

标签名选择器
        <style>
			div{color: aquamarine;}
			span{background-color: bisque;}
		</style>

font-size 属性设置文本的大小。px, %, rem,em均表示一种单位

font-family属性设置字体

background-color属性设置背景色

border设置边框 dashed设置虚线

display属性的定义是可以将页面元素隐藏或者显示出来,也可以将元素强制改成块级元素或内联元素

px是固定像素,一旦设置了就无法因为适应页面而改变。

em和rem相对于px更具有灵活性,因为他们是相对的长度单位(即长度不是定死的,更适用于响应式布局)。

em和rem的区别一句话概括:em相对于父元素,rem相对于根元素(html)

rem中的r意思是root(根源)

class选择器

class属性的值能相同

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试选择器2</title>
		<style>
			.a{font-size: 1.875rem;background-image: url(图1.png);}
			.b{font-size: 2rem; font-family: "楷体";}
			.c{background-color: hotpink;}
			
		</style>
	</head>
	<body>
		<div class="c">我是div1</div>
		<div class="a">我是div2</div>
		<div class="c">我是div3</div>
		<a href="#">我是a1</a>
		<a href="#" class="b">我是a2</a>
		<a href="#">我是a3</a>
	</body>
</html>
id选择器

id属性的值在整个HTML中作为唯一标识的存在。

可以通过ID值选中指定的元素(#id值)

opacity透明度(通常设置图像)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试id选择器</title>
		<style>
			#a{
				background-color: mediumvioletred;
			}
			#c{opacity:0.2;font-size: 30px;}
		</style>
	</head>
	<body>
		<input type="text"  placeholder="输入用户名" id="a"/>
		<input type="text"  placeholder="输入密码" id="b"/>
		<span>我是span1</span>
		<span id="c">我是span2</span>
	</body>
</html>
分组选择器

多种选择器间用逗号隔开

       <style>
			div, #input1{
				background-color: #FF69B4;
			}
			.a,#input1{background-color: #C71585;}
		</style>
属性选择器

根据属性或属性值来选取元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试属性选择器</title>
		<style>
			[type]{
				border: 3px dashed hotpink;/* 宽度 虚线 颜色 */
			}
			input[type]{
				border-color: aqua; border-radius: 1.625rem;/*值越大越圆*/
			}
			input[type="text"]{
				border-color:blueviolet;
				display: none; /* 隐藏元素*/
			}
		</style>
	</head>
	<body>
		<input type="text" placeholder="用户名"/>
		<input type="password" placeholder="密码"/>
		<input type="number" placeholder="年龄"/>
		<input type="text" placeholder="地址"/>
		
		<a href="#">我是a1</a>
	</body>
</html>
盒子模型

指的是将HTML中所有元素都看成一个盒子,盒子与盒子之间的距离,包括盒子的边框以及盒子边框和盒子内容的距离都可以设置,默认值是零。。

外边距margin ,是指盒子间的距离

内边距padding,这是一个盒子的现象,是指内容到边距的距离

边框border,是指每个盒子都能设置边框

元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 盒子模型</title>
	</head>
	<body>
		<!-- 设置了外边距(是两个盒子间的距离), 四个方向同时生效-->
		<input type="radio" style="margin: 20px;"/><br />
		<!-- 设置了外边距, 分开设置外边距,左/右/上/下-->
		<input type="radio" style="margin-left: 20px;"/><br />
		<input type="radio" style="margin-right: 20px;"/><br />
		<input type="radio" style="margin-top: 20px;"/><br />
		<input type="radio" style="margin-bottom: 20px;"/><br />
		
		<!-- 设置内边距(内容和边框的距离) -->
		<input type="text" placeholder="用户名..."> <br />
		<!-- 设置了内边距, 分开设置内边距,左/上/下/右-->
		<input type="text" placeholder="用户名..." style="padding: 10px;"> <br />
		<input type="text" placeholder="用户名..." style="padding-left: 10px;"> <br />
		<input type="text" placeholder="用户名..." style="padding-top: 10px;"> <br />
		<input type="text" placeholder="用户名..." style="padding-bottom: 10px;"> <br />
		<input type="text" placeholder="用户名..." style="padding-right: 10px;"> <br />
	</body>
</html>

2022.01.07 第二阶段 day 09
css
内部CSS的优点:内部CSS的缺点:
样式表只影响一个页面
内部样式表可以使用类和ID
无需上传多个文件,HTML和CSS可以在同一个文件中
增加页面加载时间
它只影响一个页面 – 如果要在多个文档上使用相同的CSS,则无用
外部CSS的优点:外部CSS的缺点:
HTML页面的提及更小,结构更清晰
加载速度更快 相同的.css文件可以在多个页面上使用
在加载外部CSS之前,页面可能无法正确呈现
内联CSS的优点:内联CSS的缺点:
如果要测试和预览更改,则非常有用
对快速恢复有用
降低HTTP请求
内联CSS必须应用于每个元素
外部css
<link rel="stylesheet" href="student.css"/>

link把外部CSS文件引入到这个网页中 rel是指文件的类型(stylesheet是固定值是样式表) href是指定文件的位置

&nbsp; 它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。
&ensp; 它叫“半角空格”,全称是En Space,此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。
&emsp;  它叫“全角空格”,全称是Em Space,此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。
&thinsp; 叫窄空格,全称是Thin Space
&zwnj; 它叫零宽不连字,全称是Zero Width Non Joiner
&zwj;它叫零宽连字,全称是Zero Width Join
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>用户注册</title>
		<!-- 在HTML中引入css文件 -->
		<link rel="stylesheet" href="registration.css" />
	</head>
	<body>
		<form method="post" action="#">
			<h3>用户注册</h3>
			<div><input class="a" type="text" placeholder="用户名" name="user"/></div>
			<div><span>支持中文、字母、数字、“-”、“_”的组合,4-20个字符</span></div>
			<div><input class="a" type="password" placeholder="设置密码" name="pwd"/></div>
			<div><span>建议使用数字、字母和符号两种以上的组合,6-20个字符</span></div>
			<div><input class="a" type="password" placeholder="确认密码" name="repwd"/></div>
			<div><span>两次密码输入不一致</span></div>
			<div><input class="a" type="number" placeholder="验证手机" name="tel"/><a href="#">验证邮箱</a></div>
            <div id="readme">
				<input type="checkbox"/>我已阅读并同意<a href="#">《京淘用户注册协议》</a>
			</div>
			<div><button type="submit">立即注册</button></div>
		</form>
	</body>
</html>
.a{width: 350px;height: 30px;
    padding: 5px;/* 内边距 */
	font-size: 16px;}
button{width: 360px;height: 40px;
	  background-color: red;/* 背景色 */
	  border-color: red;/* 边框颜色 */
	  color: white;/* 文字颜色 */
	 font-size: 20px;/* 文字字号 */}
span{font-size: 5px;/* 字号变小 */
	color: gray;/* 灰色的字 */
	padding: 20px; /* 内边距 */}
h3{/*text-align: center;文本居中 */
  padding-left: 130px;/* 左边距 */}
#readme{padding: 15px;/* 左边距 */}

html超文本标记语言实现了网站页面展现,展现文字、表格、图片、超链接等,css样式表实现了页面的美化,这些技术实现了静态网页。

javascript的加入,实现页面和后台系统的交互,实现用户信息的注册,实现用户的登录,实现个性化的数据展现,把这样的网页称为动态网页,把这样的网站称为动态网站。

JavaScript

简称JS,用来增强网站的交互

JS是一门 基于对象事件驱动脚本语言

基于对象:它不仅可以创建对象,也能使用现有的对象。JS没有类的概念,也没有编译的过程。是一边解释一边执行。

事件驱动:在JS中,大部分情况下都是通过事件触发驱动函数执行的,从而实现特定的功能。事件就是你在网页中常见的动作(单击.双…)

脚本语言:是指在特殊的环境才能运行.js就是在浏览器中执行的

特点
  • js是一门直译式的语言
  • 是一种弱类型的语言,底层会自动类型转换
  • 增强了用户的交互性,跨平台
  • js代码出现的位置:行内js 内部js 外部js
js语法
js数据类型:
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
基本数据类型

包括:number/string/boolean/null/undefined

number:在JS中,数值类型只有一种,就是浮点型。会自动的进行数据类型的转换

undefined:值只有一个就是undefined。表示变量没有初始化值。

null:值也只有一个,就是null。表示空值或者不存在的对象。

复杂数据类型

函数、数组、对象(自定义对象、内置对象、DOM对象、BOM对象…)

注释

单行注释: //注释内容

多行注释: /* 注释内容 */

js变量

所有类型的变量都是用var关键字定义。并且参数的类型可以随时转换。

js的运算符

自增自减优先级要高

JS中的运算符和Java中的运算符大致相同

算术运算符: +,-,*,/,%(取模-余数),++(自增),–(自减)

赋值运算符: =,+=,-=,*=,/=,%=

比较运算符: ==(等于),!=(不等于), =(绝对等于–值与类型均相等),!(不绝对等于–值和类型有一个不相等或两个都不相等), > ,< ,>=,<=

位运算符: &(and) , |(or),~(取反),^(异或),<<(左移),>>(右移)

逻辑运算符: &&(and),||(or),!(not非)

前置逻辑运算符: ! (not)

三元运算符: ? :

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 js语法运算符</title>
		<script>
			//1, js运算符
			//三元运算符:
			//获取两个数里的大值
			var c = 10;
			var d = 5;
			var e = c > d ? c : d;
			alert(e);
			//比较运算符:== !=  === !==
			alert(1 == 1);//true
			alert(1 != 1);//false
			alert(1 == '1');//true, 只比值
			alert(1 === '1');//false, 比较类型和值
			//赋值运算符: += -= *= /=
			var b = 2;
			b += 2; //b=b+2
			alert(b);//4
			//算术运算符: / % ++ --
			var a = 12;
			alert(a / 5);  //取商, 2.4
			alert(a % 5);  //取余, 2
			// alert(a++);//12,顺便把a从12变成13
			// alert(++a);//14
			// a = a++; //把右侧a++整体的运算结果,重新赋值给a
			// alert(a);//12
			a = a+++a;//自增 自减 的优先级高 a++ +a ;
			alert(a);//12 + 13 = 25
		</script>
	</head>
	<body>
	</body>
</html>
JS语句

JS中的语句和Java中的语句用法也大致相同

if…else语句 switch…case

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 JS语句</title>
		<script>
			//2, 分支结构 switch...case
				//练习: 判断今天星期几
				var day = 1;
				switch(day){
					//在java里,switch参数的数据类型只能有
					//byte int char short String
					case 1 : alert('今天星期一'); break;
					case 2 : alert('今天星期二'); break;
					case 3 : alert('今天星期三'); break;
					case 4 : alert('今天星期四'); break;
				}
			//1, 分支结构 if..else
				if(!true){//判断条件不成立
					alert(100);
				}
				// 练习: 判断成绩所属的等级
				// 80~100(包括80,也包括100)		优秀 
				// 60~80(包括60,但不包括80)		中等
				// 0~60(包括0,但不包括60)		不及格
				// 其他值						输入有误
				var scores=98;
				if(scores>=80 && scores<=100){//80~100
					alert('优秀');
				}else if(scores>=60 && scores<80){//60~80
					alert('中等');
				}else if(scores>=0 && scores<60){//0~60
					alert('不及格');
				}else{
					alert('输入有误');
				}			
		</script>
	</head>
	<body>
	</body>
</html>

循环语句 (for循环 while循环 do…while)

alert()

console.log();

F12在游览器查看控制台

var没有作用域,let严格规定了作用域

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 JS语句</title>
		<script>
			// while循环结构
				// while(true){//死循环
				// 练习2:假设你有1亿,每天花一半,计算能花多少天?
				let days = 0;
				let money = 100000000;
				while(money>1){
					days++;
					money=money/2;
				}
				console.log(days);//27
				
				// 练习1:打印1~10
				let a = 1;
				while( a < 11 ){
					console.log(a+"~~~~");
					a++;
				}
			// for循环结构
				// 练习2:统计1~100里,偶数的和
				let sum = 0;//定义变量,记录和
				for(let i = 1;i<=100;i++){
					if(i % 2 == 0){//判断是不是偶数
						sum = sum + i ;//求和
					}
				}
				console.log("1~100里偶数的和是: "+sum);
				
				// 练习1:遍历1~10并弹出
				for(let i=1;i<11;i++){
					// alert(i);//弹出框
					console.log(i);//打印,必须在浏览器f12
				}
				//bug:for循环里定义的变量,竟然在循环外也能用!!!
				//原因:定义的变量没有作用域的概念,使用let定义变量!!!
				//var没有作用域,let严格的规定了作用域
				//console.log(i+"=====");		
		</script>
	</head>
	<body>
	</body>
</html>
alert()方法:称为警示对话框,要显示的信息放置在括号内,该对话框上包含一个“确认”按钮,用户阅读完所显示的信息后,只需单击该按钮就可以关闭对话框。
confirm()方法:该种对话框上除了包含一个“确认”按钮外,还有一个“取消”按钮,这种对话框称为确认对话框
prompt()方法:不但可以显示信息,而且还提供了一个文本框要求用户使用键盘输入自己的信息,同时她还包含“确认”或“取消”两个按钮,如果用户“确认”按钮,则prompt()方法返回用户在文本框中输入的内容(是字符串类型)或者初始值(如果用户没有输入信息);如果用户单击“取消”按钮,则prompt()方法返回null,我们称这种对话框为提示框,在这三种对话框中,它的交互性最好。
在javascript中有三种声明变量的方式:var、let、const。
var:var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
      var 声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用。
      声明在for循环内部的sum,跳出for循环一样可以使用,不会报错正常弹出结果
let:同一个变量,不可在声明之前调用,必须先定义再使用,否则会报错,循环体中可以用let
    let是块级作用域,函数内部使用let定义后,对函数外部无影响。并且let不能定义同名变量,否则会报错。
const:用于声明常量,也具有块级作用域 ,也可声明块级。const定义的变量不可以修改,而且必须初始化。
      它和let一样,也不能重复定义同一个变量,const一旦定义,无法修改
let和const属于局部变量,不会出现变量提升的情况

2022.01.10 第二阶段 day 10
JavaScript概述

它是一门客户端脚本语言,基于对象和事件驱动的网页编程语言

  • 客户端(client):游览器

  • 脚本语言:不需要编译,可以直接运行,只要设备安装了游览器,就可以直接运行js语言

  • 基于对象:指的js已将内置好了对象,我们可以直接使用

    JavaScript面向对象特点:先创建对象,在使用对象调用属性或方法

  • 事件驱动:

​ *事件:指的触发网页的事件

​ *事件源:指的网页中的元素

​ *事件和事件源绑定:

​ *驱动:调用js代码

也可以Google游览器右击检查打开控制台

js代码建议放到<body>标签最下面,加载顺序从上往下执行

JavaScript组成=ECMA+DOM+BOM

ECMAScript: 规范了javascript的基本语法
DOM:  document object model : 文档对象模型(由一系列文档对象构成的模型)
      作用:操作标记性的文档(指的xml或者html文档)
BOM:  browser object model: 浏览器对象模型(由一系列浏览器对象构成的模型)
      作用:操作浏览器的。
JavaScript和Java的区别
java面向对象的编程语言,是一门强类型的编程语言
   面向对象
   强类型
js
   面向对象
   弱类型,建议使用var(variable)来表示类型
JavaScript语法书写和java相似,区分大小写,建议每行结束用分号结束

注意: 书写js代码时,一定一定加上<script> js代码 </script>

JavaScript基本语法

JavaScript类型

1.原始类型

  • number类型: 数字类型
  • string类型: 字符串或者字符
  • null类型:比如: 定义一个变量,赋值为null , var a =null;
  • undefined类型:未定义类型,比如: 定义一个变量,没有赋值 ,var a;
  • boolean类型:表示true或者false…

2.引用类型

  • Object,Array,Date,Function
<hr>标签是单标签(空标签),没有元素内容,只是显示为一条水平线,表示话题的转移;

JavaScript 使用关键字 function 定义函数。

document对象(Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。)

document.write(totalPages);

typeof判断变量是什么类型

基本语法小结
注释:单行// 多行/**/
输入输出语句:prompt()、alert()、console.log()、document.write()
变量和常量:var或let、const
基本数据类型:boolean、null、undefined、number、string
typeof 关键字:用于判断变量的数据类型
运算符:算数、赋值、逻辑、比较、三元运算符
流程控制和循环语句:if、switch、for、while
数组:数据类型和长度没有限制,let 数组名 = [长度/元素]
函数:类似方法,抽取代码,提高复用性
常量和变量

变量

全局变量:在方法外部定义,可以在任意地方使用,比如:var a=10;

局部变量:在方法内部定义,只能在方法内使用

定义局部变量,可使用关键词: let

常量值(不能改变的值),关键词:const

<script type="text/javascript">
			 //1.定义一个常量值
			 const num =10;
			 //2.测试
			 console.log("打印常量值:"+num);//正确的写法
</script>
//注意:常量值定义在方法内部或者方法外部都可以。
运算符

算数运算符

赋值运算符

比较运算符

== : 只比较值,不比较类型
=== :先比较类型,然后在比较值

逻辑运算符:&&逻辑与,并且 ||逻辑或,或者 !取反

   注意: 空串取反操作:true
         null取反操作:true 
         0取反操作:true 
         Nan取反操作:true

三元运算符

流程控制语句

if 语句 switch 语句 for 循环 while 循环

分支结构
if
if else
if else if---else if---else
循环结构
for(初始语句;条件语句;条件控制语句){
循环体
}
while(条件语句){循环体}
do{
循环体
}while(条件控制语句)
函数

函数(方法)概述:指的是将具有独立功能的代码封装在一起,这些代码就构成函数了

函数的创建
方式一: 动态函数(很少用)
var fun1 = new Function(参数,方法体);
方式二:普通函数
function 方法名称(方法的参数){
方法体内容
}
方式三:匿名函数
var 方法名称 = function (方法的参数){
 方法体内容
}
函数的调用
遵循原则:
先创建函数
再调用函数
注意细节: 在定义参数时,参数前面不加var ,let
函数的属性

获取参数的个数: length

数组
概述

java里:数组是用来存储相同数据类型的"容器"

js里(弱类型):数组是用来存储多个数据的"容器"

定义
静态数组初始化:指的在创建数组,就要给数组赋值
   var arr = [1,“a”,“b”,true];或者
   var arr= new Array(1,“a”,“b”,true);
动态数组初始化:指的创建一个指定长度的数组,然后再赋值
   var arr=new Array(指定长度);
创建一个空的数组
   var arr=[ ]; 或者 var arr= new Array();
特点

数组的元素类型: 可以是任意类型

数组的长度可以变化的

( 数组的长度 = 数组的最大索引值+1)

数组的属性:

length属性: 获取数组的长度

常用方法
var str = 数组对象.join(连接符号);//字符串
var endEle = 数组对象.pop();// 删除最后一个元素并返回
var lenght = 数组对象.push(ele);//向数组末尾添加一个元素ele,返回新的 长度
var arrNew = 数组对象.reverse();//颠倒数组元素的顺序,返回一个新的数组

2022.01.11 第二阶段 day 11
DOM

概述: Document Object Model 文档对象模型

作用:操作标记性文档(目前学过的xml,html文档)

document文档对象表示整个HTML文档

element标签对象表示网页的标签

attr 属性对象 text 文本对象

DOM分类

核心Dom, xml的Dom, html的Dom 大部分api都是通用的。

DOM的api
  • Dom操作标签

获取标签对象:

getElementByld(id属性)根据id获取标签对象: 获取的是一个标签对象
getElementsByTagName(标签名称)根据标签名称获取标签对象: 获取的是多个标签对象
getElementsName(name属性值)根据name属性获取标签对象:获取的是多个标签对象
getElementsName(class属性值)根据class属性获取标签对象: 获取的是多个标签对象
子元素对象.parentElement属性:获取当前父元素

操作标签对象

createElement(标签名):创建一个新元素

appendChild(子元素):将指定子元素添加到父元素中

removeChild(子元素):用父元素删除指定子元素

replaceChild(新元素,旧元素):用新元素替换子标签

  • Dom操作属性(设置属性,获取属性,移除属性)

setAtrribute(属性名,属性值):设置属性

getAtrribute(属性名):根据属性名获取属性值

removeAtrribute(属性名):根据属性名移除指定的属性

style属性:为元素添加样式

  • Dom操作文本(文本:指的标签体内容)
获取文本内容
  var text_content = 标签对象.innerText; //标签对象.innerHTML;
设置文本内容(把原有的文本内容给覆盖)
  标签对象.innerText=“新的文本内容”;
  标签对象.innerHTML=“新的文本内容”;
注意:
  innerText属性:解析纯文本,即使是标签,也看成纯文本
  innerHTML属性:可以解析纯文本,也可以解析标签
注意:以上操作必须是对围堵标签进行,只有围堵标签才有标签体。
1.通过document获取标签对象
 根据id获取:var singleTag=getElementById("id的值");
 根据标签名称获取:var tags=getElementByTagName("标签名称");
 根据标签的name属性获取:var tag=getElementsByName("name属性的值");
 2.通过标签对象操作属性
 给属性赋值:
 方式一:标签对象.属性名称=赋值;//可以,但是在有的游览器不兼容
 方式二:标签对象.setAttribute("属性名称","赋值");
 获取属性的值
 方式一:var value=标签对象.属性名称;//可以,但是在有的游览器不兼容
 方式二:var value=标签对象.getAttribute("属性名称");
 3.操作文本
 文本:指的标签体的内容,只有围堵标签才有标签体,比如a标签,div标签...
 设置文本:
 标签对象.innerHTML=“新的文本内容”;
 获取文本
 var value = 标签对象.innerHTML;
事件

事件: 指的操作网页,触发的动作,比如:鼠标单击,鼠标双击,按键盘等

事件源: 指的网页的元素,比如:标签,文本等

监听 (事件js代码和事件源绑定):在网页里面的监听,指的通过触发网页的元素,调用事件对应的js代码,实现网页的动态效果

事件和事件源绑定

直接绑定:就是在标签里面写我们的事件

间接绑定:就是通过我们的标签调用事件属性

常见的事件
点击事件
    onclick: 单击事件
    ondbclick: 双击事件
鼠标状态事件
    onmousedown: 鼠标按下事件
    onmouseup:鼠标松开事件
    onmousemove:鼠标移动事件(每次移动每次触发执行)
    onmouseover: 鼠标悬浮事件(触发执行一次)
焦点事件
    onfocus:获取焦点
    onblur: 失去焦点
键盘事件
    onkeydown:键盘按下事件
    onkeyup:键盘松开事件
表单事件
    onsubmit: 表单提交事件(只有提交按钮,才会触发事件)
内容改变事件
    onchange: 在内容改变时,触发该事件
页面加载事件
    onload: 等html网页完全加载完毕后,才执行事件里面的js代码

在页面中显示图片两种引入方式

绝对路径,带http(https:安全)
相对路径:同一级目录
        下一级目录
        上一级目录(../表示访问此文件所在文件夹的上一级; ./访问此文件所在文件夹; ../../访问此文件所在文件夹上一级的上一级
BOM

BOM : browser object module,浏览器对象模型(一系列对象,构成模型),操作浏览器的.

作用:操作浏览器的

BOM的五个对象
window
表示窗口对象,同时也是bom的顶层对象(可以通过window对象获取其它四个bom对象)
navigator
表示浏览器对象, 获取浏览器的相关参数信息(比如:使用的是那个浏览器,版本号是多少)
screen
表示网页的屏幕带下,操作网页的大小(分辨率,比如1366*768)
location
表示地址栏对象,操作地址栏的地址(获取地址栏的地址或者改变地址栏的地址)
history
表示用户访问过的历史记录,操作用户访问过的历史记录
常用api
  • window对象
弹出框方法:警告框: alert(内容);// window.alert(内容);
确认框: var flag = confirm(内容);//window.confirm(内容);
输入框: var user_value= prompt(提示信息);//window.prompt(提示信息);

​ 操作窗口方法:打开窗口open() 关闭窗口close()

​ 定时器方法:

一次性定时器:
设置定时器: var id = setTimeout(js代码,毫秒值), 清除定时器: clearTimeout(定时器标识);
比如: 定时炸弹,设置时间定时爆炸, 清除炸弹: 清除的标识
循环定时器:
设置定时器: var id= setInterval(js代码,毫秒值), 清除定时器: clearInterval(定时器标识);
  • location对象
获取地址栏的地址
var path = location.href;// 获取值
改变地址栏的地址(资源会跳转)
location.href=“跳转的资源地址”;//设置值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值