Web学习之开篇

Web开发需要用到哪些技术?

这套系统介绍使用JavaScript来完成Web开发,我们在学习js之前需要了解一下相关HTML、CSS。
HTML:定义网页内容
CSS:描述网页的布局
JavaScript:网页的行为

HTML 学习

 HTML学习网站

  HTML不是编程语言,而是标记语言。类似Markdown一样也是标记语言(不要被吓到,这个语法很简单,此文就是Markdown写的)。
&empt; 注意先声明当前HTML版本,其次就通过标签内声明源文件,声明浏览器展示内容。
标签中通过声明文本标题、<meta>声明元数据,如定义王爷编码格式为utf-8等<br> <body>标签中涉及标题格式、段落格式<br> <a href="http://www.baidu.com"> 这是百度网地址 </a><br> <img src="/images/logo.png" width="258" height="39" /><br> <hr /> 画水平线<br> <font size="1">这是1号字体文本</font><br> <sub> 下标</sub> 和 <sup> 上标</sup><br> <head> 元素包含了所有的头部标签元素。在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种meta信息。<br> 可以添加在头部区域的元素标签为: <title>, <style>, <meta>, <link>, <script>, <noscript> 和 <base>。<br> <link> 标签定义了文档与外部资源之间的关系。</p> <p><link rel="stylesheet" type="text/css" href="https://www.baidu.com/css/bcd<sub>bcmobile</sub>bcpc.9837752f.css"></p> <p>内联样式- 在HTML元素中使用"style" 属性<br> <p style="color:blue;margin-left:20px;">这是一个段落。</p><br> 内部样式表:</p> <pre><code><head> <style type="text/css"> body {background-color:yellow;} p {color:blue;} </style> </head> </code></pre> <p>外部样式表:</p> <pre><code><head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> </code></pre> <p><table>表格标签<br> <tr>若干行<br> <td>单元格的内容</p> <pre><code><table border="1"> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table> </code></pre> <p><div>定义块级<br> <span>组合文档的行内元素,内联元素<br> <form> 表单标签 里面经常包含的元素有,input输入的文本域、密码字段、单选按钮、复选框、提交按钮</p> <h3>CSS 学习</h3> <p> CSS学习网站<br> CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:<br> 选择器通常是您需要改变样式的 HTML 元素。<br> 每条声明由一个属性和一个值组成。<br> 在head标签中,通过style标签给不同的body、h、p等元素进行编辑。<br> css中id 选择器(指定特定id的样式)、class 选择器(指定一组元素的样式)<br> id是通过#来进行标记的<br> class通过一个点 . 来表示。也可以指定某个标签的所有元素使用某个样式例如:p.center。指定所有p元素使用<br> 外部样式表:很多页面时,外部样式表将是理想的选择<link rel="xxx"><br> 内部样式表:单个文档需要特殊的样式时,就应该使用内部样式表。< style ><br> 内联样式:内联样式会损失掉样式表的许多优势。请慎用这种方法<p style="color:sienna;margin-left:20px">这是一个段落。</p><br> 多重样式:<br> <strong>CSS盒子模型:</strong><br> Margin(外边距) - 清除边框外的区域,外边距是透明的。<br> Border(边框) - 围绕在内边距和内容外的边框。<br> Padding(内边距) - 清除内容周围的区域,内边距是透明的。<br> 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距<br> <strong>重要:</strong> 当您指定一个 CSS 元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完整大小的元素,你还必须添加内边距,边框和边距。<br> <strong>border-style:</strong> 默认无边框 none</p> <h3>JavaScript 学习</h3> <p>JavaScript 学习网站</p> <p>document.getElementById("demo").innerHTML = "段落已修改。"; 插入元素内容<br> 请使用 document.write() 仅仅向文档输出写内容。<br> 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。</p> <pre><code>//button 添加点击事件 <button onclick="myFunction()"> <script> function myFunction() { document.write(Date()); } </script> </code></pre> <p>写到控制台<br> console.log(c);</p> <p>数组<br> [40, 100, 1, 5, 25, 10]</p> <p>对象<br> {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}</p> <p>函数<br> function myFunction(a, b) { return a * b;}</p> <p>变量<br> var x, length</p> <p>= + - * / 运算<br> == != < > 判断</p> <p><strong>JavaScript 语句</strong><br> JavaScript 语句是发给浏览器的命令。</p> <p><strong>JavaScript 代码</strong><br> 浏览器按照编写顺序依次执行每条语句。</p> <p><strong>JavaScript 代码块</strong><br> JavaScript 可以分批地组合起来。<br> 代码块以左花括号开始,以右花括号结束。<br> 代码块的作用是一并地执行语句序列。</p> <p><strong>JavaScript 语句标识符</strong><br> try 实现错误处理,与 catch 一同使用。<br> catch 语句块,在 try 语句块执行出错时执行 catch 语句块。</p> <p>您可以在文本字符串中使用反斜杠对代码行进行换行</p> <p>提示:JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。</p> <p>注释<br> 注释用于阻止其中一条代码行的执行(可用于调试)</p> <p><strong>JavaScript 数据类型</strong><br> 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。<br> 引用数据类型:对象(Object)、数组(Array)、函数(Function)。</p> <p><strong>JavaScript 对象</strong><br> 在 JavaScript中,几乎所有的事物都是对象。</p> <p>var person = {<br> firstName: "John",<br> lastName : "Doe",<br> id : 5566,<br> fullName : function()<br> {<br> return this.firstName + " " + this.lastName;<br> }<br> };</p> <p>对象属性<br> JavaScript 对象是键值对的容器</p> <p>访问对象属性<br> name=person.lastname;<br> 或<br> name=person["lastname"];</p> <p>访问对象方法<br> objectName.methodName()</p> <p><strong>JavaScript 函数</strong><br> 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。</p> <p>带参数函数 myFunction(argument1,argument2)</p> <p><strong>带有返回值的函数</strong><br> 函数将值返回调用它的地方</p> <pre><code>function myFunction() { var x=5; return x; } </code></pre> <p>注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。</p> <p>仅仅希望退出函数时 ,也可使用 return 语句</p> <p><strong>局部 JavaScript 变量</strong><br> 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。<br> 您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。<br> 只要函数运行完毕,本地变量就会被删除。</p> <p><strong>全局 JavaScript 变量</strong><br> 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。</p> <p><strong>JavaScript 作用域</strong><br> 在 JavaScript 中, 对象和函数同样也是变量。<br> 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。<br> JavaScript 函数作用域: 作用域在函数内修改。</p> <p>变量在函数内声明,变量为局部作用域。<br> 局部变量:只能在函数内部访问。<br> 因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。<br> 局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。</p> <p><strong>JavaScript 全局变量</strong><br> 变量在函数外定义,即为全局变量。<br> 全局变量有 全局作用域: 网页中所有脚本和函数均可使用。</p> <p>如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。<br> 以下实例中 carName 在函数内,但是为全局变量。</p> <pre><code>// 此处可调用 carName 变量 function myFunction() { carName = "Volvo"; // 此处可调用 carName 变量 } </code></pre> <p><strong>JavaScript 事件</strong><br> HTML 事件是发生在 HTML 元素上的事情。<br> 当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。</p> <p><strong>HTML 事件</strong><br> HTML 事件可以是浏览器行为,也可以是用户行为。</p> <p>事件:<br> HTML 页面完成加载<br> HTML input 字段改变时<br> HTML 按钮被点击</p> <p>可以做的事情。在事件触发时 JavaScript 可以执行一些代码。<br> HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。</p> <p><code><some-HTML-element some-event='JavaScript 代码'></code><br> 或者 双引号<br> <code><some-HTML-element some-event="JavaScript 代码"></code></p> <p>举例:<br> JavaScript 代码将修改 id="demo" 元素的内容。<br> <code><button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button></code></p> <p>修改自身元素的内容 (使用 this.innerHTML):<br> <code><button onclick="this.innerHTML=Date()">现在的时间是?</button></code></p> <p><strong>常见的HTML事件</strong><br> onchange -----> HTML 元素改变<br> onclick -----> 用户点击 HTML 元素<br> onmouseover ----> 用户在一个HTML元素上移动鼠标<br> onmouseout ----> 用户从一个HTML元素上移开鼠标<br> onkeydown -----> 用户按下键盘按键<br> onload -----> 浏览器已完成页面的加载</p> <p><strong>JavaScript 可以做什么?</strong><br> 事件可以用于处理表单验证,用户输入,用户行为及浏览器动作:</p> <ul> <li>页面加载时触发事件</li> <li>页面关闭时触发事件</li> <li>用户点击按钮执行动作</li> <li>验证用户输入内容的合法性</li> <li>等等 ...</li> </ul> <p>可以使用多种方法来执行 JavaScript 事件代码:</p> <ul> <li>HTML 事件属性可以直接执行 JavaScript 代码</li> <li>HTML 事件属性可以调用 JavaScript 函数</li> <li>你可以为 HTML 元素指定自己的事件处理程序</li> </ul> <p><strong>JavaScript 字符串</strong></p> <p>字符串长度:<br> 可以使用内置属性 length 来计算字符串的长度:</p> <p>特殊字符<br> 因为这样,以下实例 JavaScript 无法解析:<br> "We are the so-called "Vikings" from the north."</p> <p>可以使用反斜杠 () 来转义 "Vikings" 字符串中的双引号,如下:<br> "We are the so-called "Vikings" from the north."<br> charAt() ---> 返回指定索引位置的字符<br> charCodeAt() ---> 返回指定索引位置字符的 Unicode 值<br> concat() ---> 连接两个或多个字符串,返回连接后的字符串<br> fromCharCode() ---> 将 Unicode 转换为字符串<br> indexOf() ---> 返回字符串中检索指定字符第一次出现的位置<br> lastIndexOf() ---> 返回字符串中检索指定字符最后一次出现的位置<br> localeCompare() ---> 用本地特定的顺序来比较两个字符串<br> match() ---> 找到一个或多个正则表达式的匹配<br> replace() ---> 替换与正则表达式匹配的子串<br> search() ---> 检索与正则表达式相匹配的值<br> slice() ---> 提取字符串的片断,并在新的字符串中返回被提取的部分<br> split() ---> 把字符串分割为子字符串数组<br> substr() ---> 从起始索引号提取字符串中指定数目的字符<br> substring() ---> 提取字符串中两个指定的索引号之间的字符<br> toLocaleLowerCase() ---> 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射<br> toLowerCase() ---> 把字符串转换为小写<br> toString() ---> 返回字符串对象值<br> toUpperCase() ---> 把字符串转换为大写<br> trim() ---> 移除字符串首尾空白<br> valueOf() ----> 返回某个字符串对象的原始值</p> <p><strong>JavaScript 运算符</strong></p> <ul> <li> <ul> <li> <ul> <li>/ % ++ --</li> </ul></li> </ul></li> </ul> <p>用于字符串的 + 运算符<br> 如需把两个或多个字符串变量连接起来,请使用 + 运算符:</p> <p>或者把空格插入表达式中:<br> txt3=txt1+" "+txt2;</p> <p>对字符串和数字进行加法运算<br> 两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:<br> x=5+5;<br> y="5"+5;<br> z="Hello"+5;</p> <p>10<br> 55<br> Hello5</p> <p><strong>JavaScript 比较 和 逻辑运算符</strong><br> 比较和逻辑运算符用于测试 true 或者 false。</p> <p>比较运算符</p> <p>== 等于<br> === 绝对等于(值和类型均相等)<br> != 不等于<br> !== 不绝对等于(值和类型有一个不相等,或两个都不相等)</p> <blockquote> <p>大于<br> < 小于<br> = 大于或等于<br> <= 小于或等于</p> </blockquote> <p>逻辑运算符<br> && || !</p> <p>条件运算符<br> voteable=(age<18)?"年龄太小":"年龄已达到";</p> <p><strong>JavaScript if...Else 语句</strong><br> if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码<br> if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码<br> if...else if....else 语句- 使用该语句来选择多个代码块之一来执行<br> switch 语句 - 使用该语句来选择多个代码块之一来执行</p> <p>JavaScript switch 语句<br> 工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。</p> <pre><code>var d=new Date().getDay(); switch (d) { case 0:x="今天是星期日"; break; case 1:x="今天是星期一"; break; case 2:x="今天是星期二"; break; case 3:x="今天是星期三"; break; case 4:x="今天是星期四"; break; case 5:x="今天是星期五"; break; case 6:x="今天是星期六"; break; } </code></pre> <p>default 关键词<br> 使用 default 关键词来规定匹配不存在时做的事情:</p> <pre><code>var d=new Date().getDay(); switch (d) { case 6:x="今天是星期六"; break; case 0:x="今天是星期日"; break; default: x="期待周末"; } document.getElementById("demo").innerHTML=x; </code></pre> <p><strong>JavaScript for 循环</strong></p> <pre><code>for (var i=0;i<cars.length;i++) { document.write(cars[i] + "<br>"); } </code></pre> <p><strong>不同类型的循环</strong></p> <ul> <li>for - 循环代码块一定的次数</li> <li>for/in - 循环遍历对象的属性</li> <li>while - 当指定的条件为 true 时循环指定的代码块</li> <li>do/while - 同样当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code>for (var i=0,len=cars.length; i<len; i++) { document.write(cars[i] + "<br>"); } </code></pre> <ul> <li>for/in - 循环遍历对象的属性,只是遍历对象内部的属性</li> </ul> <pre><code> var x; var txt=""; var person={fname:"Bill",lname:"Gates",age:56}; for (x in person){ txt=txt + person[x]; } document.getElementById("demo").innerHTML=txt; </code></pre> <ul> <li>while - 当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code>while (i<5) { x=x + "The number is " + i + "<br>"; i++; } </code></pre> <ul> <li>do/while - 同样当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code> var x="",i=0; do{ x=x + "该数字为 " + i + "<br>"; i++; } while (i<5) document.getElementById("demo").innerHTML=x; </code></pre> <p><strong>JavaScript break 和 continue 语句</strong><br> break 语句用于跳出循环。<br> continue 用于跳过循环中的一个迭代。</p> <p><strong>JavaScript 标签</strong><br> 如需标记 JavaScript 语句,请在语句之前加上冒号:</p> <pre><code>label: statements </code></pre> <pre><code><script> cars=["BMW","Volvo","Saab","Ford"]; list:{ document.write(cars[0] + "<br>"); break list; document.write(cars[1] + "<br>"); document.write(cars[2] + "<br>"); document.write(cars[3] + "<br>"); document.write(cars[4] + "<br>"); document.write(cars[5] + "<br>"); } </script> </code></pre> <p><strong>JavaScript typeof, null, 和 undefined</strong></p> <p>null是一个只有一个值的特殊类型。表示一个空对象引用。<br> var person = null; // 值为 null(空), 但类型为对象</p> <p>你可以设置为 undefined 来清空对象:<br> var person = undefined; // 值为 undefined, 类型为 undefined</p> <p>undefined 是一个没有设置值的变量。<br> 任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.</p> <p>null 和 undefined 的值相等,但类型不等:</p> <p>你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):<br> <code>return myArray.constructor.toString().indexOf("Array") > -1;</code></p> <p><strong>将数字转换为字符串</strong><br> String(x) // 将变量 x 转换为字符串并返回</p> <p>Number 方法 toString() 也是有同样的效果。<br> x.toString()<br> (123).toString()</p> <p>Date 方法<br> 将字符串转换为数字<br> Number("3.14") // 返回 3.14<br> Number 方法</p> <p>一元运算符 +<br> Operator + 可用于将变量转换为数字:</p> <p>将布尔值转换为数字<br> Number(false) // 返回 0<br> Number(true) // 返回 1</p> <p>d = new Date();<br> Number(d) // 返回 1404568027739<br> 日期方法 getTime() 也有相同的效果。</p> <p><strong>JavaScript 正则表达式</strong><br> 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。<br> 搜索模式可用于文本搜索和文本替换。</p> <p><strong>什么是正则表达式?</strong><br> 正则表达式是由一个字符序列形成的搜索模式。<br> 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。<br> 正则表达式可以是一个简单的字符,或一个更复杂的模式。<br> 正则表达式可用于所有文本搜索和文本替换的操作。</p> <p><strong>语法</strong><br> /正则表达式主体/修饰符(可选)<br> var patt = /runoob/i</p> <p>/runoob/i 是一个正则表达式。<br> runoob 是一个正则表达式主体 (用于检索)。<br> i 是一个修饰符 (搜索不区分大小写)。</p> <p>在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。</p> <p>search() 方法使用正则表达式</p> <pre><code> var str = "Visit Runoob!"; var n = str.search(/Runoob/i); document.getElementById("demo").innerHTML = n; </code></pre> <p>search() 方法使用字符串</p> <pre><code> var str = "Visit Runoob!"; var n = str.search("Runoob"); document.getElementById("demo").innerHTML = n; </code></pre> <p>replace() 方法使用正则表达式</p> <pre><code> var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob"); document.getElementById("demo").innerHTML = txt; </code></pre> <p>replace() 方法使用正则表达式</p> <pre><code> var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob"); document.getElementById("demo").innerHTML = txt; </code></pre> <p><strong>JavaScript 错误 - throw、try 和 catch</strong><br> try 语句测试代码块的错误。<br> catch 语句处理错误。<br> throw 语句创建自定义错误。<br> finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。</p> <p><strong>JavaScript try 和 catch</strong><br> catch 块会捕捉到 try 块中的错误,并执行代码来处理它。</p> <pre><code> try { adddlert("Welcome guest!"); } catch(err) { txt="本页有一个错误。\n\n"; txt+="错误描述:" + err.message + "\n\n"; txt+="点击确定继续。\n\n"; alert(txt); } </code></pre> <p>finally 语句<br> finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。</p> <p>Throw 语句<br> throw 语句允许我们创建自定义错误。<br> 如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。</p> <pre><code>function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "值为空"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "太小"; if(x > 10) throw "太大"; } catch(err) { message.innerHTML = "错误: " + err; } } </code></pre> <p><strong>JavaScript 调试工具</strong><br> 浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。<br> mac 调起是按 option+command+i</p> <p><strong>console.log() 方法</strong><br> 如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值</p> <p><strong>设置断点</strong><br> 在调试窗口中,你可以设置 JavaScript 代码的断点。<br> 在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。<br> 在检查完毕后,可以重新执行代码(如播放按钮)。</p> <p><strong>debugger 关键字</strong><br> debugger 关键字用于停止执行 JavaScript,并调用调试函数。<br> 注意前提条件: 调试环境</p> <p><strong>Undefined 不是 Null</strong><br> 在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。<br> 对象只有被定义才有可能为 null,否则为 undefined。<br> 如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。<br> <code>if (typeof myObj !== "undefined" && myObj !== null)</code></p> <p><strong>JavaScript 表单</strong><br> HTML 表单验证可以通过 JavaScript 来完成。<br> 以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:</p> <pre><code><html> <head> <meta charset="utf-8"> <script> function validateForm() { var x = document.forms["myForm"]["fname"].value; if (x == null || x == "") { alert("需要输入名字。"); return false; } } </script> </head> <body> <form name="myForm" action="demo_form.php" onsubmit="return validateForm()" method="post"> 名字: <input type="text" name="fname"> <input type="submit" value="提交"> </form> </body> </html> </code></pre> <p><strong>数据验证</strong><br> <strong>服务端数据验证</strong>是在数据提交到服务器上后再验证。<br> <strong>客户端数据验证</strong>是在数据发送到服务器前,在浏览器上完成验证。</p> <p><strong>HTML 约束验证</strong><br> 约束验证是表单被提交时浏览器用来实现验证的一种算法。<br> HTML 输入属性<br> CSS 伪类选择器<br> DOM 属性和方法</p> <p>有关的查:HTML 输入属性<br> 有关的查: CSS 伪类</p> <p><strong>JavaScript 表单验证</strong><br> JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。</p> <ul> <li>验证表单数据是否为空?</li> <li>验证输入是否是一个正确的email地址?</li> <li>验证日期是否输入正确?</li> <li>验证表单输入内容是否为数字型?</li> </ul> <p><strong>JavaScript 验证 API</strong><br> 约束验证 DOM 方法:<br> checkValidity() ---> 如果 input 元素中的数据是合法的返回 true,否则返回 false。</p> <p>setCustomValidity() --->设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。<br> 使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成true,则 checkValidity 总是会返回false。如果要重新判断需要取消自定义提示.</p> <p><strong>约束验证 DOM 属性</strong><br> validity<br> validationMessage<br> willValidate</p> <p><strong>Validity 属性</strong><br> customError ---> 设置为 true, 如果设置了自定义的 validity 信息。<br> patternMismatch ---> 设置为 true, 如果元素的值不匹配它的模式属性。<br> rangeOverflow ---> 设置为 true, 如果元素的值大于设置的最大值。<br> rangeUnderflow ---> 设置为 true, 如果元素的值小于它的最小值。<br> stepMismatch ---> 设置为 true, 如果元素的值不是按照规定的 step 属性设置。<br> tooLong ---> 设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。<br> typeMismatch ---> 设置为 true, 如果元素的值不是预期相匹配的类型。<br> valueMissing ---> 设置为 true,如果元素 (required 属性) 没有值。<br> valid ---> 设置为 true,如果元素的值是合法的。</p> <p><strong>JavaScript this 关键字</strong><br> 面向对象语言中 this 表示当前对象的一个引用。<br> 但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。</p> <ul> <li>在方法中,this 表示该方法所属的对象。</li> <li>如果单独使用,this 表示全局对象。</li> <li>在函数中,this 表示全局对象。</li> <li>在函数中,在严格模式下,this 是未定义的(undefined)。</li> <li>在事件中,this 表示接收事件的元素。</li> <li>类似 call() 和 apply() 方法可以将 this 引用到任何对象。</li> </ul> <p>方法中的 this<br> 在对象方法中, this 指向调用它所在方法的对象。 下面代码中this指向的是person</p> <pre><code>var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; </code></pre> <p>单独使用 this<br> 单独使用 this,则它指向全局(Global)对象。<br> 在浏览器中,window 就是该全局对象为 [object Window]:</p> <pre><code><script> var x = this; document.getElementById("demo").innerHTML = x; </script> </code></pre> <p>函数中使用 this(默认)<br> 在函数中,函数的所属者默认绑定到 this 上。<br> 在浏览器中,window 就是该全局对象为 [object Window]:</p> <pre><code><script> document.getElementById("demo").innerHTML = myFunction(); function myFunction() { return this; } </script> </code></pre> <p>函数中使用 this(严格模式)<br> 严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。</p> <p>事件中的 this<br> 在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素:<br> <code><button onclick="this.style.display='none'">点我后我就消失了</button></code></p> <p>对象方法中绑定<br> this 是 person 对象,person 对象是函数的所有者</p> <p>显式函数绑定<br> 在 JavaScript 中函数也是对象,对象则有方法,apply 和 call 就是函数对象的方法。这两个方法异常强大,他们允许切换函数执行的上下文环境(context),即 this 绑定的对象。<br> 在下面实例中,当我们使用 person2 作为参数来调用 person1.fullName 方法时, this 将指向 person2, 即便它是 person1 的方法:</p> <pre><code>var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"John", lastName: "Doe", } person1.fullName.call(person2); // 返回 "John Doe" </code></pre> <p><strong>JavaScript let 和 const</strong><br> let 声明的变量只在 let 命令所在的代码块内有效。<br> const 声明一个只读的常量,一旦声明,常量的值就不能改变。<br> 函数内使用 var 声明的变量只能在函数内容访问,如果不使用 var 则是全局变量。</p> <p><strong>JavaScript JSON</strong><br> JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)<br> JSON 通常用于服务端向网页传递数据 。</p> <p>JSON 语法规则</p> <ul> <li>数据为 键/值 对。</li> <li>数据由逗号分隔。</li> <li>大括号保存对象</li> <li>方括号保存数组</li> </ul> <p><strong>JSON 字符串转换为 JavaScript 对象</strong><br> 首先,创建 JavaScript 字符串,字符串为 JSON 格式的数据:<br> 然后,使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:</p> <pre><code>var text = '{ "sites" : [' + '{ "name":"Runoob" , "url":"www.runoob.com" },' + '{ "name":"Google" , "url":"www.google.com" },' + '{ "name":"Taobao" , "url":"www.taobao.com" } ]}'; var obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url; </code></pre> <p>相关参数<br> JSON.parse() ----> 用于将一个 JSON 字符串转换为 JavaScript 对象。<br> JSON.stringify() ---> 用于将 JavaScript 值转换为 JSON 字符串。</p> <p><strong>javascript:void(0) 含义</strong><br> 该操作符指定要计算一个表达式但是不返回值</p> <p>void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行,如<br> void(alert("Warnning!"))</p> <p><strong>JavaScript 异步编程</strong><br> 异步:异步就是从主线程发射一个子线程来完成任务</p> <p>子线程有一个局限:一旦发射了以后就会与主线程失去同步,我们无法确定它的结束,如果结束之后需要处理一些事情,比如处理来自服务器的信息,我们是无法将它合并到主线程中去的。<br> 为了解决这个问题,JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。</p> <p><strong>回调函数</strong><br> 回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。</p> <pre><code>function print() { document.getElementById("demo").innerHTML="RUNOOB!"; } setTimeout(print, 3000); </code></pre> <p>这段程序中的 setTimeout 就是一个消耗时间较长(3 秒)的过程,它的第一个参数是个回调函数,第二个参数是毫秒数,这个函数执行之后会产生一个子线程,子线程会等待 3 秒,然后执行回调函数 "print",在命令行输出 "Time out"。<br> 在 setTimeout 函数执行之后主线程并没有停止</p> <p><strong>异步 AJAX</strong><br> XMLHttpRequest 的 onload 和 onerror 属性都是函数,分别在它请求成功和请求失败时被调用。</p> <p>GET 请求</p> <pre><code>xmlhttp.open("GET","/try/ajax/demo_get.php",true); xmlhttp.send(); </code></pre> <p>在上面的例子中,您可能得到的是缓存的结果。<br> 为了避免这种情况,请向 URL 添加一个唯一的 ID:</p> <pre><code>xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true); xmlhttp.send(); </code></pre> <p>POST 请求</p> <pre><code>xmlhttp.open("POST","/try/ajax/demo_post.php",true); xmlhttp.send(); </code></pre> <pre><code>xmlhttp.open("POST","/try/ajax/demo_post2.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Henry&lname=Ford"); </code></pre> <p><strong>JavaScript Promise</strong><br> Promise:目的是更加<strong>优雅地书写复杂的异步任务</strong><br> 构建Promise 对象:</p> <pre><code>new Promise(function (resolve, reject) { // 要做的事情... }); </code></pre> <p>Promise 可以将嵌套格式的代码变成了顺序格式的代码</p> <p><strong>Promise 的使用</strong><br> Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject。<br> 当 Promise 被构造时,起始函数会被异步执行:</p> <pre><code>new Promise(function (resolve, reject) { console.log("Run"); }); </code></pre> <p>这段程序会直接输出 Run。<br> resolve 和 reject 都是函数,其中调用 resolve 代表一切正常,reject 是出现异常时所调用的</p> <pre><code>new Promise(function (resolve, reject) { var a = 0; var b = 1; if (b == 0) reject("Diveide zero"); else resolve(a / b); }).then(function (value) { console.log("a / b = " + value); }).catch(function (err) { console.log(err); }).finally(function () { console.log("End"); }); </code></pre> <p>Promise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,.catch() 则是设定 Promise 的异常处理序列,.finally() 是在 Promise 执行的最后一定会执行的序列。 .then() 传入的函数会按顺序依次执行,有任何异常都会直接跳到 catch 序列:</p> <p><strong>Q: 什么时候适合用 Promise 而不是传统回调函数?</strong><br> A: 当需要<strong>多次顺序执行异步操作</strong>的时候,例如,如果想通过异步方法先后检测用户名和密码,需要先异步检测用户名,然后再异步检测密码的情况下就很适合 Promise。</p> <p><strong>函数表达式</strong></p> <p>JavaScript 函数可以通过一个表达式定义。<br> 函数表达式可以存储在变量中:<br> 以下函数实际上是一个 匿名函数 (函数没有名称)。<br> 函数存储在变量中,不需要函数名称,通常通过变量名来调用。</p> <pre><code>var x = function (a, b) {return a * b}; var z = x(4, 3); </code></pre> <p><strong>arguments 对象</strong><br> JavaScript 函数有个内置的对象 arguments 对象。<br> argument 对象包含了函数调用的参数数组。<br> 通过这种方式你可以很方便的找到最大的一个参数的值</p> <p>在函数中调用的参数是函数的隐式参数。<br> 隐式参数的改变在函数外是不可见的。</p> <p>call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。</p> <pre><code><script> var myObject; function myFunction(a, b) { return a * b; } myObject = myFunction.call(myObject, 10, 2); // 返回 20 document.getElementById("demo").innerHTML = myObject; </script> </code></pre> <pre><code><script> var myObject, myArray; function myFunction(a, b) { return a * b; } myArray = [10, 2] myObject = myFunction.apply(myObject, myArray); // 返回 20 document.getElementById("demo").innerHTML = myObject; </script> </code></pre> <p>两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。</p> <p><strong>this 笔记</strong><br> this 是 JavaScript 语言的一个关键字。<br> 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:</p> <pre><code>function test() { this.x = 1; } </code></pre> <p>变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。</p> <p>JavaScript支持嵌套函数,内部函数可以访问父函数的变量。</p> <p><strong>JavaScript 闭包</strong><br> 什么叫闭包,闭包有什么用</p> <pre><code>function aaa() { var a = 5; function bbb() { alert(a) } return bbb } var c = aaa(); c(); </code></pre> <pre><code><script> var add = (function () { var counter = 0; return function () {return counter += 1;} })(); function myFunction(){ document.getElementById("demo").innerHTML = add(); } </script> </code></pre> <p><strong>实例解析</strong><br> 变量 add 指定了函数自我调用的返回字值。<br> 自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。<br> add变量可以作为一个函数使用。非常棒的部分是它可以访问函数上一层作用域的计数器。<br> 这个叫作 JavaScript 闭包。它使得函数拥有私有变量变成可能。<br> 计数器受匿名函数的作用域保护,只能通过 add 方法修改。<br> <code>闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。 直观的说就是形成一个不销毁的栈环境。</code></p> <h3>Vue.js 学习</h3> <p>Vue框架参考了MVVM架构,所以vm扮演一个数据视图的实例。<br> watch('属性',function(newVal,oldVal));会观察实例某个属性,并通过回调获取最新的值、旧值</p> <p>实例生命周期钩子<br> 将实例挂在到DOM,并在数据变化更新DOM。在这个过程中运行 <strong>声明周期钩子</strong>函数,给用户在不同阶段添加自己代码的机会。</p> <p>生命周期函数内不能使用箭头函数<br> 属性函数<br> //页面创建之前<br> beforeCreate</p> <p>//实例创建之后<br> created</p> <p>//挂载之前进行的<br> beforeMount</p> <p>//挂载成功之后<br> mounted</p> <p>//数据变化更新之前调用<br> beforeUpdate</p> <p>//组件 DOM 已经更新,组件更新完毕<br> updated</p> <p>setTimeout(function(),3000),三分钟后执行function</p> <p><strong>模板语法</strong></p> <p>文本插值 {{ }}<br> v-onec执行一次插值<br> v-html 将变量文本输出为真正的HTML<br> v-bind (帮助标签动态绑定属性)</p> <p>v-if 指令 根据表达式的值的真假来判断 元素的执行</p> <h3>Node.js 学习</h3> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1698610799423074304"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Web学习之开篇)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835509390879322112.htm" title="扫地机类清洁产品之直流无刷电机控制" target="_blank">扫地机类清洁产品之直流无刷电机控制</a> <span class="text-muted">悟空胆好小</span> <a class="tag" taget="_blank" href="/search/%E6%B8%85%E6%B4%81%E6%9C%8D%E5%8A%A1%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">清洁服务机器人</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>扫地机类清洁产品之直流无刷电机控制1.1前言扫地机产品有很多的电机控制,滚刷电机1个,边刷电机1-2个,清水泵电机,风机一个,部分中高端产品支持抹布功能,也就是存在抹布盘电机,还有追觅科沃斯石头等边刷抬升电机,滚刷抬升电机等的,这些电机有直流有刷电机,直接无刷电机,步进电机,电磁阀,挪动泵等不同类型。电机的原理,驱动控制方式也不行。接下来一段时间的几个文章会作个专题分析分享。直流有刷电机会自动持续</div> </li> <li><a href="/article/1835507739820912640.htm" title="2018-07-23-催眠日作业-#不一样的31天#-66小鹿" target="_blank">2018-07-23-催眠日作业-#不一样的31天#-66小鹿</a> <span class="text-muted">小鹿_33</span> <div>预言日:人总是在逃避命运的路上,与之不期而遇。心理学上有个著名的名词,叫做自证预言;经济学上也有一个很著名的定律叫做,墨菲定律;在灵修派上,还有一个很著名的法则,叫做吸引力法则。这3个领域的词,虽然看起来不太一样,但是他们都在告诉人们一个现象:你越担心什么,就越有可能会发生什么。同样的道理,你越想得到什么,就应该要积极地去创造什么。无论是自证预言,墨菲定律还是吸引力法则,对人都有正反2个维度的影响</div> </li> <li><a href="/article/1835507358353158144.htm" title="《大清方方案》| 第二话" target="_blank">《大清方方案》| 第二话</a> <span class="text-muted">谁佐清欢</span> <div>和珅究竟说了些什么?竟能令堂堂九五之尊龙颜失色!此处暂且按下不表;单说这位乾隆皇帝,果真不愧是康熙从小带过的,一旦决定了要做的事,便杀伐决断毫不含糊。他当即亲自拟旨,着令和珅为钦差大臣,全权负责处理方方事件,并钦赐尚方宝剑,遇急则三品以下官员可先斩后奏。和珅身负皇上重托,岂敢有半点怠慢,当夜即率领相关人等,马不停蹄杀奔江汉。这一路上,和珅的几位幕僚一直在商讨方方事件的处置方案。有位年轻幕僚建议快刀</div> </li> <li><a href="/article/1835505957011025920.htm" title="《庄子.达生9》" target="_blank">《庄子.达生9》</a> <span class="text-muted">钱江潮369</span> <div>【原文】孔子观于吕梁,县水三十仞,流沫四十里,鼋鼍鱼鳖之所不能游也。见一丈夫游之,以为有苦而欲死也,使弟子并流而拯之。数百步而出,被发行歌而游于塘下。孔子从而问焉,曰:“吾以子为鬼,察子则人也。请问,‘蹈水有道乎’”曰:“亡,吾无道。吾始乎故,长乎性,成乎命。与齐俱入,与汩偕出,从水之道而不为私焉。此吾所以蹈之也。”孔子曰:“何谓始乎故,长乎性,成乎命?”曰:“吾生于陵而安于陵,故也;长于水而安于</div> </li> <li><a href="/article/1835498219489030144.htm" title="高端密码学院笔记285" target="_blank">高端密码学院笔记285</a> <span class="text-muted">柚子_b4b4</span> <div>高端幸福密码学院(高级班)幸福使者:李华第(598)期《幸福》之回归内在深层生命原动力基础篇——揭秘“激励”成长的喜悦心理案例分析主讲:刘莉一,知识扩充:成功=艰苦劳动+正确方法+少说空话。贪图省力的船夫,目标永远下游。智者的梦再美,也不如愚人实干的脚印。幸福早课堂2020.10.16星期五一笔记:1,重视和珍惜的前提是知道它的价值非常重要,当你珍惜了,你就真正定下来,真正的学到身上。2,大家需要</div> </li> <li><a href="/article/1835498218293653504.htm" title="2020-04-12每天三百字之连接与替代" target="_blank">2020-04-12每天三百字之连接与替代</a> <span class="text-muted">冷眼看潮</span> <div>不知道是不是好为人师,有时候还真想和别人分享一下我对某些现象的看法或者解释。人类社会不断发展进步的过程,就是不断连接与替代的过程。人类发现了火并应用火以后,告别了茹毛饮血的野兽般的原始生活(火烧、烹饪替代了生食)人类用石器代替了完全手工,工具的使用使人类进步一大步。类似这样的替代还有很多,随着科技的发展,有更多的原始的事物被替代,代之以更高效、更先进的技术。在近现代,汽车替代了马车,高速公路和铁路</div> </li> <li><a href="/article/1835496821133242368.htm" title="东南林氏之九牧林候选父系" target="_blank">东南林氏之九牧林候选父系</a> <span class="text-muted">祖缘树TheYtree</span> <div>渊源介绍东晋初年晋安林始祖林禄公入闽,传十世隋右丞林茂,由晋安迁居莆田北螺村。又五世而至林万宠,唐开元间任高平太守,生三子:韬、披、昌。韬公之孙攒,唐德宗立双阙以旌表其孝,时号"阙下林家"。昌公字茂吉,乃万宠公第三子,官兵部司马,配宋氏,生一子名萍。萍于唐贞元间明经及第,官沣洲司马(后追赠中宪大夫)。唐太和年间归隐后,迁居仙游游洋,世称“游洋林”;其后裔居游洋后迁移漳州漳浦路下,由路下林第四房平和</div> </li> <li><a href="/article/1835493651992637440.htm" title="大伟说成语之唉声叹气" target="_blank">大伟说成语之唉声叹气</a> <span class="text-muted">求索大伟</span> <div>*大伟说成语*【唉声叹气】叹气:因心里不痛快或不如意而吐出长气,发出声音。因为痛苦、憋闷或感伤而发出叹息的声音。【大伟说】情绪外露,非人类所特有,动物亦有情绪,悲哀和欢乐所表示的情绪亦是不一样的,会嗷嗷大叫也会低吟痛哭。不同的是,人类的情绪更复杂,更多样,更丰富。唉声叹气,可以说是最基础的情绪,因为无奈而举足无措,不知该如何如何化解,只有独自一人慢慢承受,长吁短叹不知如何是好,其实是无能无力的表现</div> </li> <li><a href="/article/1835493373906087936.htm" title="libyuv之linux编译" target="_blank">libyuv之linux编译</a> <span class="text-muted">jaronho</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>文章目录一、下载源码二、编译源码三、注意事项1、银河麒麟系统(aarch64)(1)解决armv8-a+dotprod+i8mm指令集支持问题(2)解决armv9-a+sve2指令集支持问题一、下载源码到GitHub网站下载https://github.com/lemenkov/libyuv源码,或者用直接用git克隆到本地,如:gitclonehttps://github.com/lemenko</div> </li> <li><a href="/article/1835491605138731008.htm" title="怎么做淘客赚钱(2022最新免费淘客盈利的方法)" target="_blank">怎么做淘客赚钱(2022最新免费淘客盈利的方法)</a> <span class="text-muted">高省_飞智666600</span> <div>很多人都不知道什么是淘宝客,今天小编为大家解答一下吧。淘宝客,现在简称淘客,是时下比较流行的一个词语,特质为淘宝店推广商品获取提成的人,这些人没有自己的产品,只是在淘宝里面选择适合自己的产品,在自己比较熟悉的领域推广,把产品卖出去之后,会从淘宝店家那里获得百分之五到百分之五十左右的佣金。淘宝客付出的是什么呢?时间。你需要花时间去选适合自己推广的产品,需要花时间去选自己的推广方法,如果你打算自己做个</div> </li> <li><a href="/article/1835490218845761536.htm" title="Python爬虫解析工具之xpath使用详解" target="_blank">Python爬虫解析工具之xpath使用详解</a> <span class="text-muted">eqa11</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录Python爬虫解析工具之xpath使用详解一、引言二、环境准备1、插件安装2、依赖库安装三、xpath语法详解1、路径表达式2、通配符3、谓语4、常用函数四、xpath在Python代码中的使用1、文档树的创建2、使用xpath表达式3、获取元素内容和属性五、总结Python爬虫解析工具之xpath使用详解一、引言在Python爬虫开发中,数据提取是一个至关重要的环节。xpath作为一门</div> </li> <li><a href="/article/1835489693953781760.htm" title="锁之缘" target="_blank">锁之缘</a> <span class="text-muted">尘缘诗词原创作品</span> <div>是谁追寻梦的足迹,是谁在偷偷的哭泣,日月隔离在黑白天地情感在心中蔓延的痕迹天与地的距离有多远流失的星晨落入哪片空间不要让泪水模糊双眼心牢中一样充满温暖谁说爱情没有永远白娘子又为何爱许仙蝴蝶墓地展翅翩翩轻歌慢舞袖卷人间传奇千古留爱万年…………月落星飞徘徊是选择不去问自已为合舍不得寂寞本就是痛苦的不在追寻梦中的痕迹才不会失去真实的自已</div> </li> <li><a href="/article/1835489587498151936.htm" title="ARM驱动学习之基础小知识" target="_blank">ARM驱动学习之基础小知识</a> <span class="text-muted">JT灬新一</span> <a class="tag" taget="_blank" href="/search/ARM/1.htm">ARM</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>ARM驱动学习之基础小知识•sch原理图工程师工作内容–方案–元器件选型–采购(能不能买到,价格)–原理图(涉及到稳定性)•layout画板工程师–layout(封装、布局,布线,log)(涉及到稳定性)–焊接的一部分工作(调试阶段板子的焊接)•驱动工程师–驱动,原理图,layout三部分的交集容易发生矛盾•PCB研发流程介绍–方案,原理图(网表)–layout工程师(gerber文件)–PCB板</div> </li> <li><a href="/article/1835489588169240576.htm" title="ARM驱动学习之5 LEDS驱动" target="_blank">ARM驱动学习之5 LEDS驱动</a> <span class="text-muted">JT灬新一</span> <a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/C/1.htm">C</a><a class="tag" taget="_blank" href="/search/%E5%BA%95%E5%B1%82/1.htm">底层</a><a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>ARM驱动学习之5LEDS驱动知识点:•linuxGPIO申请函数和赋值函数–gpio_request–gpio_set_value•三星平台配置GPIO函数–s3c_gpio_cfgpin•GPIO配置输出模式的宏变量–S3C_GPIO_OUTPUT注意点:DRIVER_NAME和DEVICE_NAME匹配。实现步骤:1.加入需要的头文件://Linux平台的gpio头文件#include//三</div> </li> <li><a href="/article/1835489586684456960.htm" title="ARM驱动学习之4小结" target="_blank">ARM驱动学习之4小结</a> <span class="text-muted">JT灬新一</span> <a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>ARM驱动学习之4小结#include#include#include#include#include#defineDEVICE_NAME"hello_ctl123"MODULE_LICENSE("DualBSD/GPL");MODULE_AUTHOR("TOPEET");staticlonghello_ioctl(structfile*file,unsignedintcmd,unsignedlo</div> </li> <li><a href="/article/1835489081480540160.htm" title="C++ | Leetcode C++题解之第409题最长回文串" target="_blank">C++ | Leetcode C++题解之第409题最长回文串</a> <span class="text-muted">Ddddddd_158</span> <a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/Leetcode/1.htm">Leetcode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a> <div>题目:题解:classSolution{public:intlongestPalindrome(strings){unordered_mapcount;intans=0;for(charc:s)++count[c];for(autop:count){intv=p.second;ans+=v/2*2;if(v%2==1andans%2==0)++ans;}returnans;}};</div> </li> <li><a href="/article/1835485375355777024.htm" title="2020-12-24" target="_blank">2020-12-24</a> <span class="text-muted">我和我的天使们</span> <div>阅读《老子的心事》391—403“将欲取之,必固与之”:想要得到什么,首先就要送出什么。我常常对孩子们说,你希望别人怎样对你你就怎样对待别人。想要得到别人的尊重,首先要尊重别人。我希望她们可以不迟到,因为不迟到是对别人的尊重,我就自己就先做到不迟到。哪怕是约朋友逛街,我尽量准时赴约。我严格要求孩子们,也同样严格要求自己,我跟孩子们一起把好的品格变成习惯。“是谓微明”:这就是微妙的智慧。看起来很少很</div> </li> <li><a href="/article/1835484420023349248.htm" title="18、架构-可观测性之聚合度量" target="_blank">18、架构-可观测性之聚合度量</a> <span class="text-muted">大树~~</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>聚合度量聚合度量是指对系统运行时产生的各种指标数据进行收集、聚合和分析,以了解系统的健康状况和性能表现。聚合度量是可观测性的关键组成部分,通过对度量数据的分析,可以及时发现系统中的异常和瓶颈。以下是对聚合度量各个方面的详细解析,并结合具体的数据案例和技术支撑。指标收集收集系统运行时产生的各种指标数据是聚合度量的基础。常见的指标包括CPU使用率、内存使用率、请求处理时间、请求数、错误率等。以下是指标</div> </li> <li><a href="/article/1835483474883080192.htm" title="学习“论语”-第59天" target="_blank">学习“论语”-第59天</a> <span class="text-muted">春峰轩</span> <div>12.14子张问政。子曰:“居之无倦,行之以忠。”子张问为政之道。孔子说:“在位尽职不懈怠,执行政令要忠诚。”12.15子曰:“博学于文,约之以礼,亦可以弗畔矣夫!”孔子说:“君子广泛地学习文献,并且用礼节约束自己,也就不会离经叛道了。”12.16子曰:“君子成人之美,不成人之恶。小人反是。”孔子说:“君子成全别人的好事,而不助长别人的坏处。小人则与此相反行事。”知识点:“成人之美,不成人之恶”贯</div> </li> <li><a href="/article/1835480809147035648.htm" title="2021-11-15" target="_blank">2021-11-15</a> <span class="text-muted">宙火</span> <div>我给宋小姐写了首诗,是我在课上因思恋宋小姐而写的。“自古多情是唐宋,从来双飞归巢燕。邻家小女相聘婷,常使春意荡漾我。不知单思可为爱,惟愿一心付之汝。”我拿给宋小姐看了,她说我写得很棒。我很开心,但又不是那么开心。宋小姐是回复我了,但也只是说我写得很棒,对我诗句中蕴藏的真切感情,不知道是真的没发现,还是装作没发现。但我不深究,只是这样,我就很开心了。我答应宋小姐,一天给她写一首诗。</div> </li> <li><a href="/article/1835480290458431488.htm" title="《我的青葱岁月之缘来是你》 第二章 迎新晚会" target="_blank">《我的青葱岁月之缘来是你》 第二章 迎新晚会</a> <span class="text-muted">思源思缘思怨</span> <div>“怎么你也来了这里?”我愉快的问到,想着这是上天给的缘分吗?我还没去找他竟然就相遇了。那个让我开心的老乡。“你好,我也是舞蹈社的新人啊!”他说,笑起来回答我,眼睛弯弯的。“这么巧,我叫吴倩,你叫啥?”“我叫韩欢,你也是B市人吧,c中毕业的?”“我不是,我是f中的,不然肯定会认识你的”“是吗?以后多多关照了”他还冲我眨了眨眼睛。内心一阵悸动,这是……回到寝室,我兴奋的告诉我的室友这个事情,我再次觉得</div> </li> <li><a href="/article/1835479002458976256.htm" title="数据结构之哈希表" target="_blank">数据结构之哈希表</a> <span class="text-muted">X同学的开始</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%95%A3%E5%88%97%E8%A1%A8/1.htm">散列表</a> <div>哈希表(散列表)出现的原因在顺序表中查找时,需要从表头开始,依次遍历比较a[i]与key的值是否相等,直到相等才返回索引i;在有序表中查找时,我们经常使用的是二分查找,通过比较key与a[i]的大小来折半查找,直到相等时才返回索引i。最终通过索引找到我们要找的元素。但是,这两种方法的效率都依赖于查找中比较的次数。我们有一种想法,能不能不经过比较,而是直接通过关键字key一次得到所要的结果呢?这时,</div> </li> <li><a href="/article/1835478626196353024.htm" title="厦门自由行之第一天:" target="_blank">厦门自由行之第一天:</a> <span class="text-muted">大苏子在广漂</span> <div>厦门三人行之杂记出发前一天:12️28日下午15:00从广州粗发,来深圳集合!但是中间发生一个小插曲,验票时候发现车票不见了,或许也是一场恶作剧,对于不排队的人,忍不住说了一下,接下来就发现车票不见了,已经是拿在手上!不过还好,可以凭借购票订单查看到信息,所以有惊无险,顺利进站!晚上三个人一起去吃了柠檬鱼,说实话,那会,感觉美吃饱,啊哈哈!晚上回来,两个人又开始彻夜长谈,发现身边优秀的人,一大把,</div> </li> <li><a href="/article/1835474694875213824.htm" title="“这才好”麻辣香锅 能够增加人身体的免疫能力" target="_blank">“这才好”麻辣香锅 能够增加人身体的免疫能力</a> <span class="text-muted">小补文知</span> <div>我就来介绍一种香锅,那就是“这才好”麻辣香锅,它产出于著名的蜀地文化,具有悠久的历史土家风味,麻辣鲜香,健康安全。采用传统秘制麻辣香锅油辣子,还有贴心加料“孜然包”满足人们的不同口味需求,香锅底料辣椒,微辣且香,含有丰富微量元素和维生素,具有辣而不躁,味道纯正,醇厚温和。花椒采用历史悠久,被列为宫廷供品的“贡椒”的汉源花椒。我们还挑选了“川菜之魂”郫县豆瓣的鼻祖品牌豆瓣,保留最原始的郫县豆瓣味道,</div> </li> <li><a href="/article/1835474057974345728.htm" title="《太虚游》第六十二章。玄牝之威。" target="_blank">《太虚游》第六十二章。玄牝之威。</a> <span class="text-muted">古楼臭道士</span> <div>“好好好,流云这孩子深得我心,想必长爻知道是你的话定然会惊喜不已的。”白玄牝听得风流云应了下来,脸色慈和,伸手在他头顶轻轻抚了抚,如同抚在怀中九尾小狐一样自然,极其温柔。身后的四位青丘长老同时一怔,嘴角微动,似要开口劝阻。风流云只感到一道霞光瑞气如有实质一般顺着头顶百会大穴直沉在下丹田内,随后这股气息又逐渐凝聚,似乎给自己吃了什么东西一般。啊喔不好,这祖奶奶该不会是看中我这肉身,像人魔一样,要给她</div> </li> <li><a href="/article/1835469798838988800.htm" title="Python实现简单的机器学习算法" target="_blank">Python实现简单的机器学习算法</a> <span class="text-muted">master_chenchengg</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%8A%9E%E5%85%AC%E6%95%88%E7%8E%87/1.htm">办公效率</a><a class="tag" taget="_blank" href="/search/python%E5%BC%80%E5%8F%91/1.htm">python开发</a><a class="tag" taget="_blank" href="/search/IT/1.htm">IT</a> <div>Python实现简单的机器学习算法开篇:初探机器学习的奇妙之旅搭建环境:一切从安装开始必备工具箱第一步:安装Anaconda和JupyterNotebook小贴士:如何配置Python环境变量算法初体验:从零开始的Python机器学习线性回归:让数据说话数据准备:从哪里找数据编码实战:Python实现线性回归模型评估:如何判断模型好坏逻辑回归:从分类开始理论入门:什么是逻辑回归代码实现:使用skl</div> </li> <li><a href="/article/1835468961832071168.htm" title="生命如花" target="_blank">生命如花</a> <span class="text-muted">坦释空</span> <div>每个人的心中都有一株妙莲花。这是禅家语。禅家总是站在理性的高处,以超越红尘的洒脱来参悟人生和自省生命。那么,凡俗中人呢?生如夏花之绚丽,死如秋叶之静美。这是诗人语。多少人在赞美:姑娘好像花一样!又有多少人在咏歌:花儿与少年。的确,人生如花。花一样的生命,理应自诞生之日起,就一瓣一瓣地绽放她的美丽与清香,使这个原本死寂荒凉的世界五彩缤纷,充满快乐。事实上,人类自诞生起,就一代一代地做着这方面的努力,</div> </li> <li><a href="/article/1835466922729238528.htm" title="二婚到底是领证好还是不领证好?" target="_blank">二婚到底是领证好还是不领证好?</a> <span class="text-muted">孟妃青</span> <div>伟人讲过,不以结婚为目的的谈恋爱,都是耍流氓!离婚了,再找对象,感情到了一定程度,领证结婚是水到渠成的事,再说我中华泱泱大国,有礼仪之邦的称谓,领证更是体现了尊重男女双方的行为。如果认为二婚就没必要领证了,只能说明,男女之间都暗藏心思,心不往一处走,日子过不好的。即便他们感情再深,都不是合法夫妻,只是名不正言不顺的同居关系。假如不要二人共同的孩子还好,就怕有了孩子,没领证,到时给孩子上户口都成问题</div> </li> <li><a href="/article/1835463609384267776.htm" title="《华杉讲透王阳明传习录》" target="_blank">《华杉讲透王阳明传习录》</a> <span class="text-muted">微微微微神</span> <div>〔5〕希渊问:“圣人可学而至。然伯夷伊尹于孔子,才力终不同。其同谓之圣者安在”?先生曰,“圣人之所以为圣,只是其心纯乎天理,而无人欲之杂。犹精金之所以为精,但以其成色足而无铜铅之杂也。人到纯乎天理方是圣。金到足色方是精。然圣人之才力,亦有大小不同。犹金之分两有轻重。尧舜犹万镒。文王孔子犹九千镒。禹汤武王犹七八千镒。伯夷伊尹犹四五千镒。才力不同,而纯乎天理则同。皆可谓之圣人。犹分两虽不同,而足色则同</div> </li> <li><a href="/article/1835462836151742464.htm" title="“日舍一物”之42——活在当下,并向前看" target="_blank">“日舍一物”之42——活在当下,并向前看</a> <span class="text-muted">記二十一</span> <div>这件衣服已经有十五、六年了(突然发现我可真是能囤东西啊)。这原本是一件我非常喜欢的衣服,无论是样子,还是质地。照片拍的比较渣,但其实,白色棉质衣料中,尚织有银色的丝线,在阳光或灯光下,会闪亮,不晃眼,但很漂亮。或许正是因为太喜欢了,所以一直保留着,尽管很多年都没有再穿过了。因为不合适了。首先是随着年龄的增长,尽管体重总量没有太多变化(哦,其实还是涨了)。但是体型还是和十几年前不一样了,最明显的就是</div> </li> <li><a href="/article/119.htm" title="Spring中@Value注解,需要注意的地方" target="_blank">Spring中@Value注解,需要注意的地方</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/%40Value/1.htm">@Value</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作 1、在applicationContext.xml文件(或引用文件中)中配置properties文件 <bean id="appProperty" class="org.springframework.beans.fac</div> </li> <li><a href="/article/246.htm" title="mongoDB 分片" target="_blank">mongoDB 分片</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>    mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。     第一步启动两台以上的mongo服务 &nb</div> </li> <li><a href="/article/373.htm" title="OVER(PARTITION BY)函数用法" target="_blank">OVER(PARTITION BY)函数用法</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>这篇写得很好,引自 http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数用法 2010年10月26日 OVER(PARTITION BY)函数介绍 开窗函数        &nb</div> </li> <li><a href="/article/500.htm" title="Android开发中,ADB server didn't ACK 解决方法" target="_blank">Android开发中,ADB server didn't ACK 解决方法</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91/1.htm">Android开发</a> <div>首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。   一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。 参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题 简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。 &nb</div> </li> <li><a href="/article/627.htm" title="canvas中的像素绘制问题" target="_blank">canvas中的像素绘制问题</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/canvas/1.htm">canvas</a> <div>pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。 2.如果绘制点为一个像素的</div> </li> <li><a href="/article/754.htm" title="编码乱码问题" target="_blank">编码乱码问题</a> <span class="text-muted">灵静志远</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81/1.htm">编码</a> <div>1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。 3、getBytes()、getByte</div> </li> <li><a href="/article/881.htm" title="java 求几个月后的日期" target="_blank">java 求几个月后的日期</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/calendar/1.htm">calendar</a><a class="tag" taget="_blank" href="/search/getinstance/1.htm">getinstance</a> <div>Date plandate = planDate.toDate(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(plandate); // 取得三个月后时间 cal.add(Calendar.M</div> </li> <li><a href="/article/1008.htm" title="数据库设计的三大范式(通俗易懂)" target="_blank">数据库设计的三大范式(通俗易懂)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%8D%E4%B9%A0/1.htm">数据库复习</a> <div>关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库. 目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。</div> </li> <li><a href="/article/1135.htm" title="想学工作流怎么入手" target="_blank">想学工作流怎么入手</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/jbpm/1.htm">jbpm</a> <div>工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。 系统学习工作流,很重要的一本书《JBPM工作流开发指南》。 本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。 1  首先要</div> </li> <li><a href="/article/1262.htm" title="Context和SQLiteOpenHelper创建数据库" target="_blank">Context和SQLiteOpenHelper创建数据库</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Context%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">Context创建数据库</a> <div>       一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper     一:SQLiteOpenHelper创建数据库:   1,SQLi</div> </li> <li><a href="/article/1389.htm" title="浅谈group by和distinct" target="_blank">浅谈group by和distinct</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/group+by/1.htm">group by</a><a class="tag" taget="_blank" href="/search/distinct/1.htm">distinct</a> <div>        group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。         譬如:统计每id数并且只显示数大于3 select id ,count(id) from ta</div> </li> <li><a href="/article/1516.htm" title="vi opertion" target="_blank">vi opertion</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/opration/1.htm">opration</a><a class="tag" taget="_blank" href="/search/vi/1.htm">vi</a> <div>进入 command mode (命令行模式) 按 esc 键 再按 shift + 冒号 注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】 一、文件操作 1.1、强制退出不保存 $ q! 1.2、保存 $ w 1.3、保存并退出 $ wq 1.4、刷新或重新加载已打开的文件 $ e 二、光标移动 2.1、跳到指定行 数字</div> </li> <li><a href="/article/1643.htm" title="【Spark十四】深入Spark RDD第三部分RDD基本API" target="_blank">【Spark十四】深入Spark RDD第三部分RDD基本API</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>  对于K/V类型的RDD,如下操作是什么含义?   val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5)) rdd.reduceByKey(_+_).collect  reduceByKey在这里的操作,是把</div> </li> <li><a href="/article/1770.htm" title="java类加载机制" target="_blank">java类加载机制</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a> <div>java类加载机制 1.java类加载器的树状结构 引导类加载器 ^ | 扩展类加载器 ^ | 系统类加载器 java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。 虚拟机区分一个Cla</div> </li> <li><a href="/article/1897.htm" title="动态添加文本框" target="_blank">动态添加文本框</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E6%A1%86/1.htm">文本框</a> <div>  <script>     var num=1; function AddInput() {      var str="";     str+="<input </div> </li> <li><a href="/article/2024.htm" title="读《研磨设计模式》-代码笔记-单例模式" target="_blank">读《研磨设计模式》-代码笔记-单例模式</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ public class Singleton { } /* * 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题 */ class LazySingleton</div> </li> <li><a href="/article/2151.htm" title="iOS应用打包发布常见问题" target="_blank">iOS应用打包发布常见问题</a> <span class="text-muted">chenhbc</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/iOS%E5%8F%91%E5%B8%83/1.htm">iOS发布</a><a class="tag" taget="_blank" href="/search/iOS%E4%B8%8A%E4%BC%A0/1.htm">iOS上传</a><a class="tag" taget="_blank" href="/search/iOS%E6%89%93%E5%8C%85/1.htm">iOS打包</a> <div>这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。   1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc</div> </li> <li><a href="/article/2278.htm" title="工作流复杂拓扑结构处理新思路" target="_blank">工作流复杂拓扑结构处理新思路</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/OO/1.htm">OO</a> <div> 我们走的设计路线和国外的产品不太一样,不一样在哪里呢?  国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很</div> </li> <li><a href="/article/2405.htm" title="oracle 11g新特性Flashback data archive" target="_blank">oracle 11g新特性Flashback data archive</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>1. 什么是flashback data archive Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。 </div> </li> <li><a href="/article/2532.htm" title="多叉树:2-3-4树" target="_blank">多叉树:2-3-4树</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/%E6%A0%91/1.htm">树</a> <div>    平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:     1、有一个数据项的节点总是有2个子节点(称为2-节点)     2、有两个数据项的节点总是有3个子节点(称为3-节</div> </li> <li><a href="/article/2659.htm" title="C语言学习七动态分配 malloc的使用" target="_blank">C语言学习七动态分配 malloc的使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a><a class="tag" taget="_blank" href="/search/malloc/1.htm">malloc</a> <div>/* 2013年3月15日15:16:24 malloc 就memory(内存) allocate(分配)的缩写 本程序没有实际含义,只是理解使用 */ # include <stdio.h> # include <malloc.h> int main(void) { int i = 5; //分配了4个字节 静态分配 int * p </div> </li> <li><a href="/article/2786.htm" title="Objective-C编码规范[译]" target="_blank">Objective-C编码规范[译]</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">代码规范</a> <div>  原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : raywenderlich.com Objective-C编码规范 译者 : Sam Lau </div> </li> <li><a href="/article/2913.htm" title="0.性能优化-目录" target="_blank">0.性能优化-目录</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。 主要内容包括: 一、性能测试指标 吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间 http://frank1234.iteye.com/blog/2180305 二、性能测试策略 生产环境相同 基准测试 预热等 htt</div> </li> <li><a href="/article/3040.htm" title="Java父类取得子类传递的泛型参数Class类型" target="_blank">Java父类取得子类传递的泛型参数Class类型</a> <span class="text-muted">happyqing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a><a class="tag" taget="_blank" href="/search/%E7%88%B6%E7%B1%BB/1.htm">父类</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%B1%BB/1.htm">子类</a><a class="tag" taget="_blank" href="/search/Class/1.htm">Class</a> <div>  import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class BaseDao<T> { public void getType() { //Class<E> clazz =</div> </li> <li><a href="/article/3167.htm" title="跟我学SpringMVC目录汇总贴、PDF下载、源码下载" target="_blank">跟我学SpringMVC目录汇总贴、PDF下载、源码下载</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>  ----广告-------------------------------------------------------------- 网站核心商详页开发 掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架; 掌握数据库技术,表设计和索引优化,分库分表/读写分离; 了解缓存技术,熟练使用如Redis/Memcached等主流技术; 了解Ngin</div> </li> <li><a href="/article/3294.htm" title="the HTTP rewrite module requires the PCRE library" target="_blank">the HTTP rewrite module requires the PCRE library</a> <span class="text-muted">流浪鱼</span> <a class="tag" taget="_blank" href="/search/rewrite/1.htm">rewrite</a> <div>./configure: error: the HTTP rewrite module requires the PCRE library. 模块依赖性Nginx需要依赖下面3个包 1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) 2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ ) 3. s</div> </li> <li><a href="/article/3421.htm" title="第12章 Ajax(中)" target="_blank">第12章 Ajax(中)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3548.htm" title="Optimize query with Query Stripping in Web Intelligence" target="_blank">Optimize query with Query Stripping in Web Intelligence</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence and a very straightfoward video http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936</div> </li> <li><a href="/article/3675.htm" title="Java开发者写SQL时常犯的10个错误" target="_blank">Java开发者写SQL时常犯的10个错误</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>1、不用PreparedStatements   有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个:   他们对PreparedStatements不了解   他们认为使用PreparedStatements太慢了   他们认为写Prepar</div> </li> <li><a href="/article/3802.htm" title="世纪互联与结盟有感" target="_blank">世纪互联与结盟有感</a> <span class="text-muted">阿尔萨斯</span> <div> 10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。 全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。 众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>