【前端】一文快速回顾 Html+CSS+JS

文章目录

  • 前言 Preface
  • 1. HTML 快速回顾
    • 1.1 基本结构
    • 1.2 简单语法回顾
  • 2. CSS 快速回顾
    • 2.1 三种引入方式
    • 2.2 选择器
    • 2.3 布局
      • 2.3.1 盒子模型
      • 2.3.2 定位
      • 2.3.3 浮动
    • 2.4 简单练习
  • 3. JavaScript 快速回顾
    • 3.1 JavaScript 引入方式
    • 3.2 JavaScript 基本语法
      • 3.2.1 变量
      • 3.2.2 函数与箭头函数
    • 3.3 简单练习
  • 4. 总结
  • 参考资料

一文快速回顾前端基础三件套:HTML+CSS+JavaScript

一起快速回顾前端基础三件套吧

前言 Preface

太久没写前端啦,最近开了一个新项目练手,产品前后端开发运维都是我一个人。需求分析、技术选型完成,后端基础项目及所需中间件搭建完毕后,就着手准备前端开发了。

本来前端就学得半桶水,而且太久没碰啦,因此打算从前端三件套:html、css、javascript开始,快速回顾一遍,打打基础,再进行Vue、React等常见框架学习。

考虑到若要进行详细的基础全面回顾,篇幅有限,因此定下以下学习目标以及重点:

学习目标

  • 快速回顾 Html 的基本结构
  • 快速回顾 CSS 常用使用方式
  • 快速回顾 JavaScript 基本语法

重点

  • CSS外部样式的使用方式
  • JavaScript 箭头函数

下面我们开始!

1. HTML 快速回顾

HTML是一种超文本标记语言,主要负责静态网页。

超文本标记语言:一种标记语言。一种数据组织方式,组织包括图片、音频等数据在内的各种数据。可以被浏览器解释、读取。

1.1 基本结构

我们通过以下Hello World Demo来快速回顾Html的基本结构:

    <!DOCTYPE html><!--文档声明:声明这是一个HTML文档--><!--HTML的注释都是用这种形式,同学们记下来咯--><html><!--html 标签,包裹着<head>、<body>标签--><head> <!--头部标的作用为:<head> 标签用于定义文档的头部。<base>, <link>, <meta>, <script>, <style>, 以及 <title><title> 定义文档的标题,它是 head 部分中唯一必需的元素。--><meta charset =" utf-8"/><!--meta用于设置编码格式--><!--title 标签 用于设置该网页的标题,是唯一必需的元素--><title>Hello world</title></head><body><!--body 里的内容主要是给用户呈现的内容,如表格、图片等-->Hello world!</body></html><!--注意,HTML标签都是成双成对的,部分可自闭的标签可表示为<[属性] 标签名/>-->

其中,涉及以下语法概念:

  • 标签:HTML由一套标记标签组成,通常就叫标签。一个标签通常由开始标签和结束标签组成。例如,这个示例的<body>是开始标签,</body>是结束标签,区别在于结束标签在标签名描述之前加了/。有些标签可以自闭,称为自闭标签,意思是省略了结束标签的标签,例如,一个单独的<br>标签表示一个换行,省略了结束标签。

  • 注释:HTML 的注释由<!-- [注释内容] -->表示,和XML的注释格式是一致的,通常我们使用IDE工具快捷键生成即可。

  • 元素:元素是指一个标签开始和结束之间的所有代码。例如,上述例子中的<p>Hello World!</p>,"Hello World!"就是<p>标签的元素。

  • 属性:标签内的看似赋值的操作,称为属性。如上述例子的:<meta name="viewport" content="width=device-width, initial-scale=1.0">" name=“viewport” "就是一个属性。“name” 是属性名,“viewport” 是属性值,属性值应该用双引号括起来。

1.2 简单语法回顾

我们通过一个Form表单的Demo来快速回顾与练习Html的语法:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>列表、表格、表单综合</title> 
</head>
<body>
<!--我们用一个小案例来示例-->
<from><h1>注册</h1>姓名: <input type="text" name="name" value="输入姓名"> <br><!--这里br是换行标签-->密码: <input type="password" name="password"> <br>确认密码:<input type="password" name="password">
</from><ol><p>请选择业务</p><from><li>业务1<input type="checkbox" name="service"></li><li>业务2<input type="checkbox" name="service"/></li></from>
</ol><table border="5"><tr><td>性别:男 <input type = "radio" name = "sex"><br></td><td><input type = "radio" name = "sex"><br></td></tr><tr><td>同意协议一<input type = "checkbox" name = "agree"><br></td><td>同意协议二<input type = "checkbox" name = "agree"><br></td></tr><tr><td><form name="input" action="输入页面,表单数据提交到该页面" method="get">输入密码点击提交 <input type="passowrd" name="password"><input type="submit" value="请提交"></form></td>	</tr>
</table>
</body>
</html>

至于其它常用标签,我们需要用到的时候再查即可。我们基本需要掌握的是Html的基本结构,以及标签的用法。

2. CSS 快速回顾

CSS是层叠样式表。从功能上简单理解,HTML可看作是网页的骨架,CSS则对网页进行布局和美化。

CSS本质不会对逻辑产生影响,但部分样式可能会造成布局或图标的变动,与交互有一定的关系。

2.1 三种引入方式

CSS 主要有三种引入方式:

  • 内联样式
    内联样式是在具体HTML标签内,通过style属性设置,如:
<div style="color: red">红色段落</div>
  • 内部样式
    内部样式的位置在html的head标签里,在style标签内设置。
  <head><meta charset="UTF-8"><title>三种引入方式</title><style>#d1{color: green;}</style></head><body><h1 id = "d1">内部样式,绿色标题</h1></body>
  • 外部样式
    外部样式即将各种样式写在一个CSS文件中,在head中引入。
  <link rel="stylesheet" href="myCSS.css">

三种使用方式会根据不同项目的不同规范来使用,一般来说,内部样式和外部样式在实际项目中出于易于维护的需要会使用得相对多一些。

2.2 选择器

CSS我们主要学习选择器。选择器的种类有很多,不同种类有不同的使用方式,有不同的作用。此处我们先快速回顾选择器的基本语法,实际用到的时候再根据需求场景查选择器即可。

语法
selector {property: value}
即 选择器{属性:值}

常见选择器

  • 元素选择器
  • id选择器
  • 类选择器
  • 伪类选择器

等等。

具体选择器的使用方式,篇幅有限,本文不赘述。相信读者参考一下项目代码及其它资料,很快就能回顾并掌握。

2.3 布局

CSS中的布局我们要关注的是盒子模型、浮动、定位等。

2.3.1 盒子模型

盒子模型的概念是指 HTML 元素被表示为一个矩形的盒子,它由四个部分组成:内容区域、内边距、边框和外边距。这些部分可以分别用 CSS 属性进行控制,从而实现灵活的布局和样式设置。

  • 内边距(padding):内边距是指内容区域与边框之间的距离,它可以通过 CSS 的 padding 属性进行设置。内边距可以用来调整元素内容与边框之间的间距,从而影响元素的大小和布局。
  • 外边距(margin):外边距是指元素与相邻元素之间的距离,它可以通过 CSS 的 margin 属性进行设置。外边距可以用来控制元素与其周围元素之间的间距,从而影响页面布局和元素的排列方式。

示例:

.box {padding: 20px; /* 设置内边距为 20 像素 */margin: 20px; /* 设置外边距为 20 像素 */
}.inner {padding-top: 10px; /* 设置顶部内边距为 10 像素 */padding-right: 15px; /* 设置右侧内边距为 15 像素 */padding-bottom: 10px; /* 设置底部内边距为 10 像素 */padding-left: 15px; /* 设置左侧内边距为 15 像素 */
}

2.3.2 定位

定位是一种常用的布局技术,它允许我们精确地控制元素在页面中的位置。在 CSS 中,有三种常见的定位方式:相对定位(relative)、绝对定位(absolute)和固定定位(fixed)。通过这些定位方式,我们可以实现元素的层叠效果、悬浮效果以及其他特殊布局需求。

示例:

.relative {position: relative; /* 设置相对定位 */left: 20px; /* 元素相对于原始位置向右偏移 20 像素 */top: 10px; /* 元素相对于原始位置向下偏移 10 像素 */
}.absolute {position: absolute; /* 设置绝对定位 */right: 0; /* 元素相对于父元素的右侧对齐 */bottom: 0; /* 元素相对于父元素的底部对齐 */
}.fixed {position: fixed; /* 设置固定定位 */top: 0; /* 元素固定在页面顶部 */left: 0; /* 元素固定在页面左侧 */
}

2.3.3 浮动

浮动是一种常见的布局技术,它允许元素在页面上左右移动,直到碰到父容器或其他浮动元素为止。浮动常用于创建多列布局或实现图片与文本的环绕效果。在 CSS 中,我们可以通过 float 属性来设置元素的浮动方式,通常取值为 left 或 right。

示例:

.float-left {float: left; /* 元素向左浮动 */
}.float-right {float: right; /* 元素向右浮动 */
}.clearfix::after {content: "";display: table;clear: both; /* 清除浮动,确保父元素包裹浮动元素 */
}

2.4 简单练习

我们用一个简单的综合Demo来作CSS的综合练习参考:

/* 选择器练习 */
p {color: blue;
}
h1 {color: green;
}
.class1 {background-color: lightgray;
}
#id1 {font-weight: bold;
}/* 盒子模型 */
.box-model {width: 200px;height: 100px;padding: 20px;border: 5px solid black;margin: 10px;
}/* 浮动练习 */
.float-left {float: left;width: 50%;background-color: lightblue;padding: 10px;
}
.float-right {float: right;width: 50%;background-color: lightcoral;padding: 10px;
}/* 清除浮动 */
.clear {clear: both;
}/* 定位练习 */
.position-relative {position: relative;top: 20px;left: 20px;background-color: lightgreen;padding: 10px;
}
.position-absolute {position: absolute;top: 60px;right: 20px;background-color: lightpink;padding: 10px;
}
.position-fixed {position: fixed;bottom: 0;right: 0;background-color: lightyellow;padding: 10px;
}

对应html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS Practice</title><link rel="stylesheet" href="SelectorAndPositionReview.css">
</head>
<body><h1 id="id1">Hello, World!</h1>
<p class="class1">This is a paragraph with a class.</p><div class="box-model">This is a box model.</div><div class="float-left">Float left content</div>
<div class="float-right">Float right content</div>
<div class="clear"></div><div class="position-relative">Relatively positioned content</div>
<div class="position-absolute">Absolutely positioned content</div>
<div class="position-fixed">Fixed positioned content</div></body>
</html>

3. JavaScript 快速回顾

概念

  • 属于脚本语言,不需要编译,由浏览器解析执行
  • 支持面向对象
  • 弱类型语言,不太重视类型的匹配
  • 安全性强,交互性强
  • 跨平台,有强大的生态系统

3.1 JavaScript 引入方式

与 CSS 类似,Java Script 引入方式分为内联、内部、外部。

内联
内联实际用得较少,通过属性添加,我们了一下即可:

<!-- 内联样式,直接在属性中添加 -->
<input type="button" value="按钮" onclick="alert('Hello JavaScript!')">

内部
通过<script>标签引入

<script>// 浏览器控制台输出console.log("Hello JavaScript!")
</script>

外部
外部引入方式有利于代码结构化、文件级别代码复用。

但需注意:如果是外部引入的Java Script,<script>标签内就不能写其他内容了。

//外部.js文件的内容
console.log("Hello JavaScript");<!--以下是引入方式-->
<script src="fileName.js"></script>

3.2 JavaScript 基本语法

既然是快速回顾基本语法,且我们事先已了解了JS是弱类型语言,因此数据类型、控制流程等此处不赘述,重点要掌握与Java显著不同的语法部分:变量声明、函数声明,以及非常常用的箭头函数。

3.2.1 变量

JS 变量的声明 通常有 隐式声明(不由任何关键字声明)、var 关键字声明、 let 关键字声明、 const 关键字声明 这几种方式。

全局变量
当我们声明变量时不添加任何关键字时,默认为全局变量:

<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Java s cript leanring</title><script>// 定义全局变量x = 1;</script>
</head>

var声明
var 声明的变量比较灵活。当 var 声明的变量在方法内时,该变量的作用域仅为该方法内;当该变量的声明在方法外时,该变量可视为全局变量。 由于 var 过于灵活,不利于作细致的区分,我们现在也用得较少。

<script>var z = 0;function myFunction(){var y = 2;console.log(x);console.log(x+y);console.log(z);}function logz(){console.log(z+1);}myFunction();logz();
</script><script>function writeZ(){document.write(z);}writeZ();
</script>

let声明
用 let 声明的变量作用域在块内,超出该代码块则不可访问。用 let 声明的变量是局部变量。 但值得注意的是,如果我们非要将let声明在代码块外,依然可以视为全局变量,但我们一般不这么用。

<script>let a = "hello";function fun(){let b = "world";console.log(b);}console.log(a);fun();
</script>

const声明
const 关键字声明的是常量,必须在声明时就赋值。常量不可修改。它的作用域特性与let一样,拥有块级作用域。

<script>function example(){const c = "name";console.log(c);// 报错,常量不可修改// c = "1";}example();
</script>

3.2.2 函数与箭头函数

函数的定义方式与调用方式与我们常用的Java高级语言略有不同,作为后端程序猿,刚开始这块还是挺难转变的,需要多练习以适应这种语法转变。

Function声明
使用大写开头的Function:
最不常用,这种方式了解一下即可:

  let f = new Function ("name","age","console.log(name+age)");f("Sharry","20");

直接变量接收声明
直接用一个变量接收方法(函数):

  let f = function (hello,action){console.log(hello+action);}f("您好","请上车");

最常用的声明方式

  function f4(x,y){return x*y;}let result = f4(3,4);console.log(result)

箭头函数
JavaScript中的箭头函数是一种更简洁的函数书写方式,它在ES6(ECMAScript 2015)中被引入。是一种语法糖。

基本形式如下:

(param1, param2, ..., paramN) => {// 函数体
}

如果函数体只有一条语句,并且不需要return关键字,可以省略花括号:

(param1, param2, ..., paramN) => expression

如果只有一个参数,可以省略参数列表的圆括号:

param => expression

如果没有参数,必须包含一对空的圆括号:

() => expression

3.3 简单练习

// 全局变量
var globalVar = "I am a global variable";// 函数定义
function sayHello(name) {console.log("Hello, " + name + "!");
}// 使用var定义的变量
var localVar = "I am a local variable using var";// 使用let定义的变量
let letVar = "I am a local variable using let";// 使用const定义的常量
const constVar = "I am a constant variable";// 箭头函数
const arrowFunction = (param) => {return "You passed: " + param;
};// 练习代码
(function() {// 这个函数内部定义的变量是局部变量,不会污染全局命名空间var innerVar = "I am an inner variable using var";// 使用let和const定义的局部变量let innerLetVar = "I am an inner variable using let";const innerConstVar = "I am an inner constant variable";// 调用函数和箭头函数sayHello("Sharry");console.log(globalVar); // 输出全局变量console.log(localVar); // 输出局部变量console.log(letVar); // 输出let定义的局部变量console.log(constVar); // 输出const定义的常量console.log(arrowFunction("Sharry")); // 输出箭头函数的结果// 尝试修改const变量constVar = "I am trying to change a constant"; // 这将抛出一个错误// 尝试在函数外部访问函数内部的变量console.log(innerVar); // 这将抛出一个错误,因为innerVar在函数外部是不可见的
})();// 尝试在函数外部访问函数内部的let和const变量
console.log(innerLetVar); // 这将抛出一个错误,因为innerLetVar在函数外部是不可见的
console.log(innerConstVar); // 这将抛出一个错误,因为innerConstVar在函数外部是不可见的

4. 总结

本文我们快速回顾了 html + css + javascript 前端基础三件套。由于篇幅有限,我们只挑了部分重点内容来介绍。

html是基础中的基础,当然也比较简单。现在有了框架的加持,我们已经很少直接写html了,但是html的基础结构我们要熟悉;
css是前端项目中页面布局、样式的必需,我们要学会它的使用方式,以及盒子模型、布局等概念。期待经验积累起来,可以灵活运用。
javascript其中与我们常用的高级语言语法不同的部分需要掌握,这也是日后我们用得最频繁的部分。

至于像是 javascript DOM 操作等其它内容,现在有Vue、React等框架,DOM操作一般都由框架隐式操作完成,让我们在一般情况下不必再频繁手动进行DOM操作。因此这些内容日后我们再慢慢了解即可。

参考资料

  • CSDN-HTML参考博文
  • CSDN-CSS参考博文
  • CSDN-JavaScript参考博文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13699.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Tofu AI视频处理模块视频输入配置方法

应用Tofu产品对网络视频进行获取做视频处理时&#xff0c;首先需要配置Tofu产品的硬件连接关系与设备IP地址、视频拉流地址。 步骤1 Tofu设备点对点直连或者通过交换机连接到电脑&#xff0c;电脑IP配置到与Tofu默认IP地址同一个网段。 打开软件 点击右上角系统设置 单击左侧…

地区级的可视化地图不设计,进来看看超炫的样式吧

地区级的可视化地图如果精心设计&#xff0c;能带来超炫的视觉效果。可以运用丰富的色彩来区分不同区域&#xff0c;使地图更加生动鲜明。 采用立体的图形设计&#xff0c;让地形地貌更加直观。添加动态效果&#xff0c;如数据的实时更新流动、热点区域的闪烁等&#xff0c;增…

《AI 使生活更美好》

《AI 使生活更美好》 当我们步入科技腾飞的时代&#xff0c;人工智能&#xff08;AI&#xff09;如同一颗璀璨的新星&#xff0c;照亮了我们生活的每一个角落。它以惊人的速度改变着我们的世界&#xff0c;从医疗到教育&#xff0c;从交通到娱乐&#xff0c;AI 正以前所未有的力…

数据结构 ——— 链式二叉树的销毁(释放)

目录 链式二叉树示意图 手搓一个链式二叉树 代码实现 示意图 手搓一个链式二叉树 代码演示&#xff1a; // 数据类型 typedef int BTDataType;// 二叉树节点的结构 typedef struct BinaryTreeNode {BTDataType data; //每个节点的数据struct BinaryTreeNode* left; //指向…

马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察

一、AI 爆发重塑数据中心格局 随着AI 技术的迅猛发展&#xff0c;尤其是大模型的崛起&#xff0c;其对数据中心产生了极为深远的影响。大模型以其数以亿计甚至更多的参数和对海量数据的处理需求&#xff0c;成为了 AI 发展的核心驱动力之一&#xff0c;同时也为数据中心带来了…

LLM之模型评估:情感评估/EQ评估/幻觉评估等

如果您想知道如何确保 LLM 在您的特定任务上表现出色&#xff0c;本指南适合您&#xff01;它涵盖了评估模型的不同方法、设计您自己的评估的指南以及来自实践经验的技巧和窍门。 Human-like Affective Cognition in Foundation Models&#xff1a;情感认知评估 研究者们提出了…

2024年大语言模型理论与实践报告|附77页PDF文件下载

本文提供完整版报告下载&#xff0c;请查看文后提示。 以下为报告节选&#xff1a; … 文│复旦大学 张奇 本报告共计&#xff1a;77页。 大模型&AI产品经理如何学习 求大家的点赞和收藏&#xff0c;我花2万买的大模型学习资料免费共享给你们&#xff0c;来看看有哪些…

项目总结报告,软件项目工作总结报告,项目总体控制报告,实施总结,运维总结等全资料(Word)

1. 项目进度 1.1. 进度表 1.2. 总结偏差 2. 项目成本 2.1. 项目规模 2.2. 项目工作量 3. 项目质量 3.1. 评审 4. 计划偏差 5. 测试总结 5.1. 缺陷分析 5.2. 测试Bug分布统计 5.3. Bug分布图 5.4. 总结 6. 最佳实践 7. 经验教训 7.1. 项目过程管理 7.2. 合同完成度管理 7.3. 项目…

javaScript运算符

2.3、运算符 运算符也叫操作符&#xff0c;通过运算符可以对一个值或者多个值进行运算&#xff0c;并获取运算结果&#xff0c;常用于实现赋值、比较、执行算数运算符等功能的符号。 比如typeof 就是一个运算符&#xff0c;可以获得一个值的类型,它会将该值的类型以字符串的形…

六通道CAN集线器

六通道CAN集线器 --SG-CanHub-600 功能概述 SG_CanHub_600是一款具有六路通道的工业级智能 CAN数字隔离中继集线器。 SG_CanHub_600能够实现信号再生、延长通信距离、提高总线负载能力、匹配不同速 率 CAN网络&#xff0c;同时强大的 ID过滤功能可以极大降低 CAN总线负荷&a…

5分钟教你利用kimi+美图免费制作高质量、高点击动物冒险动画短片(含完整的操作步骤)

昨天十一点的时候,收到美图创作者通过了。与可灵、即梦等其他AI视频工具不同的是&#xff0c;MOKI专注于AI短片创作这一场景&#xff0c;覆盖动画短片、网文短剧、故事绘本、MV等多个类型的视频内容生产&#xff0c;结合行业需求&#xff0c;有针对性地打造了一套AI短片创作工作…

RocketMQ-01 消费模型和部署模型简介

消息队列的主要作用是对系统进行异步、削峰、解耦等&#xff0c;在日常开发中使用非常广泛。基于市面上几款消息队列&#xff0c;常见有&#xff1a;rabbitmq, activemq, rocketmq, kafka, Pulsar等&#xff0c;各有侧重&#xff0c;技术选型需根据自身系统业务定型。但基于国内…

贪心算法day03(最长递增序列问题)

目录 1.最长递增三元子序列 2.最长连续递增序列 1.最长递增三元子序列 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;我们只需要设置两个数进行比较就好。设a为nums[0]&#xff0c;b 为一个无穷大的数&#xff0c;只要有比a小的数字就赋值…

基于JDBC的书库系统(MySQL)

一、创建数据库中的表 1、需求 有一张表叫javabook【创建表要求使用sql语句进行】 表中列 bookid 整数自增类型 表中列 bprice 小数类型 表中列 bookname 字符串类型 长度不能小于50 工程和包要求&#xff1a; domain dao …

2024 微信支付公钥 JAVA完整代码参考

需要用到的链接&#xff1a; 微信支付公钥使用介绍 - 平台证书 | 微信支付商户文档中心 GitHub - wechatpay-apiv3/wechatpay-java: 微信支付 APIv3 的官方 Java Library 谨记 如果有疑问 多看几遍 wechatpay-java的readme 和 example 创建预支付 Overridepublic ResultBean&…

CondaError: Run ‘conda init‘ before ‘conda activate‘解决办法

已经执行了conda init&#xff0c;但是还是会报错CondaError: Run ‘conda init’ before ‘conda activate’ 原因&#xff1a;权限不够 解决办法&#xff1a;以管理员身份运行cmd&#xff0c;然后进入要操作的文件夹下&#xff0c;重新执行 conda init 和 conda activate 就可…

边缘计算与推理算力:智能时代的加速引擎

在数据量爆炸性增长的今天&#xff0c;边缘计算与推理算力正成为推动智能应用的关键力量。智能家居、自动驾驶、工业4.0等领域正在逐步从传统的云端计算转向边缘计算&#xff0c;而推理算力的加入&#xff0c;为边缘计算提供了更强的数据处理能力和实时决策能力。本文将探讨边缘…

【Python TensorFlow】进阶指南(续篇二)

在前面的文章中&#xff0c;我们详细探讨了TensorFlow在实际应用中的高级功能和技术细节。本篇将继续深入探讨一些前沿话题&#xff0c;包括但不限于分布式训练、混合精度训练、神经架构搜索&#xff08;NAS&#xff09;、模型微调以及在实际项目中的最佳实践等&#xff0c;帮助…

JAVA后端生成图片滑块验证码 springboot+js完整案例

前言 现在大部分网部都是图片滑块验证码&#xff0c;这个得要与后端联动起来才是确保接口安全性 通过我们系统在发送手机短息时都会选进行滑块验证&#xff0c;但是我们要保证发送短息接口的全安&#xff0c;具体路思如下 那么这个滑块的必须是与后端交互才能保证安全性&…

机器学习—高级优化方法

梯度下降是机器学习中广泛应用的优化算法&#xff0c;像线性回归和逻辑回归以及神经网络的早期实现&#xff0c;现在有一些其他的优化算法&#xff0c;为了最小化成本函数&#xff0c;甚至比梯度下降的效果更好&#xff0c;这种算法可以用来帮助训练神经网络&#xff0c;比梯度…