作者小头像 Lv.1
31 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
  • 活跃之星
成长雷达
10
21
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32616 468 0
他的回复:
8.3 ~ 8.9 笔记ID: hw68436052jQuery官网:https://jquery.com宗旨:write less, do more"$"美元符号,表示jQuery的缩写压缩版本适用于上线产品非压缩版本适合调试,一般用于开发过程中在lesson目录下使用命令koa2 jquery创建jquery项目进去jquery目录,安装需要的包cd jqueynpm install安装完脚手架后,使用npm start启动服务将下载的jquery.js拷贝至jquery--public--javascripts目录下打开layout.pug,引入jquery.js文件,为了不影响前端性能,js的引入放到页面底端layout.pugdoctype html html   head     title= title     link(rel='stylesheet', href='/stylesheets/style.css')   body     block content     script(src='/javascripts/jquery-3.2.1.js')     script(src='/javascripts/jq.js')index.pugextends layout block content   华为云在线教育平台当代码运行时,会先弹出alert,并且页面有字符串显示然后替换为classroom假如把引入的js放在头部doctype html html   head     title= title     link(rel='stylesheet', href='/stylesheets/style.css')     script(src='/javascripts/jquery-3.2.1.js')     script(src='/javascripts/jq.js')   body     block content当代码运行时,页面只有弹出框点击确定后,显示字符串,想实现的功能(用classroom代替华为云在线教育平台)没实现原因是,当js文件加载时,html元素被阻塞,js文件找不到html对应标签要使得功能正常实现,我们需要对代码进行改写,意味着当dom准备完成后再执行function中的代码alert("我是jq") $(document).ready(function() {     $("#name").html("classroom") })但是在代码执行过程中,只实现了替换,原始字符串并没有显示$(document).ready(function() {     $("#name").html("classroom") })可以简写为$(function(){     $("#name").html("classroom") })常使用的发送AJAX的方法1、get方法$.get(url,data,callback,type)url是请求的接口地址data是请求的参数callback是请求成功时的回调函数type是请求返回数据的格式除了url,其他三个参数如果没有可以省略注意的地方:请求参数的格式可以是json对象,也可以是字符串返回的数据格式可以是:JSON、HTML、Script、XML、Text等例题:修改jq.js的代码$(document).ready(function() {     $("#name").html("classroom")     $.get('/ajax', function() {         console.log(huawei)     }, 'script') })在app.js中增加代码app.use(async function(ctx) {     if (ctx.path == '/ajax') {         ctx.body = "var huawei ='华为云在线教育'"     } })2、post方法$.post(url,data,callback,type)url是请求的接口地址data是请求的参数callback是请求成功时的回调函数type是请求返回数据的格式除了url,其他三个参数如果没有可以省略注意的地方:post请求发出去的时候请求参数参数放在请求体中3、ajax方法ajax方法语法格式$.ajax(option)option是JSON格式的配置参数,用于设置ajax请求常用配置url:发送请求的地址type:请求方式(get or post等)data:请求参数dataType:返回的数据类型(json、html、xml等)success:请求成功后的回调函数error:请求失败后的回调函数complete:请求完成后的回调函数(不论成功与否都会执行)布尔类型的配置async:是否为异步请求cache:是否进行缓存(主要针对get请求)容易被忽视的配置项timeout:请求超时时间(毫秒)使用ajax方法实现上节的get方法修改jq.js代码$(document).ready(function() {     $("#name").html("classroom")     // $.get('/ajax', function() {     //     console.log(huawei)     // }, 'script')     $.ajax({         url: '/ajax',         dataType: 'script',         success: function() {             console.log(huawei)         }     }) })登录页面案例1、在lesson目录下,输入koa2 login创建项目login2、cd login,使用npm install安装相应的npm包          //可以简写为npm i启动项目npm start编辑首页index.pugextends layout block content   h1 登录华为账号   div 华为账号:     input(type='text' id='account')   div 账号密码:     input(type='password' id='pwd')   button(type='button' id='btn') 登录在public--javascripts目录下建立login.js文件,写入项目逻辑在layout.pug中引入js文件doctype html html   head     title= title     link(rel='stylesheet', href='/stylesheets/style.css')   body     block content     script(src='/javascripts/login.js')login.jsvar btn = document.getElementById("btn"); var account = ''; var pwd = ''; btn.onclick = function() {     account = document.getElementById('account').value;     pwd = document.getElementById('pwd').value     ajax({         type: 'post',         url: '/login',         data: {             account: account,             pwd: pwd         },         success: function(data) { //回调函数,登录成功后将服务器返回的数据弹出             alert(data)         }     }) } function ajax(opt) {     var defaultParam = {         type: 'get',         url: '#',         data: {},         async: true,         success: function() {}     }     for (var key in opt) {         defaultParam[key] = opt[key];     }     //四步走     var xhr = null;     if (window.XMLHttpRequest) {         xhr = new XMLHttpRequest     } else {         xhr = new ActiveXObject('Microsoft.XMLHTTP')     }     var paramStr = "";     for (var k in defaultParam.data) {         paramStr += k + '=' + defaultParam.data[k] + '&';     }     paramStr = paramStr.substr(0, paramStr.length - 1)     if (defaultParam.type == 'get') {         xhr.open(defaultParam.type, defaultParam.url + '?' + paramStr, defaultParam.async);         xhr.send()     } else {         xhr.open(defaultParam.type, defaultParam.url, defaultParam.async);         xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');         xhr.send(paramStr)     }     xhr.onreadystatechange = function() {         if (xhr.readyState == 4) {             if (xhr.status == 200) {                 defaultParam.success(xhr.responseText);             }         }     } }最后在服务器端app.js添加代码//接口请求 app.use(async function(ctx) {     if (ctx.path == '/login') {         if (ctx.request.body.account == 'zhang' && ctx.request.body.pwd == '123') {             ctx.body = '登录成功!'         } else {             ctx.body = '登录失败!'         }     } })
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32616 468 0
他的回复:
ID: hw68436052AJAX 1~3 章AJAX:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX不是新的编程语言,而是一种使用现有标准的新方法。AJAX最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。AJAX 是一种用于创建快速**页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。AJAX是基于现有的Internet标准AJAX是基于现有的Internet标准,并且联合使用它们:XMLHttpRequest 对象 (异步的与服务器交换数据)JavaScript/DOM (信息显示/交互)CSS (给数据定义样式)XML (作为转换数据的格式)AJAX应用程序与浏览器和平台无关的OSI模型(开放式系统互联通信参考模型)一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。OSI将计算机网络体系结构(architecture)划分为以下七层:物理层: 将数据转换为可通过物理介质传送的电子信号数据链路层: 决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址网络层: 使用权数据路由经过大型网络传输层: 提供终端到终端的可靠连接会话层: 允许用户使用简单易记的名称建立连接表示层: 协商数据交换格式应用层: 用户的应用程序和网络之间的接口。HTTP协议HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)在浏览器地址栏键入URL,按下回车之后会经历以下流程:浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;释放 TCP连接;浏览器将该 html 文本并显示内容;  HTTP请求方法请求方式: get与post请求(通过form表单我们自己写写看)GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲) POST方法是把提交的数据放在HTTP包的请求体中.GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.GET与POST请求在服务端获取请求数据方式不同,就是我们自己在服务端取请求数据的时候的方式不同了HTTP状态码所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型:1xx消息——请求已被服务器接收,继续处理2xx成功——请求已成功被服务器接收、理解、并接受3xx重定向——需要后续操作才能完成这一请求4xx请求错误——请求含有词法错误或者无法被执行5xx服务器错误——服务器在处理某个正确请求时发生错误Node.jsNode.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。npm -v,node -v可以查看版本号,判断是否安装成功cnpm install koa-generator -g :可以利用脚手架 koa-generato 来生成项目npm start :可以用来启动koa项目,在不修改默认配置的情况下,可以输入网址http://localhost:3000/ 来访启动的新建的koa项目揭秘AJAXsynchronous(简称sync)代表同步asynchronous(简称async)代表异步XMLHttpRequest简称:XHR方法:open初始化请求参数send发送请求setRequestHeader Content-type属性:onreadystatechangreadyStatestatus200-正常response TextXMLHttpRequest的使用创建XMLHttpRequest使用open方法,初始化参数使用send方法,发送请求使用onreadystatechang属性,接送返回数据var xhr = new XMLHttpRequest(); // 请求方法,请求地址,是否异步 // true:异步,false:同步 xhr.open('get','/ajax',true) // 如果使用get方法send()不需要参数,参数放到URL地址上,使用post方法需要添加参数 xhr.send() xhr.onreadystatechange = function() { }var btn = document.getElementById('btn'); btn.onclick = function() {     // alert('onclick')     var xhr = new XMLHttpRequest();     if(window.XMLHttpRequest){         xhr = new XMLHttpRequest();     }else if(window.ActiveXObject){         xhr = new ActiveXObject('Microsoft.XMLHTTP');     }     xhr.open('get','/ajax',true) // 当请求为方式post设置setRequestHeader     xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');     xhr.send()     xhr.onreadystatechange = function() {         if(this.readyState ==4){             if(xhr.status == 200){                 console.log(xhr.responseText);             }         }     }跨域请求同源策略浏览器的安全策略协议名 + 主机名 + 端口号跨域请求跨域方法:JSONP、Proxy、iframe、CORS天然可以跨域的标签:script(img、link)
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32616 468 0
他的回复:
ID: hw684360527.20~7.26[第五章笔记]1、arguments    在不确定有多少个参数传递的时候,可以使用arguments进行获取,arguments实际上是当前函数的一个内置对象。所有函数都内置了一个arguments对象,argument对象中存储了传递的所有实参。arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:(1)具有length属性;(2)按索引方式储存数据(3)不具有数组的push,pop等方法注意:只有函数才有arguments对象,而且是每个函数都内置好了这个arguments。2、函数两种声明方式利用关键字自定义函数(命名函数)        function fn(){};        fn();函数表达式的形式:var 变量名=function(){};(匿名函数)        var fun = function(){            console.log("我是函数表达式");        }        fun();3、JS作用域js的作用域(es6)之前:全局作用域,局部作用域全局作用域:整个script标签,或者是一个单独js文件局部作用域:在函数内部就是局部作用域,这个代码的名字只在函数内部起效果和作用变量作用域:根据作用域不同,分为:全局变量和局部变量全局变量:在全局作用域下的变量局部变量:在局部作用域下的变量(例如在函数内部使用的变量就是局部变量)注意:如果在函数内部,没有声明,直接赋值的变量也是全局变量从执行效率来看全局变量和局部变量全局变量只有在浏览器关闭的时候才会被销毁,比较占内存资源局部变量是当我们程序执行完毕就会销毁,比较节约内存资源注意:js在es6的时候新增块级作用域,块级作用域即为:{}4、JS作用域链根据在内部函数可以访问外部函数变量的机制,用链式查找决定哪些数据能被内部函数访问,就称为作用域链作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称为作用域链(就近原则)5、JS预解析js引擎运行js分为两步:预解析,代码执行预解析js引擎会把js里面所有的var还有function提升到当前作用域的最前面代码执行 按照代码书写顺序从上往下执行6、JS对象创建对象利用对象字面量创建对象{} 例如:var obj = {};创建了一个空对象(1)里面的属性或方法采用键值对的形式:键,属性名:值,属性值(2)多个属性或者方法中间用逗号隔开(3)方法冒号后面跟的是一个匿名函数7、new关键字new在执行时会做四件事:在内存中创建一个新的空对象。让this指向这个新的对象。执行构造函数里面的代码,给这个新对象添加属性和方法。返回这个新对象(所以构造函数里面不需要return)8、遍历对象属性for...in 语句用于对数组或者对象的属性进行循环操作。【第六章笔记】1、对象类型(1)自定义对象 ECMAScript(2)内置对象  ECMAScript(3)浏览器对象 JS独有2、Math对象Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。Math 用于 Number 类型。它不支持 BigInt。Math.floor()往下取整,往小了取值;Math.ceil()往上取整,往大了取值;Math.round()四舍五入,其他数字都是四舍五入,但是.5特殊,它往大了取;Math.random()随机返回一个小数,取值为[0,1);3、Date 对象Date 对象用于处理日期和时间。--Date相关算法--// 自定义带参数的随机整数方法,返回[min, max]之间的随机整数function getRandom(min, max) {    return Math.floor(Math.random() * (max - min + 1)) + min;}// 自定义带参数的随机整数方法,返回[min, max)之间的随机整数function getRandom(min, max) {    return Math.floor(Math.random() * (max - min)) + min;}var date = new Date();date.getFullYear();date.getMonth(); // month从0开始date.getDate(); date.getDay(); // 星期,起始周日为0date.getHours(); // 24小时制date.getMinutes();date.getSeconds();4、检测数组instanceofArray.isArray(参数)5、添加删除数组元素push():在数组的末尾添加一个或多个数组元素,完毕后返回的结果是新数组的长度unshift():在数组的开头添加一个或多个数组元素,完毕后返回的结果是新数组的长度pop():可以删除数组的最后一个元素,一次只能删除一个元素,完毕后返回的结果是删除的那个元素shift():可以删除数组的第一个元素,一次只能删除一个元素,完毕后返回的结果是删除的那个元素6. 简单数据类型和复杂数据类型简单数据类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型值类型:在存储时变量中存储的是值本身:string number Boolean undefined null,但是null比较特殊,返回的是一个对象//简单数据类型null返回的是一个空的对象var timer = null;console.log(typeof timer);//object//如果有个对象我们打算以后存储为对象,暂时没有想好放啥,这个时候就给null引用类型:在存储时,变量中存储的仅仅是地址,因此叫做引用数据类型。通过new创建的对象都叫做复杂数据类型Object Array Date等7、 堆和栈堆栈空间分配区别栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。简单数据类型存放到栈里面。堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,如程序员不释放,由垃圾回收机制回收,复杂数据类型存放到栈里面。
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32616 468 0
他的回复:
ID: hw68436052第二阶段-第一章内容:数据类型数据类型:基本数据类型(值类型)1.Number:用于任何类型的数字:整数或浮点数2.String:用于字符串:一个字符串可以包含一个或多个字符串3.Boolean:用于true和false4.null:用于未知的值5 undefined:未定义6.Symbol:唯一的标识符7.BigInt:用于任意长度的整数引用类型普通对象数组对象正则对象Date对象Object:用于更复杂的数据结构"JavaScript中有八种基本的数据类型(前七种为基本的数据类型也称原始类型)而Object为复杂数据类型"type操作符console.log(typeof aaa);//undefined,这个变量没有定义但是不会报错,aaa此时是变量console.log(typeof 1.1);//number数字型console.log(typeof '1');//string 字符型console.log(typeof true);// 布尔类型 booleanconsole.log(typeof {});//object 是一个对象console.log(typeof function(){});// function 是一个方法,也是属于object类型的js里万物皆对象console.log(typeof null);//object(1) null 是一个空指针console.log(typeof Symbol("id"));//symboltypeof null 的结果是object这其实是不对的,官方也承认了这是运算符的问题,现在只是为了兼容性留了下来。是javascript语言的一个错误**NumberJavaScript 中的变量可以保存任何数据。变量在前一刻可以是个字符串,下一刻就可以变成 number类型://没有错误let message = 'hello';message = 1234;允许这种操作的编程语言称为动态类型的编程语言。JavaScript中有八种基本的数据类型。Number类型let n = 123;n = 12.45;number类型代表整数和浮点数。八进制 0~7 程序里面数字前面加0 表示八进制let num = 011;console.log(num); //转为十进制就是9十六进制 0-9 a-f 数字前面加0x表示十六进制let num1 = 0x9;console.log(num);数字型最大值:console.log(Number.MAX_VALUE);//1.7976931348623157e+308数字型最小值:console.log(Number.MIN_VALUE);//5e-324数字可以有很多操作,比如。+ - * / % 等等。除了常规数字,还有特殊数值 也属于这种类型 :Infinity、-Infinity 和 NaN。Infinity无穷大 ∞。 大于任何值我们可以通过除以 0来得到它:alert(1 / 0); //InfinityisNaN()这个方法用来判断非数字 并且返回一个值,如果是数字返回的是false,如果不是数字返回的是trueconsole.log(isNaN(25));//falseconsole.log(isNaN("呵呵"));//trueisNaN检测当前值是否是有效数字,返回true代表不是有效数字,返回false是有效数字isNaN(12)===falseisNaN('1')===falseisNaN(true)===falseisNaN(false)===falseisNaN(null)===falseisNaN(undefined)===trueisNaN({name:9})===trueisNaN([11,12])===trueisNaN([12])===falseisNaN检测的机制首先验证当前要检测的值是否为number类型的,如果不是,浏览器会默认的把值转换为数字类型把非数字类型转换为数字其它基本类型转换为数字,直接使用Number这个方法转换的,如果当前字符串中出现任意一个非有效数字结果则为NaN当检测的值已经是数字类型,是有效数字返回false,不是返回trueNAN的比较NaN == NaN:false NaN和谁都不相等检测是否为有效数字if(isNaN(num)){     // 检测是否为有效数字}BigInt 类型在JavaScript中 " number"类型无法代表大于 253 (或者小于-253)的整数。通过n附加到整数字段的末尾来创建BigIntconst bigInt = 12312312312231231313131313n;兼容性问题目前 Firebox和 Chrome 已经支持 BigInt了,但 Safari/IE/Edge 还没有。String类型JavaScript中的字符必须被括在引号里。let str = '哈哈';let str1 = "你猜"let phease = `can embed ${str}`;转义符\开头 常用的转义符:\n 换行\ 斜杠\\' 单引号\" 双引号\t tab缩进\b 空格案例:  alert('锄禾日当午\n"汗滴和下土"');字符串长度通过字符length属性可以获取整个字符串长度let str = 'This is a cat';console.log(str.length);//13字符串拼接多个字符串之间可以使用 + 进行拼接 可以加任何类型的。  let name= 'vue';   console.log(name+'真棒!')//vue真棒!   console.log('12'+24);//1224   console.log(12+24);//36新增属性:反引号是 功能扩展引号。他们允许我们通过变量和表达式包装在${...}中,来将它们嵌入到字符串中。例如:let name = "json";//嵌入一个变量alert(`helo,${name}!`);//helo,json!${...}内的表达式 会被计算,计算结果会成为字符串的一部分。可以再${...}内放置任何东西:名为name的变量,或者1 +1的算数表达式。需要注意的是,这仅仅在反引号内有效,其它引号不允许这种嵌入。alert("the result is ${ 1 + 1 }");//使用双引号不会计算 ${...}Boolean类型(逻辑类型)boolean 类型仅包含两个值:true 和 false通常用于存储 yes或 no的值:true|yes,false | nolet num = 5 > 6;console.log(num); // falsenull 值特殊的 null值不属于上述任何一种类型。它构成一个独立的类型,只包含 null 值let age = null;null 仅仅代表一个无、空或值未知的特殊值undefined特殊值 undefined 和 null一样自成类型。undefined的含义是未被赋值。如果一个变量已被声明,那么它的值就是 undefined:let x;alert(x);// 弹出undefinedobject 类型 和 symbol 类型object 类型是一个特殊类型。其它所有的数据类型都被称为原生类型,因为他们的值只包含一个单独的内容(字符串、数字或者其它)。symbol类型用于创建对象的唯一标识符。typeof运算符typeof 运算符返回参数的类型。当我们想要分别处理不同类型值得时候,或者想快速进行数据类型检验时,非常有用。它支持两种语法形式:1.作为运算符:typeof x2.函数形式:typeof(x)对 typeof x 的调用会以字符串的形式返回数据类型:typeof undefined // "undefined"typeof true // "boolean"typeof alert //"function"typeof "foo" //"string"typeof Symbol("id") // "symbol"typeof 0 // "number"typeof null //"object"总结JavaScript 中有八种基本的数据类型 (前七种为基本数据类型,也称原始类型,而object为复杂数据类型)。number 用于任何类型的数字:整数或浮点数,在 ±253范围内的整数。bigint 用于任意长度的整数。string 用于字符串:一个字符串可以包含一个或多个字符。Boolean用于 true和 false。null 用于未知的值。undefined 用于未定义的值。symbol唯一的表示符。object 更复杂的数据类型。第二章运算符重点1:前置递增和后置递增前置递增:++n先自增,后赋值后置递增:n++先赋值,后自增重点2:逻辑中断【当数值或表达式参与逻辑运算时】&&(与运算)短路逻辑:语法:表达式1 && 表达式2;如果第一个表达式的值为真,则返回表达式2如果第一个表达式的值为假,则返回表达式1执行逻辑:当表达式1为真的时候,继续执行表达式2,此时无论表达式2是真还是假都会返回表达式2的结果(因为此时表达式2为真时&&运算的结果为“真&&真”直接返回表达式2的结果。若表达式2为假时&&运算的结果为“真&&假”应该返回“假”。所以当表达式1为真时程序不会中断,会继续执行表达式2!!!)当表达式1为假的时候,由于&&运算只要有一个为假即结果为假,所以此时无需判断表达式2的真伪,直接返回表达式1。所以当表达式1为假时,程序会中断表达式2的执行!!!||(或运算)短路逻辑:语法:表达式1 || 表达式2;如果第一个表达式的值为真,则返回表达式1如果第一个表达式的值为假,则返回表达式2执行逻辑:当表达式1为真的时候,由于||运算只要有一个真即结果为真,所以此时无需判断表达式2的真伪,直接返回表达式1,此时程序会中断表达式2的执行!!!当表达式1为假的时候,程序会继续判断表达式2的真伪,并且无论表达式2是真还是假都会直接返回表达式2。(因为此时表达式2为真时,||运算结果为“假||真”应该返回表达式2;若表达式2为假,||运算结果为”假||假“也会返回表达式2。但是此种情况并不会中断表达式2的执行,当表达式1为假的时候表达式2是会继续执行的!!!)重点3:三元运算符:“? :”语法:条件表达式? 表达式1 : 表达式2如果条件表达式为真,则返回表达式1的值,否则返回表达式2的值。例:var num = 10;var result = num > 5 ? 'yes' : 'no'; //'yes'重点4:switch语句语法结构:switch(表达式) {case value1:执行语句1;break;case value2:执行语句2;break;...default:执行最后的语句;}注意事项:1、表达式的值和case的值必须是全等(===)关系才能匹配成功。2、当case匹配条件后没有break打断语句时,程序执行完对应的执行语句后会继续执行下一条case语句。第三章 循环1、循环的目的    减少需要重复执行的代码,解决实际问题中有规律性的重复操作是循环存在的目的,在js中,主要有三种类型的循环语句:    for循环    while循环    do...while循环2、for循环语法结构    在程序中,一组被重复执行的语句被称之为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称之为循环语句        for循环执行过程        1)首先执行里面的计数器变量 var i = 1 但这句话在for 里面只执行一次         2)当i = 100 来判断是否满足条件,如果满足条件 就去执行循环体 不满足条件退出循环        3)最后去执行 i++ 更新 变量i(递增) 第一轮结束        4)接着去执行 i = 100 如果满足条件 就去执行循环体 不满足条件退出循环 第二轮 直至循环完全结束    断点调试        是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程吕可以看到各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下        断点调试可以帮我们观察程序的运行过程        浏览器中按F12 --> source --> 找到需要调试的文件 --> 在程序的某一行设置断点        WAtch:览视,通过watch可以监视变量的值的变化,非常的常用        F11:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化        代码调试的能力非常重要,只有学会了代码调试,才能学会自己解决bug的能力。初学者不要觉得调试代码麻烦就不去调试,知识点花点功夫肯定学的会,但是代码调试这个东西,自己不去练,永远都学不会        要求记住调试的这几个按钮的作用即可,后面还会学到很多的代码调试技巧    for循环重复执行相同代码        for循环重复执行不同代码        for循环重复某些操作        for 循环因为有了计数器的存在,我们还可以重复的执行某些操作,比如做一些算术运算        for循环案例            双重for循环        很多情况下,单层for循环并不能满足我们的需求,比如我们要打印一个5行5列的图形、打印一个倒直角三角形等,此时就可以通过循环嵌套来实现        for循环小结        1)for循环可以重复执行某些相同代码        2)for循环可以重复执行些许不同的代码,因为我们有计数器        3)for循环可以重复执行某些操作,比如算术运算符加法操作        4)随着需求增加,双重for循不可以做更多、更好看的效果        5)双重for循环,外层循环一次,内层for循环全部执行        6)for循环是循环条件和数字直接相关的循环        7)分析要比写代码更重要        8)一些核心算法想不到,但是要学会,分析它执行过程        9)举一反三,自己经常总结,做一些相似的案例
发布时间 2020/06/05 11:45:07 最后回复 @Wu 2020/07/05 23:55:07 版块 社区活动
55722 487 2
他的回复:
ID: hw68436052CSS浮动指将元素脱离文档流向左或者向右布局使用float属性来设置元素的浮动默认值为none,也就是不浮动;还可以设置left向左浮动;right向右浮动浮动的特点一旦对元素设置浮动后,不论之前元素是内联元素还是块级元素,都会被当作块级元素处理一旦对元素设置浮动后,该元素便会脱离标准流,会造成其父元素的内容塌陷清除浮动为什么要清除浮动:元素设置为浮动时引起父元素内容塌陷,影响布局效果clear属性用于设置元素哪一侧不允许浮动默认值为none,表示不进行控制当设置为left时,表示左侧不允许浮动当设置为right时,表示右侧不允许浮动当设置为both时,表示两侧都不允许浮动overflow属性:用于设置元素不够容纳内容时的显示方式默认值为visible当值为auto时,自动添加滚动条当值为hidden时,会用匿藏掉超出的内容当值为scroll时,会一直显示滚动条常用技巧企业级应用中清除浮动的最佳方法clearfix方案使用伪元素after在父元素尾部添加一个元素对这个添加的伪元素应用清除浮动的样式必备三大样式:content、clear、display可选三大样式:height、font-size、visibility(可见不可见) 又又飞翼布局1、如何实现一个三列布局实现一个左中右布局;左右两侧宽度固定;中间内容区宽度能够自适应2、又又飞翼布局第一步:使用float属性让左中右三列浮动第二步:使用负margin属性让左右两列处于同一水平线上第三部:在中间列中添加一个div内容元素,设置margin值为左右两列的宽度最后,别忘了清除浮动,让父元素高度正常显示优点中间内容列宽度自适应中间内容区域先加载使用浮动布局巧妙使用负margin属性保持三列水平方法简单直接,浏览器兼容性好  CSS定位定位属性定位属性用于设置元素在页面中的位置使用position属性来表示定位它的值可以设置为:static、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)默认值为:static,表示标准流布局定位位置在使用定位属性定位元素位置的时候,可以指定上下左右四个属性来控制元素的位置top用于设置元素定位时距离上部的偏移距离bottom用于设置元素定位时距离下部的偏移距离left用于设置元素定位时距离左侧的偏移距离right用于设置元素定位时距离右侧的偏移距离需要注意的是,偏移量可以为负值层级可以使用属性z-index设置定位元素的层级,值越大,显示时越是覆盖在其他元素的上边z-index属性默认值为auto,代表层级与父元素相同该元素只在position值为absolute时有效相对定位relative指元素相对于标准文档流中的默认位置来进行定位的当position属性值设置为relative时,开启相对定位模式相对定位并不会让元素脱离标准流相对定位不会影响到周围其他元素的排布实际使用时,相对定位一般都是和位置属性一起使用绝对定位absolute相对于除static定位之外的第一个父元素进行定位,如果没有就相对于页面定位把position属性值设置为absolute开启绝对定位模式被设置为绝对定位的元素会脱离标准流当多个绝对定位元素出现相互遮盖的情况时,可以使用z-index属性设置层级
发布时间 2020/06/05 11:45:07 最后回复 @Wu 2020/07/05 23:55:07 版块 社区活动
55722 487 2
他的回复:
ID: hw68436052CSS第三章 CSS常用属性字体使用font-family属性来定义文字的字体属性值为字体的名称,可以设置多个字体名称,浏览器会按照顺序使用它第一个支持的字体英文字体主要两种,分为衬线字体(serif)和非衬线字体(sans-serif)分为衬线字体(serif): 从显示形状来说比较花哨,在字体的边缘有一些修饰的效果,主要是用于标题的显示非衬线字体(sans-serif):相对来说比较圆润,在显示上没有太花哨的修饰,主要是用于正文。等宽字体:这种字体每一个字符宽度都是相等的。如monospace衬线字体常用的是宋体,非衬线字体常用的是黑体。微软的windos平台常用的字体是微软雅黑。苹果mac系统常用的字体是PingFang SC(苹果操作系统的默认字体)是一种非衬线字体字体能否显示取决于本地电脑是否安装了此种字体。字体优先级列表字体尺寸使用font-size属性来定义文字的尺寸属性值为长度值,例如:30px(字体区域的高度,不是字体本身能看到的大小。能看到的大小相对小一些),也可以使用百分比,例如:50%。这个百分比是相对于它的父容器/父元素定义出来的。字体样式使用font-style属性设置文字为斜体默认属性值为normal显示标准效果当属性值为italic时显示倾斜效果,向右侧倾斜字体粗细使用font-weight属性设置文字的粗细默认值为normal,相当于400,显示效果为正常粗细当属性值为bold时,相当于700,显示为粗体当属性值为bolder时,显示更粗当属性值为lighter时,显示更细也可设置属性值为一个具体数值 100/200/300/400/500/600/700/800/900(只能设置这几个具体属性值)简写属性使用font属性来定义所有文字的样式,是一个大集合的属性。里面的某一个值可以省略。如果省略,就使用默认的样式。各个属性值用空格分隔设置字体大小是可以添加行高 如30px/50px(50px为行高)font = font-family + font-size + font-style + font-weight例如:p{font: monospace 50px bold italic}           字体                .text1{           /*衬线字体           font-family: serif;*/           /*非衬线字体           font-family: sans-serif;*/           /*等宽字体*/          /* font-family: monospace; */          /* font-size: 30px; */          /* font-style: italic; */          /* font-weight: 100; */          font: italic 30px/50px bold serif;/*50px行高*/         dhgfgjfkgjkfgldljggj   华为云在线教育解决方案文本1、颜色使用color属性来设置文本的颜色 属性值可以是颜色名,十六进制颜色值,RGB颜色值 如color: red; color:#ff0000; color: rgb(192, 0 ,0) 2、行高使用line-height属性来设置文本行高键入lh显示属性默认值为:normal其他属性值为长度值,百分比3、对其方式使用text-alian属性来设置文本的对齐方式属性值有:left(左)、right(右)、center(中)方向使用direction属性设置文本的方向属性值有:ltr(左)、rtl(右)注意与对齐方式属性的区别缩进使用text-indent属性设置段落的首行缩进默认值为0, 其它属性值有:长度值、百分比6、装饰线使用text-decoration属性设置文本的装饰线属性值有:underline(下划线)、overline(上划线)、line-through(中划线)默认值为none,表示没有线7间隔使用letter-spacing属性设置文本字符间隔的大小属性值为长度值,可为负值(文字有可能会重叠)8、阴影使用text-shadow属性来设置文本的阴影属性值为:X轴偏移量+Y轴偏移量+模糊距离+颜色例如:text-shadow: 10px 10px 5px gray   文本            .text{            color:rgb(192, 0 , 0);            line-height: 50px;            /* font-size: 50px; */            /* text-align: right; */            direction: ltr;            text-indent: 2em;            text-decoration: underline;            letter-spacing: 10px;            text-shadow: 5px 5px 3px yellow;        }       默认属性值为normal显示标准效果   当属性值为italic时显示倾斜效果,向右侧倾斜CSS中的文本属性主要是用来修饰HTML文档中的文本的。使用这些属性之后,可以给文本增加漂亮的样式。尺寸div默认占满一行,高度随内容。1、宽度和高度使用width属性定义宽度使用height属性定义高度属性值为:auto、长度、百分比2、最小宽度和最小高度使用min-width属性定义最小宽度使用min-height属性定义最小高度3、最大宽度和最大高度使用max-width属性定义最大宽度使用max-height属性定义最大高度   尺寸          .text{            background: yellow;            /* width: 200px; */            min-width: 100px;            height: 500px;            min-height: 100px;            max-width: 500px;            max-height: 200px;       }      华为云宽度和高度作为CSS的尺寸属性,使用很普遍列表1、list-style-image用于指定一个图片作为列表项前面的标记默认值为none可以设置一个图片的url作为标记图片2、list-style-position用于设置在什么位置显示列表项前面的标记默认值为outside还可以设置为inside3、list-style-type用于设置列表项前面图标的类型默认值为disc,其它值:circle、square、decimal、none、lower-alpha、upper-alphalist-style这是一个简写属性list-style=list-style-image + list-style-position + list-style-typeul可通过list-style-type属性变成有序 list-style-type: decimal;其属性值可以省略几项例如:ul{list-style: decimal inside} 列表样式                    .list1{                    list-style-image: url(1.jpg);                    list-style-position: inside;                    list-style-type: square;            }            .list2{                list-style-type: square;            }            .list3{                list-style-type: decimal;            }            .list{                list-style: inside lower-alpha;            }                  华为手机       华为笔记本       华为电视             华为手机       华为笔记本       华为电视             华为手机       华为笔记本       华为电视             华为手机       华为笔记本       华为电视             华为手机       华为笔记本       华为电视             华为手机       华为笔记本       华为电视   背景1、background-color用来设置元素的背景颜色默认值为:transparent3种方法直接设置颜色:颜色名,十六进制颜色、rgb函数颜色名: red十六进制颜色: #ff0000rgb函数:rgb(255, 0, 0)2、background-image通用来设置元素的背景图片默认值为:none还可以设置一个图片的url地址,用来作为背景图片3、background-repeat主要用来配合background-image属性一起使用,用来设置背景图片的平铺方式默认值为:repeat, 还可以设置为沿X轴平铺(repeat-x)、沿Y轴平铺(repeat-y)、不平铺(no-repeat)4、background-position也是用来配合background-image属性一起使用,用来设置背景图片的起始点位置标默认为左上角零点位置位置参数:X轴方向left、center、right; Y轴方向top、center、bottom百分比:x轴位置x%, y轴位置y%长度:X轴离远点长度,Y轴离远点长度5、background-attachment用于设置背景图片固定或者跟随页面滚动默认值:scroll还可以设置为fixed6、background简写属性background=background-color + background-image + background-repeat + background-position + background-attachment可以全部设置,也可以省略其中几项   列表样式                    .bak{                height: 1000px;                /* background-color: rgb(255, 0, 0); */                background-repeat: no-repeat;                background-position: 100px 100px;                background-attachment: scroll; */                background: url();            }                CSS 第四章 CSS盒模型CSS中非常重要的盒模型。1、什么叫盒模型盒模型,英文叫做Box Model所有的HTML元素都可以看做一个盒子模型我们可以把盒模型就想象成为一个盒子盒模型中主要用来对HTML元素进行布局时使用2、盒模型的作用浏览器在渲染页面的时候就会根据CSS盒模型的规则,将所有的HTML元素表示未一个个的矩形盒子,之后CSS的相关属性就作用在这些盒子上,决定了盒子的大小位置和属性等,最终显示出来3、盒模型的构成一个盒模型是由4大部分所组成的。元素内容(content)、内边距(padding)、边框(border)、外边距(margin)例如:.box{padding: 20px; border: 5px solid#000000; margin: 50px;}我是一个无情的div元素   盒模型            .box {            padding: 50px;            border: 1px solid red;            margin: 50px;        }       华为云1、什么是内边距内边距是指在HTML元素内容和边框之间的区域使用CSS属性padding来表示属性值为长度值或百分比,默认值是0注意取长度值时不能为负值百分比值相当于父元素的长度比例2、内边距的各个小属性使用padding-top定义上内边距使用padding-right定义右内边距使用padding-bottom定义下内边距使用padding-left定义左内边距padding为简写属性内边距例如.box1{padding: 20px;}.box2{padding-top: 50px;}.box3{padding-right:10%;} 内边距            .box {            /* padding-top: 10px;            padding-right: 20px;            padding-bottom: 30px;            padding-left: 40px; */            /* padding: 10px 20px 30px 40px; */            /* padding: 50px; */            /* padding: 50px 20px; */            /* padding: 50px 20px 10px; */            padding: 50px 20px 10px 20px;            border: 1px solid red;           }       华为云教育边框围绕元素内容和内边距的一条边线使用属性border代表边框我们可以使用边框属性精确控制这条线的样式、宽度、颜色2、边框样式使用border-style设置边框的样式属性还可以分别设置上下左右四条边框的样式属性默认值为none,表示无边框还可以设置多种样式,分别为dotted、dashed、solid、double、groove、ridge、inset、outset等3、边框宽度使用border-width设置边框的宽度属性和边框样式一样,还可分别设置上下左右四条边框的宽度使用3种标准边框:thin、medium、thick使用长度值作为宽度属性的属性值4、边框颜色使用border-color设置边框的颜色还可以分别设置上下左右四条边框的颜色和背景颜色属性一样,可以直接设置颜色名,十六进制颜色值或rgb函数值5、复合属性复合是指一次使用多种样式定义边框可以使用border-top、border-right、border-bottom、border-left分别定义四条边框的所有属性,属性值时样式、宽度和颜色,其中宽度和颜色可以省略还可以直接使用border属性一次性对四条边框同时设置,属性值同样是样式、宽度和颜色,其中宽度和颜色可以省略。外边距1、什么是外边距外边距是指元素边框之外的区域设置外边距会在元素外围创建额外的空白空间外边距的作用是控制元素和元素之间的距离使用margin属性来设置外边距还可以使用margin-top、margin-bottom、margin-left、margin-right分别控制元素不同方向的边距属性值可以是长度值或者百分比,如果为长度值,不能为负值当时使用margin简写属性时,取值的含义与padding相同2、居中显示margin有一个很常用的特殊用法,margin左右属性值为auto时,可以设置元素左右居中显示。margin-left:auto 左边距最大margin-right:auto 右边距最大margin:auto 元素居中显示。margin外边距特性:作用在两个div元素(块级元素)相加的时候,距离取决于最大外边距的元素的外边距。有一个重叠的过程。作用在两个span元素(内联元素)相加的时候,距离为margin加和。没有重叠的过程。 外边距            .box {                border: 1px solid black;                margin-top: 50px;                margin-left: 20px;                margin-right: 100px;                margin-bottom: 10px;                margin: 10px 20px 30px 40px;                margin: 50px;                margin: 20px 50px;                margin: 10px 20px 100px;                /* margin: 50px auto; */                width: 200px;                margin-left: auto;                margin-right: auto;        }        .box1 {            border: 1px solid #000000;            margin: 20px;        }        .box2 {            border: 1px solid #00ff00;            margin: 40px;        }            职业认证    微认证块级元素元素高度取决于内容的高度,宽度取决于它的父元素。默认为父元素宽度。内联元素元素高度取决于内容的高度,宽度取决于内容的宽度。只有块级元素设置宽高才能生效,对于内联元素设置宽高是没有用处的。宽高取决于内容display属性1、神奇的display属性display能改变元素本身的布局特性。display属性用于控制元素如何显示当属性值为block时,会将元素以块级元素的方式显示。当属性值为inline时,会将元素以内联元素的方式显示当属性值为inline-block时,会将元素以内联块级元素的方式显示,会同时具有这两个显示特性当属性值为none时,元素将会被隐藏。还是存在的。例如.box1{display: inline;}.box2{display: block;}我是一个div块级元素,现在被当成内联元素显示了我是一个span内联元素,现在被当成块级元素显示        display          .box1 {          background-color: yellow;          display: inline;      }      .box2 {          background-color: green;          display: block;      }      .box3 {        display: inline-block;        border: 1px solid #000;        width: 200px;        height: 100px;      }      .box4 {          display: inline-block;          border: 1px solid #000;          width: 200px;          height: 100px;     }      span {          background-color: red;      }            华为云1号-->   华为云2号    内联元素间隙:去掉内联元素间回车和空格,可以去掉显示间隙。             或者保留回车和空格,父元素设置font-size: 0px,子元素文字尺寸可继承,会显示0,不可见文字。可在子元素类选择器中重新设置字体大小。
发布时间 2020/06/05 11:45:07 最后回复 @Wu 2020/07/05 23:55:07 版块 社区活动
55722 487 2
他的回复:
ID: hw684360526.15~6.21周笔记Html 表单元素表单:最重要的数据交互功能与后端进行数据交互表单元素:使用标签定义表单,表单有两个最重要的属 action属性,定义了表单提交的地址method属性,定义了表单提交的方式表单有两种提交方式,get和post其他表单控件元素必须放在form标签的内部input input是一个单标签元素,其属性type代表了input的表单类型input标签就是通过type属性的不同取值来定义不同的表单控件单文本框:可以输入一行文本大表单控件例:单选按钮:具有相同name属性的单选按钮只能选择一个例:多选按钮:可以选中多个的选择框例:按钮:普通按钮例:提交按钮:会触发将表单数据提交到服务器的功能例:重置按钮:会清除表单中的所有数据,恢复表单中的原始值例:文件上传按钮:用于文件上传例:name值相同,表示是一组的 ;标签令点文字也可以选中select:主要用于下拉列表select用来定义列表;option用来定义列表项size的值表示能同时展示几行;加上multiple表示多选  textarea标签:用来表示多行文本域rows行 cols列 CSS 篇第一章CSS简介 CSS中文名层叠样式表,主要功能是对网页的样式进行定义,设计布局、颜色、文本等。 CSS共经历了4个版本,CSS2.1版本是目前使用最广泛的版本,CSS3.0则是目前最新的版本,各大厂商正逐步支持CSS3.0相关规范。 CSS的引入方式分为四种 3.1内联样式,直接写入元素标签style属性中 3.2内部样式,一般写入到head标签下的style标签中 3.3引入外部样式,通过link元素引入一个外部css文件 3.4导入外部样式,在style元素中,通过@import导入外部css文件 CSS书写的基本格式为 选择器 { 属性:值; 属性: 值;......} CSS的特性主要有两种,层叠性和继承性,层叠性主要表现为CSS是分层的,下面定义的CSS样式会覆盖相同选择内容的样式。 继承性表现为子级的元素继承父元素的相关样式,但不是所有样式都继承,比如border就不会继承     第二章CSS选择器 通配符选择器和元素选择器 通配符选择器通常应用是对全局初始化,因为浏览器默认会有自带的样式,会影响布局,通常会在开头进行相关样式清除初始化。比如 设置margin: 0px;padding:0px。通用符选择器是影响全局的。 元素选择器是选择所有指定的元素标签 ID选择器和类选择器 id选择器是选择含有指定id值得标签,id值是唯一的,不能重复 类选择器是选择class值为指定内容的标签,class值可以有多个不重复,一个class属性可以设置多个class     3.属性选择器和伪类选择器         属性选择器格式一般为E[attribute]{property:value;......}         一般有一下几个:         [属性]        用于选取指定属性的元素         [属性=值]    用于选取指定属性和对应值的元素         [属性~=值]    用于选取指定属性中包含指定值的元素,必须单独一个,不能包含在一个属性值中         [属性|=值]    用于选择指定值开头的属性值的元素,中间以-隔开         [属性^=值]    用于选择以指定值开头的属性值的元素         [属性$=值]    用于选择以指定值结尾的属性值的元素         [属性*=值]    用于选择包含指定值的属性值的元素         伪类选择器有:link、:visited、:hover、:active,伪类选择器的顺序很重要,顺序不对定义会失效,记忆方式可以这样记忆,             love hate,伪类选择器通常与A标签组合使用     4.派生选择器         1.后代选择器如ul li{},包含所有的后代,子代和子代的后代         2.子元素选择器如ul>li,包含直接子代,不包含子代的后代         3.相邻兄弟选择器,如div+p,表示div紧挨着的下一个p标签,不包括上一个挨着的p标签。两个元素必须同级。、     5.选择器权重         通配符权重    0         标签选择器权重    1         类、伪类、属性选择器权重     10         id选择器权重    100         内联样式的权重    1000         !important    强制使用         组合选择器的权重为各个属性的权重相加,以结果最大的样式为准,其他的无效。
发布时间 2020/06/05 11:45:07 最后回复 @Wu 2020/07/05 23:55:07 版块 社区活动
55722 487 2
他的回复:
hw68436052《WEB前端全栈成长计划》第一阶段 -- 第一周学习笔记概要:Web开发包括:前端开发、后端开发前端开发:HTML(结构)、CSS(样式)、JavaScript(行为)第一章、WEB简史万维网(W3C)994年底,由Tim牵头的万维网联盟(World Wide Web Consortium)成立,这标志着万维网的正式诞生。此时的网页以HTML为主,是纯静态的网页,网页是“只读”的,信息流只能通过服务器到客户端单向流通,由此世界进入了Web 1.0时代。W3C 在 1994 年被创建的目的是,为了完成麻省理工学院(MIT)与欧洲粒子物理研究所(CERN)之间的协同工作,并得到了美国国防部高级研究计划局(DARPA)和欧洲委员会(European Commission)的支持。W3C 最重要的工作是发展 Web 规范(称为推荐,Recommendations),这些规范描述了 Web 的通信协议(比如 HTML 和 XHTML)和其他的构建模块。第二章、初始HTML一、HTML发展史HTML概念HTML又叫做超文本标记语言(HyperText Markup Language ),是用来构建网页的一种标记语言。HTML的历史1993年由互联网工程工作小组(IETF )发布工作草案1995年发布HTML2.0版本1997年1月14日由W3C发布HTML3.2版本1997年12月18日由W3C发布HTM L4.◦版本1999年由W3C发布HTML4.01版本2000年由W3C发布XHTML1.0版本,它是一种更严格的HTML代码HTML52014年W3C发布的最新版本,增加了新的特性,给用户带来了更丰富的交互体验。HTML与XHTML的关系XHTML是可扩展超文本标记语言,是一种更严格、更纯净的HTMI语言。主要的不同点XHTML元素必须被正确地嵌套XHTML元素必须被关闭标签名必须用小写字母XHTML文档必须拥有根元素HTML的语义化:HTML5中新增加了很多语义化标签,不同的HTMI标签代表了不同的网页内容。优势:语义化HTML会使HTML结构变的清晰,有利于代码的维护有利于搜索引擎抓取语义化使代码仍具可读性语义化会使HTML代码变得更简洁,提高页面加载速度语义化有助于屏幕阅读器等设备的识别二、标签HTML是由一系列标签组成的,每个标签是以""和">"包裹的单词,通 常称之为元素。例如:标签的种类单标签:只有一个标签就能表达完整的含义例如: 双标签:由开始标签和结束标签一起组成例如:三、元素一对标签包含的所有内容,其中元素的内容是指开始标签和结束标签之间的内容。例如:你幸福吗?四、属性标签可以有很多属性,属性总是在开始标签中定义,而且是以名值对的形式出现,其中属性值以双引号包裹。例如:我姓张第三章、常用标签HTML基本结构:        Document    标题元素:~标签用于定义标题,最重要,重要性最低,通常用于顶层标题且一个页面中一般只有一个。段落元素:标签用于定义段落,块级元素,连续空格只会解析为一个空格。结构标签:Div标签:用于划分区域,代表网页中的块,为块级元素,无特殊含义。span标签:内联元素,用在一行文本中,用来修饰文章链接:标签用于定义网页链接,主要属性有href:网页地址,target:窗口打开默认方式,值有_self、_blank。图片:标签用于定义一张图片,属于单标签结构,有两个属性,src为图片地址,alt为图片无法显示时的替代文本。列表:无序列表:,ul标签定义无序列表,li标签定义列表项。有序列表:,ol标签定义无序列表,li标签定义列表项。自定义列表:,dl标签定义自定义列表,dt定义标题,dd定义列表项。第四章、表格标签表格元素:表格用标签定义,里面由若干行和列的单元格组成,在HTML中,使用标识表格的一行,使用表示列,用表示表格标题。例如:            我是表格标题                    第一列            第二列            第三列            表格的行用表示,内部包含。表格的列用表示,的两个常用属性,colspan用于定义单元格跨行,rowspan用于定义单元格跨列。例如:                        1            2            3                            4            表格结构:可以使用、、标签分别表示表格的头部、主体、底部。示例:                                        表格头部                                                        表格头部                                                        表格头部