前端html、css、JavaScript---硬核知识汇总

article/2025/9/23 3:19:23

前端HTML篇

硬核!一篇文章教你阅遍html。

声明:本篇文章只是一个刚开始学习后端开发的菜鸟汇总完成的 JavaWeb学习前导html篇,所以专业性肯定不如前端人员,但用于学习后端开发足够了,刚接触html的童鞋拿来快速了解html也是很nice的。

文章目录

  • 前端HTML篇
    • HTML部分
      • 一、基础标签
        • 1.标题标签
        • 2.段落标签
        • 3.换行标签
        • 4.图片标签
        • 5.无序列表
        • 6.有序列表
        • 7.定义列表
        • 8.超链接
        • 9.锚链接
        • 10.表格
        • 11.表单(重点)
        • 12.扩展
      • 二、HTML5新特性
        • 定义文档类型
        • 新增语义化标签
        • 新增表单内容
    • css部分
      • 一、CSS 定义
      • 二、各种选择器
        • 1.通配符选择器
        • 2.基本选择器
        • 3.群组选择器
        • 4.派生选择器
        • 5.属性选择器
        • 6.锚伪类
      • 三、样式的优先级(外部css文件的引入)
      • 四、常用样式
      • 五、盒子模型
        • 1.div边距、居中
        • 2.相对定位
        • 3.绝对定位
        • 4.固定定位
        • 5.浮动
    • Javascript部分
      • 一、Javascript基础
        • 1.什么是Javascript
        • 2.引入外部js文件
        • 3.基本数据类型
        • 4.基本数据类型的特点
        • 5.数组、流程控制语句
        • 6.函数
      • 二、DOM
        • 1.操作元素
        • 2.DOM事件
      • 三、BOM
        • 1.window的属性和函数(含重点)
        • 2.弹框
        • 3.定时器(重点)
        • 4.Cookie(重点)
        • 5.JS对象

HTML部分

HTML(英文Hyper Text Markup Language的缩写)中文译为“超文本标记语言

一、基础标签

1.标题标签

<!--标题标签:h1~h6
h7和文本内容一样 -->
<h1>内容</h1>

2.段落标签

<p>天生吾族,岂可轻弃</p>

3.换行标签

<!--换行标签是单标签
换行标签:br
分隔标签:hr  -->
天生吾族
<br />
岂可轻弃
<hr />

4.图片标签

<!--
图片标签:img
src-图片资源
width:宽度(px-像素	%-浏览器的宽度百分比)
height:高度
alt:图片加载失败后展示的内容  -->
<img src="img/柯南.jpg" width="10%" alt="加载失败	"/>

5.无序列表

<!--
无序列表:ul
type:样式(circle-空心圆 disc-实心圆 square-实心方块)
li:项  -->
<ul type="square"><li>无序1</li><li>无序2</li><li>无序3</li>
</ul>

6.有序列表

<!--
有序列表:ol
type:样式(1-数字 a-小写字母 A-大写字母 i-小写罗马数字 I-大写罗马数字)
li:项  -->
<ol type="I"><li>有序1</li><li>有序2</li>
</ol>

7.定义列表

<!--
定义列表:dl
dt:列表标签
dd:列表内容
-->
<dl><dt>基德</dt><dd>出生于1998年1月1日,三岁精通HTML,五岁精通Java,八岁删库跑路</dd>
</dl>

8.超链接

<!--
超链接标签:a
href:链接地址
target:目标(_self-当前页面  _blank-新增页面)
-->
<a href="http网址" target="_self">百度一下,你就知道</a>
<!--超链接也可以跳转自己的项目文件 -->
<a href="08_列表案例.html" target="_blank">列表案例</a>
<!--将图片作为超链接 -->
<a href="http网址" target="_blank"><img src="img/百度.jpg" width="10%"/>
</a>

9.锚链接

<a href="#new01">法制</a>
<a href="#new02">国际</a>
<a href="#new03">娱乐</a>
<!--多写点h1标签才好看出效果 -->
<a name="new01"></a><!--锚点-->
<h1>法制新闻</h1>
<a name="new02"></a><!--锚点-->
<h1>国际新闻</h1>
<h1>国际新闻</h1>
<a name="new03"></a><!--锚点-->
<h1>娱乐新闻</h1>

10.表格

<!--
table - 表格
border="1" - 有边框
tr - 行
th - 列(居中加粗)
td - 列
rowspan="2" - 占两行
colspan="2" - 占两列
-->
<table border="1" width="30%"><tr><th>C</th><th>-></th><th>+</th><th>-</th></tr><tr><th>7</th><th>8</th><th>9</th><th>*</th></tr><tr><th>4</th><th>5</th><th>6</th><th>/</th></tr><tr><th>1</th><th>2</th><th>3</th><th rowspan="2">=</th></tr><tr><th colspan="2">0</th><th>.</th></tr>
</table>

11.表单(重点)

<!--以下内容均在body中 -->
<!--  form - 表单  -->
<form action="服务器地址" method="post">输入框:<input type="text" name="username" placeholder="输入框"/><br />密码框:<input type="password" name="password" placeholder="密码框" /><br /><!-- 单选框、多选框:默认选中 - checked="checked"  -->单选框:<input type="radio" name="sex" value="man" checked="checked"/><input type="radio" name="sex" value="woman"/><br />多选框:<input type="checkbox" name="hobby" value="football" checked="checked"/>足球<input type="checkbox" name="hobby" value="basketball"/>篮球<input type="checkbox" name="hobby" value="shop"/>购物<br /><!-- 下拉列表:默认选中- selected="selected" -->下拉列表:<select name="province"><option value="sc">四川</option><option value="jx" selected="selected">江西</option><option value="hn">湖南</option><option value="hb">湖北</option></select><select name="city"><option value="cd">成都</option><option value="zg">自贡</option><option value="ya">雅安</option><option value="ls">乐山</option><option value="ms">眉山</option><option value="my">绵阳</option></select><br /><!-- 提交按钮和图片按钮 功能一样 --><input type="button" value="普通按钮" onclick="fun01()"/><input type="submit" value="提交按钮" /><input type="reset" value="重置按钮" /><input type="image" src="img/图片按钮.jpg" width="10%"/><br /><br /><!--textarea文本域rows高度cols宽度required必填项readonly只读  --><textarea rows="10" cols="20" required="required" readonly="readonly">协议:xxxxxxxxxxx</textarea>
</form><script type="text/javascript">function fun01(){alert("柯南死神小学生");}
</script>

12.扩展

图标,百度网页最上方的头部标签

<head><meta charset="utf-8" /><title>百度一下,你就知道</title><link rel="shortcut icon" href="img/favicon.ico" />
</head>

二、HTML5新特性

定义文档类型

在文件的开头总是会有一个标签

语言文档类型声明方式
html4< !DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
html5< !DOCTYPE html>

新增语义化标签

标签描述
< header >头部标签
< nav >导航标签
< article >内容标签
< section >块级标签
< aside >侧边栏标签
< footer >尾部标签
<body>		<style type="text/css">header,nav,article,aside,footer,section{background-color: #87A442;text-align: center;border: black 1px solid;border-radius:20px;margin: 10px;padding: 10px;}header{height: 120px;}nav{height: 50px;}article{width: 46%;height: 120px;float: left;}aside{width: 46%;height: 120px;float: right;yu}footer{clear: both;height: 120px;}section{height: 70px;}</style><header>头部标签 - header</header><nav>导航标签 - nav</nav><div><article>内容标签 - article<section>块级标签 - section</section></article><aside>侧边栏标签 - aside</aside></div><footer>尾部标签 - footer</footer>
</body>

新增表单内容

<form action="#" method="post">日期选择器:<input type="date"/><br/>时间选择器:<input type="time"/><br/>邮箱输入框:<input type="email"/><br/>数字输入框:<input type="number" value="50" min="10" max="100" step="5"/><br/>URL输入框: <input type="url" list="url_list"/><datalist id="url_list"><option label="W3School" value="http网址1" /><option label="谷歌" value="http网址2" /><option label="百度一下" value="http网址3" /></datalist><br/><input type="submit" value="提交"/>
</form>

css部分

一、CSS 定义

CSS 指层叠样式表 (Cascading Style Sheets)

样式定义如何显示 HTML 元素,是为了解决内容与表现分离的问题

多个样式定义可层叠为一,样式通常存储在样式表

二、各种选择器

1.通配符选择器

<head><meta charset="UTF-8"><title></title><style type="text/css">*{color: red;}</style>
</head>
<body><h1>一级标签</h1><h6>六级标签</h6><p>段落标签1</p><p>段落标签2</p>
</body>

2.基本选择器

基本选择器的优先级别:ID > CLASS > 标签

<head><style type="text/css">/*基本选择器 - 标签选择器*/p{color: red;}/*基本选择器 - 类选择器*/.myClass{color: green;}/*基本选择器 - id选择器注意:项目中id都是唯一的*/#myId{color: blue;}</style>
</head>
<body><h1 class="myClass">一级标签</h1><h2 id="myId">二级标签</h2><h3 class="myClass">三级标签</h3><h4>四级标签</h4><p>段落标签1</p><p>段落标签2</p>
</body>

3.群组选择器

<head><style type="text/css">/*群组选择器*/h1,h3,p{color: red;}
</style></head>

4.派生选择器

<head><style type="text/css">/* 派生选择器、上下文关系选择器:* 后代选择器:ul a{color: red;}* 子代选择器:li>a{color: red;}* 相邻兄弟选择器:a+a{color: red;}* (注意:效果作用在后者)*/
</style></head>
<body><ul><li><a href="#">超链接1</a></li><li><a href="#">超链接2</a></li></ul><ul><li><a href="#">超链接3</a></li><li><a href="#">超链接4</a></li><li><a href="#">超链接5</a></li></ul><a href="#">超链接6</a><a href="#">超链接7</a><a href="#">超链接8</a>
</body>

5.属性选择器

<style type="text/css">/*	包含标题(title)的所有元素变为红色*[title] {color:red;}只对有 href 属性的锚(a 元素)应用样式a[href] {color:red;}只对同时有 href 和title属性的锚(a 元素)应用样式a[href][title] {color:red;}只对type='text'、name='username1'的input生效input[type='text'][name='username1']{color: red;}*/
</style>

6.锚伪类

<head><style type="text/css">/*锚伪类:记录各个状态*/a:link {color:#FFB6C1}	/* 未访问的链接 */a:visited {color:#000000;}/* 已访问的链接 */a:hover {color:#00FFFF}/* 鼠标移动到链接上 */a:active {color:#B22222}/* 选定的链接 */</style>
</head>
<body><a href="http网址">网址</a>
</body>

三、样式的优先级(外部css文件的引入)

<head><meta charset="UTF-8"><title></title><!-- 样式的优先级别:行内样式表 >(内部样式和外部样式看加载顺序) --><!--内部样式表--><style type="text/css">p{color: red;}</style><!--外部样式表--><link rel="stylesheet" type="text/css" href="../css/new_file.css"/>
</head>
<body><!--行内样式表--><p style="color: blue;">段落标签</p>
</body>

四、常用样式

1.字体属性
属性名称
font-family(字体)
font-size(大小)
font-style(风格)
---- normal标准样式
---- italic斜体
---- oblique倾斜
---- inherit从父类继承的字体样式
font-weight(字体加粗)
----normal标准样式
----bold粗体
----bolder更粗
----lighter更细

2.文本属性
属性名称
letter-spacing(字母间隔)
text-decoration(划线修饰)
text-align(文本对齐方式)
text-indent(文本缩进)
line-height(行高)

3.背景
属性名称
background-color
background-image
background-repeat

4.边框
属性名称
border-bottom
solid(实线)
dashed(虚线)
double(双实线)

5.圆角、阴影

<style type="text/css">#btn{width: 100px;height: 50px;color: white;font-weight: bolder;background-color: orange;border-radius: 10px;/*圆角属性*/box-shadow: 10px 10px 5px gainsboro;/*添加按钮阴影 X轴偏移量 Y轴偏移量 阴影模糊半径*/text-shadow: 5px 5px 5px black;/*添加文本阴影 X轴偏移量 Y轴偏移量 阴影模糊半径*/}
</style>

五、盒子模型

1.div边距、居中

能用外边距就用外边距

<head><style type="text/css">div{border: 1px red solid;width: 200px;height: 200px;margin: 0 auto;/*居中*//*设置外边距*//*margin-top: 50px;上外边距margin-left: 50px;左外边距margin-right: 50px;右外边距margin-bottom: 50px;下外边距margin: 50px;上下左右外边距*//*设置内边距*//*padding-top: 50px;上内边距padding-left: 50px;左内边距padding-right: 50px;右内边距padding-bottom: 50px;下内边距padding: 50px;上下左右内边距*/}</style></head>

2.相对定位

<head><style type="text/css">#manager{border: orange 1px solid;margin-top: 80px;}#box01{width: 100px;height: 100px;border: red 1px solid;}#box02{width: 100px;height: 100px;border: green 1px solid;position: relative;/*相对定位:保留原有位置,针对于原有位置进行移位*/top: 10px;left: 10px;}#box03{width: 100px;height: 100px;border: blue 1px solid;}</style></head>
<body><div id="manager"><div id="box01"></div><div id="box02"></div><div id="box03"></div></div>
</body>

3.绝对定位

<head><style type="text/css">#manager{border: orange 1px solid;margin-top: 80px;position: relative;}#box01{width: 100px;height: 100px;border: red 1px solid;}#box02{width: 100px;height: 100px;border: green 1px solid;position: absolute;/*绝对定位:不保留原有位置,向上找父级标签,查看是否有position的属性,如果没有再向上找,直到找到body标签*/top: 10px;left: 10px;}#box03{width: 100px;height: 100px;border: blue 1px solid;}</style></head>
<body><div id="manager"><div id="box01"></div><div id="box02"></div><div id="box03"></div></div>
</body>

4.固定定位

<head><style type="text/css">div{position: fixed;/*固定定位*/top: 70%;left: 90%;}</style></head>
<body><div><a href="#new01">置顶</a></div><a name="new01"></a><!--锚点--><h1>法制新闻</h1><h1>国际新闻</h1><h1>娱乐新闻</h1><!--多写点h1标签方便观察-->
</body>

5.浮动

浮动虽然可以帮我们将原本竖着排的div横着排,但也会造成脱离父级标签的束缚,使得父级标签无法撑开,所以一定要加.clear{clear: both;}清除浮动

<head><style type="text/css">#manager{border: orange 1px solid;margin-top: 80px;}#box01{width: 100px;height: 100px;border: red 1px solid;/*控制是靠左还是靠右*/float: left;}#box02{width: 100px;height: 100px;border: green 1px solid;float: left;}/*清除浮动*/.clear{clear: both;}</style></head>
<body><div id="manager"><div id="box01"></div><div id="box02"></div><div class="clear"></div></div>
</body>

Javascript部分

一、Javascript基础

1.什么是Javascript

Javascript基于对象事件驱动的脚本语言,主要是嵌入到HTML中,应用在客户端,动态操作网页元素,也可以作用于服务端。

特点:交互性(表单校验,信息提示,动态数据图表,ajax异步提交,解析服务端响应数据等等)

安全性(不可以直接访问本地硬盘)

跨平台性(由浏览器解析执行,和平台无关)

2.引入外部js文件

一个html里边可以在 head 和 body标签里放多个 script 标签

<script type="text/javascript" src="out.js"></script>
<!--src是文件相对路径,不是文件名 -->
<!--内部写js代码 -->
<script type="text/javascript">alert("HelloWorld...3");//弹框console.log("HelloWorld...333");//在控制台中打印数据
</script>

3.基本数据类型

五大基本数据类型:number、string、boolean、undefined(未定义类型)、null

<script type="text/javascript">/*var - 变量*/var v = 123;v = 123.01;console.log(v);v = "abc";v = true;var v4;console.log(v4);v4 = undefined;console.log(v4);var v5 = null;console.log(v5);
</script>

4.基本数据类型的特点

<script type="text/javascript">//JS的基本数据类型:number、string、boolean、undefined(未定义类型)、null//number的特殊点:(Infinity 表示无穷大)console.log(Infinity + (-Infinity));//NaN:Not a Number//string的特殊点:var v1 = "12";var v2 = "3";console.log(v1 + v2);//做拼接console.log(parseInt(v1) + parseInt(v2));//parseFloat(v1)console.log(v1 - v2);//9console.log(v1 * v2);//36console.log(v1 / v2);//4console.log(v1 % v2);//0//boolean的特殊点:0、""、undefined、null、NaN都表示falseif(null){console.log("true");}else{console.log("false");}//undefined vs nullvar v1;console.log(typeof v1);//undefinedvar v2 = null;console.log(typeof v2);//object(空对象)// == vs ===	var v1 = 123;var v2 = "123";console.log(v1 == v2);//true:只判断值console.log(v1 === v2);//false:既判断值,也判断类型//NaN == NaN 吗?答案是falseconsole.log(NaN == NaN);
</script>

5.数组、流程控制语句

在Javascript中,可以直接用java的流程语句,虽然这两个语言并没有一毛钱关系。

<script type="text/javascript">var a = [[1,2,3],[4,5,6]];//在网页打印三角形for(var i = 0;i<5;i++){for(var j = 0;j<=i;j++){document.write("*");}document.write("<br/>");}
</script>

6.函数

系统提供的预定义函数

parseInt():试图将其收到的任何输入值转换成整数类型,转换失败则返回NaN

parseFloat():同上类似

isNaN(xxx):判断是否为非数字

isFinite(xxxx):判断输入的是否是一个既非Infinity也非NaN的数字

eval():会将其输入的字符串当作javascript代码来执行

自定义函数

<script type="text/javascript">//无返回值无参数的方法function fun01(){alert("aaa");}fun01();//有参数的方法(参数不用写var)function fun02(a,b){alert(a+b);}fun02("10","20");//有返回值的方法function fun03(a,b){return a+b;}var v = fun03("10","20");alert(v);
</script>

二、DOM

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被构造为对象的树。

拿到document就可以对html网页为所欲为,DOM是非常强大的一个功能。

HTML DOM 树:

在这里插入图片描述

1.操作元素

  1. 查找元素

    <body><p id="p_id01" class="p_class">段落标签1</p>		<p id="p_id02" class="p_class">段落标签2</p>		<input type="text" name="text"/><br /><input type="text" name="text"/><script type="text/javascript">//通过id查找的元素 - 获取的是对象//var pId01 = document.getElementById("p_id01");//pId01.onclick = function(){//	this.innerText = "奋斗到感动自己,拼搏到无能为力";//}//通过class查找的元素 - 获取的是数组//var p1 = document.getElementsByClassName("p_class")[0];//p1.onclick = function(){//	this.innerText = "奋斗到感动自己,拼搏到无能为力";//}//通过标签查找的元素 - 获取的是数组//var p1 =document.getElementsByTagName("p")[0];//p1.onclick = function(){//	this.innerText = "奋斗到感动自己,拼搏到无能为力";//}//通过name查找的元素 - 获取的是数组var text01 = document.getElementsByName("text")[0];text01.onclick = function(){this.style.color = "red";}//如果觉得上面这么写麻烦,是可以像下面一样写的//document.getElementsByName("text")[0].onclick = function(){ 代码块 }</script>
    </body>
    
  2. 操作内容

    <body><p>段落标签</p><script type="text/javascript">document.getElementsByTagName("p")[0].onclick = function(){//获取内容//var text = this.innerText;//alert(text);//天生吾族	var text = this.innerHTML;alert(text);//<h1>天生吾族</h1>//设置内容//this.innerText = "<h1>天生吾族</h1>";this.innerHTML = "<h1>天生吾族</h1>";//认为内容是html代码}</script></body>
    
  3. 操作属性

    <body><img src="img/天生吾族.jpg" width="10%" height="10%"/><script type="text/javascript">var img = document.getElementsByTagName("img")[0];img.onclick = function(){//获取属性1//console.log(this.width);//13//console.log(this.height);//18//获取属性2  //console.log(this.getAttribute("width"));//10%           //console.log(this.getAttribute("height"));//10%//设置属性1//this.width = "200";//像素//this.height = "200";//设置属性2this.setAttribute("width","20%");this.setAttribute("height","20%");}</script></body>
    
  4. 操作样式

    <body><input type="button" value="显示图片" onclick="fun01()" /><input type="button" value="隐藏图片" onclick="fun02()" /><br /><img src="img/天生吾族.jpg" width="10%" height="10%"/><script type="text/javascript">var img = document.getElementsByTagName("img")[0];function fun01(){//获取样式console.log(img.style.backgroundColor)//设置样式//visibility资源是否可见,visible可见,hidden不可见img.style.visibility = "visible";}function fun02(){img.style.visibility = "hidden";}</script></body>
    

2.DOM事件

  1. 单击事件

    <body><h1 onclick="this.innerText='岂可轻弃'">天生吾族</h1><h1 onclick="fun01(this)">天生吾族</h1><input type="button" value="使第3个h1标签改变内容" onclick="fun02()"/><h1>天生吾族</h1><input type="button" value="使第4个h1标签改变内容"/><h1>天生吾族</h1><script type="text/javascript">function fun01(obj){obj.innerText = "岂可轻弃";}function fun02(){document.getElementsByTagName("h1")[2].innerText = "岂可轻弃";}document.getElementsByTagName("input")[1].onclick = function(){document.getElementsByTagName("h1")[3].innerText = "岂可轻弃";}</script>
    </body>
    
  2. 页面加载事件

    <body><input type="button" value="使h1标签改变内容" /><h1>天生吾族</h1><script type="text/javascript">//onload事件:叫做页面加载事件,等页面的标签和图片资源加载完毕后才调用的事件window.onload = function(){document.getElementsByTagName("input")[0].onclick = function(){	var h1 = document.getElementsByTagName("h1")[0];h1.innerText = "岂可轻弃"}}</script></body>
    
  3. 键盘事件

    <body><input type="text" onkeydown="down01()"onkeypress="press01()"onkeyup="up01()"/><script type="text/javascript">function down01(){console.log("键盘按下事件");}function press01(){console.log("键盘持续事件");}function up01(){console.log("键盘松开事件");}</script></body>
    
  4. 鼠标事件

    <body><img src="img/天生吾族.jpg" width="40%" onmousedown="down01()"onmouseup="up01()"onmousemove="move01()"onmouseover="over01()"onmouseout="out01()"/>		<script type="text/javascript">function down01(){console.log("鼠标按下事件");}function up01(){console.log("鼠标松开事件");}function move01(){console.log("鼠标移动事件");}function over01(){console.log("鼠标移进事件");}function out01(){console.log("鼠标移出事件");}</script></body>
    

    案列:

    <body><img src="../img/tx1.jpg" width="100px" onmouseover="over01(this)" onmouseout="out01(this)"/>	<img src="../img/tx2.jpg" width="100px" onmouseover="over01(this)" onmouseout="out01(this)"/>	<img src="../img/tx3.jpg" width="100px" onmouseover="over01(this)" onmouseout="out01(this)"/>	<script type="text/javascript">function over01(obj){obj.style.opacity = 1;//设置透明度:1完全不透明	0完全太透明}function out01(obj){obj.style.opacity = 0.4;}</script></body>
    
  5. 焦点事件

    <body>账号:<input type="text" value="请输入账号" onfocus="focus01()" onblur="blur01()"/><script type="text/javascript">function focus01(){console.log("获取焦点事件");}function blur01(){console.log("失去焦点事件");}</script></body>
    
  6. 操作节点

    <body><input type="button" value="新增段落标签" onclick="addP()"/><input type="button" value="新增图片标签" onclick="addImg()"/><input type="button" value="克隆图片标签" onclick="cloneImg()"/><input type="button" value="删除图片标签" onclick="deleteImg()"/><div id="manager"><p>段落标签</p></div><script type="text/javascript">var manager = document.getElementById("manager");function addP(){//创建节点var p = document.createElement("p");//<p></p>//创建内容var text = document.createTextNode("新增段落标签");//新增段落标签//将内容添加到p标签中p.appendChild(text);//<p>新增段落标签</p>//将p标签添加到div标签中manager.appendChild(p);}function addImg(){//创建节点var img = document.createElement("img");//设置属性img.setAttribute("width","100px");img.setAttribute("height","100px");img.setAttribute("src","../img/tx2.jpg");//将img标签添加到div标签中manager.appendChild(img);//创建节点var br = document.createElement("br");//将br标签添加到div标签中manager.appendChild(br);}function cloneImg(){//获取img标签var img = document.getElementsByTagName("img")[0];//克隆标签var newImg = img.cloneNode(true);//true-深入克隆//将newImg标签添加到div标签中manager.appendChild(newImg);//获取br标签var br = document.getElementsByTagName("br")[0];//克隆标签var newBr = br.cloneNode(true);//true-深入克隆//将newBr标签添加到div标签中manager.appendChild(newBr);}function deleteImg(){var img = document.getElementsByTagName("img")[0];var br = document.getElementsByTagName("br")[0];manager.removeChild(img);manager.removeChild(br);}</script>
    </body>
    

三、BOM

浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。

Browser Object Model

1.window的属性和函数(含重点)

Window 对象

所有浏览器都支持 window 对象。它表示浏览器窗口。

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

HTML DOM 的 document 也是 window 对象的属性之一

  1. window.location重点重点重点

    前端能向服务器发送请求的有:超链接、表单、location

    实现当前页面的跳转
    window.location.href = “http网址”;
    window.location = “http网址”;
    重新加载页面
    location.reload();

  2. window.history

    history.back() 上一页

    history.forward() 下一页

    history.go(-1) 上一页

    histroy.go(1) 下一页

    histroy.go(0) 刷新

    histroy.go(number) 随number改变上下几页,一般也就一页

  3. window.open

    弹出页面(流氓广告)
    window.open(“http网址”);

    有些浏览器是可以屏蔽open函数的(可以自己设置),为的就是防止一直恶意弹出页面,搞蹦服务器。

2.弹框

<script type="text/javascript">function fun01(){alert("警告框"); //确认-true	取消-falsevar bool = confirm("确认框");	console.log(bool);//返回输入内容var v = prompt("提示框","默认值");console.log(v);}
</script>

3.定时器(重点)

语法:

var t=setTimeout(“javascript语句”,毫秒) —一次定时

clearTimeout(setTimeout_variable) —取消定时

setInterval(code,millisec) —循环定时,code是执行的代码,millisec是间隔的时间。循环定时是不会停止的,直到你调用了clearTimeout

<script type="text/javascript">var img = document.getElementsByTagName("img")[0];//定时器 setTimeout :过3000毫秒就触发函数var timeout = setTimeout(function(){img.src = "../../img/不可描述.jpg";},3000);//定时器:每过1000毫秒就触发函数var timeout1 = setInterval(function(){console.log("xxx");},1000);//取消定时 clearTimeoutfunction fun01(){clearTimeout(timeout1);}</script>

案例:时钟(当前时间显示)

<body><h1></h1><script type="text/javascript">var h1 = document.getElementsByTagName("h1")[0];function setTime(){//创建日期对象var date = new Date();//获取日期信息var hour = date.getHours();var minute = date.getMinutes();var second = date.getSeconds()var time = hour + ":" + minute + ":" + second;//设置h1.innerText = time;}setTime();setInterval(function(){setTime();},1000);</script></body>

4.Cookie(重点)

有可能和后面服务器的Session搞混,所以一定要注意

cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

cookie是存于用户硬盘的一个文件,这个文件通常对应一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨域名使用

cookie是存在浏览器里边的,不能跨浏览器使用

Cookie可以做什么?

1,保存用户的登录状态

2,定制页面,如换肤,选择所在地区等等

3,购物车的实现(苏宁易购)(淘宝以前也是,现在在数据库了)

4,记录用户的浏览历史记录

Cookie的缺点:

1,cookie可能被禁用

2,cookie是与游览器相关的,即使访问同一个页面,不同的浏览器保存的cookie也是不能互相访问的

3,cookie可能被删除,因为cookie实际就是硬盘上的一个文件

4,cookie的安全性不够高,所有的cookie都是以纯文本的形式记录于文件中。

Cookie的增删查改:

<body><input type="button" value="添加Cookie" onclick="fun01()" /><input type="button" value="删除Cookie" onclick="fun02()" /><input type="button" value="修改Cookie" onclick="fun03()" /><input type="button" value="查询Cookie" onclick="fun04()" /><script type="text/javascript">function fun01(){updateCookie("username","hh",1000*60*60*24*30);updateCookie("password","123123",1000*60*60*24*30);}function fun02(){updateCookie("username","",-1);updateCookie("password","",-1);}function fun03(){updateCookie("username","wx",1000*60*60*24*30);updateCookie("password","666888",1000*60*60*24*30);}function fun04(){//alert(document.cookie);var username = queryCookie("username");var password = queryCookie("password");alert(username + " -- " + password);}function queryCookie(key){var cs = document.cookie.split(";");for(var i =0;i<cs.length;i++){var k = cs[i].trim().split("=")[0];var v = cs[i].trim().split("=")[1];if(k == key){return v;}}}function updateCookie(key,value,time){var date=new Date(); date.setTime(date.getTime() + time);document.cookie = key + "=" + value + "; expires=" + date.toGMTString();}</script></body>

5.JS对象

JavaScript中的所有事物都是对象:字符串、数值、数组、函数…

此外,JavaScript 允许自定义对象。

但是在JavaScript 没有类的概念

<body><script type="text/javascript">//自定义对象//创建对象var stu = new Object();//设置属性stu.name = "柯南";stu.age = 18;//设置函数stu.printInfo = function(){alert(this.name + " -- " + this.age);}stu.printInfo();</script></body>
<body><script type="text/javascript">//自定义对象 - json格式//创建对象var stu = {name:"柯南",age:18,printInfo:function(){alert(this.name + " -- " + this.age);}};stu.printInfo();</script></body>
<body><script type="text/javascript">//自定义对象 - 使用构造器函数//构造器function Student(name,age){this.name = name;this.age = age;}//创建对象var stu = new Student("柯南",18);//for_in遍历对象中所有的属性和方法for(var v in stu){console.log(v);}//原型:在之前的基础上添加内容Student.prototype.printInfo = function(){alert(stu.name + " --- " + stu.age);}stu.printInfo();</script></body>

JavaScript 基于 prototype(原型),而不是基于类的。

注:汇总资料来源于hhy老师,汇总编写:cat_lkh


http://chatgpt.dhexx.cn/article/sBA5N0Gg.shtml

相关文章

前端面试题总结(转载)

DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动1.DOM中两个节点存在的关系无非3种&#xff1a;1.1.包含与被包含,IE率先引入的contains()方法可检测&#xff0c;例 A.contains(B)&#xff0c;即检查节点B是否是节点A的子节点&#xff0c;返回布尔值&…

前端三件套知识点

html 常用插件 文件比较 常用快捷键 ctrl f 查找当前页面的内容 !后按table 或者 html:5 代码模板快捷键 altb调试快捷键 ctrlk ctrlt改颜色主题 altshifta注释快捷键 html基础概念 一、 WEB标准的概念及组成 WEB标准不是某一个标准&#xff0c;而是一系列标准的集合。 …

php前端搜索功能,JavaScript实现前端实时搜索功能的代码分享(图)

这篇文章主要为大家详细介绍了JavaScript实现前端实时搜索功能&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 大部分页面都具备搜索功能。而作为前端&#xff0c;我们的目的只是将用户输入的内容返回给后台而后呈现反馈数据给用户&#xff0c;具体实…

前端实时搜索功能

** 大部分页面都具备搜索功能。而作为前端&#xff0c;我们的目的只是将用户输入的内容返回给后台而后呈现反馈数据给用户&#xff0c;具体实现如下&#xff1a; ** 1.基本布局&#xff1a; <div class"searcher"><p class"searcher-main">…

适合后端开发人员的html笔记

1html 锚点 <a href"#bottom">跳转到底部</a> <div class"aa"></div> <a href"#" id"bottom">跳转到顶部</a> img 图片标签 h1:一级标题块级元素其他的都是行内元素 img同时具备行内元素和块级…

【JavaScript】 一万字 JavaScript 笔记(详细讲解 + 代码演示 + 图解)

文章目录 变量 变量声明的提升数据类型Typeof运算符数据类型转换 表达式与运算符 隐式类型转换toFixed(a)方法保留a位小数关系运算符短路求值流程控制语句 数组函数DOMBOM面向对象 变量 一个变量只定义但没有赋初值&#xff0c;默认值是 undefined定义变量时必须写var&a…

前端面试 汇总整理

-----------------------------------------html css-------------------------------------------- 一.回流与重绘 回流一定引起重绘&#xff0c;重绘不一定回流 1.浏览器渲染机制 1&#xff09;浏览器采用流式布局。 2&#xff09;浏览器将html解析成DOM&#xff0c;css解析成…

JavaWeb——后端开发必备的JavaScript知识

JS学习 1.什么是JavaScript&#xff0c;有什么用&#xff1f; 答&#xff1a;JavaScript是网景公司发明的&#xff0c;运行在浏览器上的脚本语言&#xff0c;简称JS。 补充&#xff1a;网景公司现在没了&#xff0c;被美国在线收购了。 2.在HTML中嵌入JavaScript代码的三种方…

el-input中设置onkeypress事件是否匹配正则表达式显示输入内容的格式

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_BADAO_LIUMANG_QIZHI的博客-CSDN博客_若依前后端分离搭建 设置el-input的onkeypress事件限制输入内容是否匹配正则表达式。 注&#xff1a; 博客&a…

前端开发实习生面试总结

个人感觉面试官对实习生还是很友好的&#xff0c;大部分时候你答不上来都会引导你&#xff0c;最后还会点评你的不足&#xff0c;评价出来的那些问题确实是我自己的短板&#xff01;所以在整个过程中还是学到了很多&#xff01;&#xff01; 本人坐标南京&#xff0c;南京投的相…

datacenter 2

突然综合类又有新的事情了 页面能顺利打开了 但是好像值传不过去 之前不知道为什么输出了三十次 之前是判断两个不为4和200 然后else输出 现在改了之后只输入10次 但是出现通讯错误那个问题

数据中心与云数据中心

数据中心与云数据中心 数据中心&#xff08;DC&#xff0c;DataCenter&#xff09;是指在一个物理空间内实现信息的集中处理、存储、传输、管理等功能&#xff0c;它包括服务器、存储、网络等关键设备和这些关键设备运行所需要的环境因素&#xff0c;如供电、制冷、消防、监控等…

阿里云cassandra数据库datacenter查看

在使用阿里云的cassandra数据库时需要注意的是下图中的数据中心ID对应cassandra中的datacenter&#xff0c;而不是数据中心的名称&#xff01;&#xff01;&#xff01; 即SessionBuilder.withLocalDatacenter方法要使用阿里云cassandra官方文档中的数据中心ID public SelfT w…

英特尔固态硬盘测试软件,英特尔固态硬盘工具(Intel SSD Datacenter Tool)

英特尔固态硬盘数据中心工具Intel SSD Datacenter Tool是一个有用的命令行应用程序&#xff0c;特别适合管理 910 系列的英特尔SSD固态驱动器。如果用户的硬盘是英特尔的就需要下载一个这样的软件&#xff0c;软件能对硬盘进行检测和固件升级&#xff0c;有需要的可以下载使用。…

ICNP‘2019 Congestion Control for Cross-Datacenter Networks论文阅读笔记

文章目录 BackgroundGeminiDiscussion Background 现代的一些大规模在线服务会将他们的信息储存在不同地域的数据中心当中&#xff0c;并且这种分布以及变得越来越流行了。这意味着&#xff0c;有一些流会同时经过数据中心与广域网。(和Annulus中提到的是同一个问题) 实际上这…

2008服务器文件夹镜像,【玩转腾讯云】导入镜像-Windows 2008 R2 Datacenter

微软发布对 Windows Server 2008 和 2008 R2 的支持已于 2020 年 1 月 14 日结束。 这意味着定期安全更新也已终止,将不会有额外的: 免费本地安全更新 非安全更新 免费支持选项 在线技术内容更新 各云服务商也发布了相关下线 Windows 2008 系列镜像的公告 【腾讯云】关于Wind…

VMware Workstation中安装Windows Server 2022 DataCenter(数据中心)无桌面版且配置远程桌面

一、实现效果 二、安装配置操作 2.1、下载Windows Server 2022的iso镜像 原版软件 (itellyou.cn)https://next.itellyou.cn/Original/Index#

Windows 11 与 Windows Server 2019 Datacenter 下部署 适用于Linux的windows子系统

提示&#xff1a;一篇完成2个操作系统的步骤 2个版本同时发布 前言电脑版本 提示&#xff1a;Windows11一、安装前CPU需要支持虚拟化技术 二、安装打开Microsoft Store ,搜索 Ubuntu2.获取安装即可 阿里云 提示&#xff1a;Windows Server 2019 Datacenter一、安装前二、安装总…

Windows Server 2019 Datacenter x64 安装 SHARP AR-2048N 打印机驱动

设备信息及驱动准备 打印机型号&#xff1a;SHARP AR-2048N 系统版本&#xff1a;Windows Server 2019 Datacenter x64 官网驱动下载&#xff0c;标准驱动 2048/2348/2648/3148NV&#xff0c;打印驱动程序&#xff08;SPLC打印语言&#xff09;、扫描仪驱动程序 安装场景与问…

NSX-T 3.1 DataCenter学习实践 1

一&#xff0c;基础实验环境搭建 实验环境介绍 实验环境是两台Dell R620服务器&#xff0c;一台MD3220 SAS存储。由于R620只支持到vSphere 6.7&#xff0c;NSX-T最好通过物理机上运行嵌套EXSi虚拟机来实现&#xff0c;这样完全规避了硬件兼容性问题。ESXi虚拟机共享存储有两个…