ES6 -- async 函数

async函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await命令就是内部then命令的语法糖。

1.基本用法

async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。

async function getStockPriceByName(name) {
  const symbol = await getStockSymbol(name);
  const stockPrice = await getStockPrice(symbol);
  return stockPrice;
}

getStockPriceByName('goog').then(function (result) {
  console.log(result);
});

2.语法 

async函数返回一个 Promise 对象。

async函数内部return语句返回的值,会成为then方法回调函数的参数。

async function f() {
  return 'hello world';
}

f().then(v => console.log(v))
// "hello world"

上面代码中,函数f内部return命令返回的值,会被then方法回调函数接收到。

async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到。

async function f() {
  throw new Error('出错了');
}

f().then(
  v => console.log(v),
  e => console.log(e)
)
// Error: 出错了

3.Promise 对象的状态变化 

async函数返回的 Promise 对象,必须等到内部所有await命令后面的 Promise 对象执行完,才会发生状态改变,除非遇到return语句或者抛出错误。也就是说,只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数。

下面是一个例子。

async function getTitle(url) {
  let response = await fetch(url);
  let html = await response.text();
  return html.match(/([\s\S]+)<\/title>/i)[1];
}
getTitle('https://tc39.github.io/ecma262/').then(console.log)
// "ECMAScript 2017 Language Specification"
</code></pre> 
  <p>上面代码中,函数<code>getTitle</code>内部有三个操作:抓取网页、取出文本、匹配页面标题。只有这三个操作全部完成,才会执行<code>then</code>方法里面的<code>console.log</code>。</p> 
  <p><span style="color:#f33b45;"><strong>4.使用注意点</strong></span></p> 
  <p><code>await</code>命令后面的<code>Promise</code>对象,运行结果可能是<code>rejected</code>,所以最好把<code>await</code>命令放在<code>try...catch</code>代码块中。</p> 
  <pre><code>async function myFunction() {
  try {
    await somethingThatReturnsAPromise();
  } catch (err) {
    console.log(err);
  }
}

// 另一种写法

async function myFunction() {
  await somethingThatReturnsAPromise()
  .catch(function (err) {
    console.log(err);
  });
}</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1305567191231401984"></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">你可能感兴趣的:(ES6)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1898221052241178624.htm"
                           title="在 JavaScript 中,可以通过以下几种方式判断函数是否是通过 new 关键字调用的" target="_blank">在 JavaScript 中,可以通过以下几种方式判断函数是否是通过 new 关键字调用的</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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>在JavaScript中,可以通过以下几种方式判断函数是否是通过new关键字调用的:方法1:使用new.target(ES6+推荐)functionMyClass(){if(new.target===MyClass){console.log('通过new调用');}else{console.log('未通过new调用');}}//测试newMyClass();//输出"通过new调用"MyClas</div>
                    </li>
                    <li><a href="/article/1898173518860840960.htm"
                           title="React基础之类组件" target="_blank">React基础之类组件</a>
                        <span class="text-muted">青红光硫化黑</span>
<a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>类组件是基于ES6类来编写的组件,使用React.Component作为基类,并定义render方法,是一种定义组件的方式实现按钮计数import{Component}from"react";classCounterextendsComponent{//1.状态变量2.事件回调3.UI(JSX)//1.定义状态变量state={count:0}//2.定义事件回调setCount=()=>{//修</div>
                    </li>
                    <li><a href="/article/1898004316325736448.htm"
                           title="JavaScript ES6 - 函数扩展" target="_blank">JavaScript ES6 - 函数扩展</a>
                        <span class="text-muted">黑木令</span>
<a class="tag" taget="_blank" href="/search/ES6%E8%AF%AD%E6%B3%95%E8%A7%A3%E6%9E%90/1.htm">ES6语法解析</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>本章节的主要内容是:ES6函数扩展一:函数扩展1.函数新增特性:1.参数默认值2.rest参数3.扩展运算符4.箭头函数5.this绑定6.尾调用如图所示:1.ES6函数参数默认值/**1.函数参数默认值1.ES6设置默认值,直接写在参数定义的后面。2.细节知识点:1.ES6参数变量是默认声明的,所以在函数体中不能用let/const再次声明,否则会报错。2.ES6默认值不是传值,而是每次都重新计</div>
                    </li>
                    <li><a href="/article/1897998769962676224.htm"
                           title="数组扩展【ES6】" target="_blank">数组扩展【ES6】</a>
                        <span class="text-muted">幸运小圣</span>
<a class="tag" taget="_blank" href="/search/ES6-13/1.htm">ES6-13</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>迈克尔·德尔:“困难只是暂时的,放弃则是永恒的。坚持下去,你会找到解决的办法。”目录数组扩展:扩展运算符:Array.from():Array.of():find:findIndex:与find相对比的findLast【ES13】:与findIndex相对比的findLastIndex【ES13】:fill:flat:flatMap:数组扩展:扩展运算符:能够快速的进行数组的复制、数组的合并、与解</div>
                    </li>
                    <li><a href="/article/1897993976984694784.htm"
                           title="es6+函数语法规范(二):函数默认参数、判断函数参数个数、函数作用域、扩展运算符、箭头函数、es10函数扩展" target="_blank">es6+函数语法规范(二):函数默认参数、判断函数参数个数、函数作用域、扩展运算符、箭头函数、es10函数扩展</a>
                        <span class="text-muted">m0_50134014</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>文章目录一、默认参数二、判断函数参数个数三、属性与作用域3.1length属性3.2name属性3.3作用域四、扩展运算符4.1SpreadOperator把数组或伪数组展开成用逗号隔开的值4.2RestParameter用来解决函数参数不确定的场景五、箭头函数5.1箭头函数与普通函数5.2参数和返回值的讨论5.3箭头函数与普通函数中this的指向练习六、ES10扩展一、默认参数对于函数而言,经常</div>
                    </li>
                    <li><a href="/article/1897988414054133760.htm"
                           title="Es6中promise的解释用法以及何为同步异步、回调函数和回调地狱?" target="_blank">Es6中promise的解释用法以及何为同步异步、回调函数和回调地狱?</a>
                        <span class="text-muted">HHR_hr</span>
<a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>一.什么是回调函数?1.含义★回调函数是一种特殊的函数,它作为参数传递给另一个函数,并在特定事件或条件发生时被调用执行。2.回调函数在编程中扮演着重要的角色,主要用于以下场景:①事件处理:在图形用户界面(GUI)或其他事件驱动的应用程序中,回调函数常用于处理用户交互和事件触发。②异步编程:在异步编程中,回调函数用于在任务完成时通知调用方,而不必等待任务的完成,从而提高应用程序的响应性。③处理操作系</div>
                    </li>
                    <li><a href="/article/1897467409518882816.htm"
                           title="es6常见知识点" target="_blank">es6常见知识点</a>
                        <span class="text-muted">yinxiangzhongqing</span>
<a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/1.htm">原型模式</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>官方文档:[https://es6.ruanyifeng.com/](https://es6.ruanyifeng.com/)一、Class1、ClassClass只是一个语法糖,其功能用es5也能实现,但是比es5更符合类的期待定义:constructor代表构造方法,而this指向new生成的实例定义类方法时,可以不使用function注意:类的内部所有定义的方法,都是不可枚举的(non-en</div>
                    </li>
                    <li><a href="/article/1897179471480418304.htm"
                           title="解锁 ES6 访问器属性 Getter & Setter" target="_blank">解锁 ES6 访问器属性 Getter & Setter</a>
                        <span class="text-muted">代码里的小猫咪</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%99%A8%E5%B1%9E%E6%80%A7/1.htm">访问器属性</a><a class="tag" taget="_blank" href="/search/Getter/1.htm">Getter</a><a class="tag" taget="_blank" href="/search/Setter/1.htm">Setter</a>
                        <div>在JavaScriptES6及其后续版本中,可以使用访问器属性(AccessorProperties)来定义getter和setter,从而拦截对象属性的访问和赋值。这种机制不仅提供了更灵活的属性管理方式,还能增强数据的封装性和安全性。1.访问器属性(Getters和Setters)在ES6的class语法中,可以使用get和set关键字定义访问器属性,这样可以像访问普通属性一样调用方法,而不需要</div>
                    </li>
                    <li><a href="/article/1897104552864313344.htm"
                           title="【一】JavaScript能力提升---类对象、call()、apply()、bind()" target="_blank">【一】JavaScript能力提升---类对象、call()、apply()、bind()</a>
                        <span class="text-muted">是洋洋a</span>
<a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>一、类对象1.1概念类对象是一种用于创建和管理对象的架构或概念1.2定义方式1.2.1基于ES6类语法的类对象classPerson{constructor(name,age){this.name=name;this.age=age;}sayHello(){console.log(`Hello,mynameis${this.name}andIam${this.age}yearsold.`);}}c</div>
                    </li>
                    <li><a href="/article/1897000899214110720.htm"
                           title="ES6 中 module 备忘清单,你可能知道 module 还可以这样用!" target="_blank">ES6 中 module 备忘清单,你可能知道 module 还可以这样用!</a>
                        <span class="text-muted">@大迁世界</span>

                        <div>这是一份备忘单,展示了不同的导出方式和相应的导入方式。它实际上可分为3种类型:名称,默认值和列表????// 命名导入/导出 export const name = 'value'import { name } from '...'// 默认导出/导入export default 'value'import anyName from '...'// 重命名导入/导出 export { name a</div>
                    </li>
                    <li><a href="/article/1896473294920544256.htm"
                           title="app弱网测试" target="_blank">app弱网测试</a>
                        <span class="text-muted">tcc374254426</span>
<a class="tag" taget="_blank" href="/search/app%E4%B8%93%E9%A1%B9%E6%B5%8B%E8%AF%95/1.htm">app专项测试</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                        <div>目录目录1.引言2.什么是弱网测试3.测试用例4.弱网测试工具4.1.charles4.2.QNET5.环境安装5.1.安装charles5.2.安装QNET5.3.安装模拟器5.4.连接设备6.使用charles6.1.将电脑设置为代理服务器6.2.查看电脑IP6.3.手机设置电脑为代理6.4.HTTPS6.5.设置SSL代理6.6.电脑安装证书6.7.手机安装证书6.8.charles模拟不同</div>
                    </li>
                    <li><a href="/article/1896428282111389696.htm"
                           title="JavaScript+CSS2+CSS3中文手册大全" target="_blank">JavaScript+CSS2+CSS3中文手册大全</a>
                        <span class="text-muted">远方之巅</span>

                        <div>本文还有配套的精品资源,点击获取简介:JavaScript是一种用于网页动态效果和交互功能的脚本语言,与HTML和CSS共同构建富互联网应用。CSS2和CSS3作为网页样式的语言,增强了网页设计的布局控制和用户体验。本手册集提供了这三种技术的详细指南,包括基本语法、函数、对象操作、DOM操作、事件处理、BOM、AJAX以及ES6的新特性,同时深入介绍了CSS2的盒模型、布局技巧和CSS3的媒体查询</div>
                    </li>
                    <li><a href="/article/1896071378512179200.htm"
                           title="2025前端技能" target="_blank">2025前端技能</a>
                        <span class="text-muted">家里有只小肥猫</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>前端开发是现代Web开发中非常重要的一部分,涉及众多技术和工具。以下是一些在前端开发工作中常见的需求和技术:1.技术基础HTML/CSS:构建页面结构和样式。JavaScript:实现交互逻辑和动态功能。ES6+:使用现代JavaScript语法和特性。DOM操作:操作网页元素和事件处理。浏览器兼容性:确保代码在不同浏览器中正常运行。跨设备适配:确保页面在不同设备(PC、手机、平板)上正常显示。2</div>
                    </li>
                    <li><a href="/article/1896021418513068032.htm"
                           title="谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他" target="_blank">谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他</a>
                        <span class="text-muted">INFINI Labs</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
                        <div>这是ES7.10相较于ES6.8新增内容的最后一篇,主要涉及算分方法和同义词加载的部分。自定义算分:script_score2.0Elasticsearch7.0引入了新一代的函数分数功能,称为script_score查询。这一新功能提供了一种更简单、更灵活的方式来为每条记录生成排名分数。script_score查询由一组函数构成,包括算术函数和距离函数,用户可以根据需要混合和匹配这些函数,以构建</div>
                    </li>
                    <li><a href="/article/1895675453901959168.htm"
                           title="ES6 特性全面解析与应用实践" target="_blank">ES6 特性全面解析与应用实践</a>
                        <span class="text-muted">李木子wb</span>
<a class="tag" taget="_blank" href="/search/es/1.htm">es</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>1、letlet关键字用来声明变量,使用let声明的变量有几个特点:1)不允许重复声明2)块儿级作用域3)不存在变量提升4)不影响作用域链5)暂时性死区6)不与顶级对象挂钩在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”。该变量在声明之前使用都属于“暂时性死区“。应用场景:以后声明变量使用let就对了//声明变量格式leta;letb,c,d;lete=1</div>
                    </li>
                    <li><a href="/article/1895631196713447424.htm"
                           title="ES6笔记总结(Xmind格式):第二天" target="_blank">ES6笔记总结(Xmind格式):第二天</a>
                        <span class="text-muted">星河路漫漫</span>
<a class="tag" taget="_blank" href="/search/ES6%E7%AC%94%E8%AE%B0%E6%80%BB%E7%BB%93/1.htm">ES6笔记总结</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>Xmind鸟瞰图:简单文字总结:ES6知识总结Proxy(代理):1.作用:实现数据的私有化处理2.target目标对象handler处理函数3.处理函数中有两个方法:get,set4.读取数据会触发get方法,写入数据会触发set方法Reflect(反射)1.作用:用于拦截并操作JavaScript对象的方法2.提供与Object内置方法相同功能的方法3.提供更安全的操作4.作为Proxy的默认</div>
                    </li>
                    <li><a href="/article/1895630438504919040.htm"
                           title="ES6 笔记总结" target="_blank">ES6 笔记总结</a>
                        <span class="text-muted">js_user</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80/1.htm">前端基础</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>1.变量var可以重复声明,无法限制修改,函数级(没有块级作用域)let不能重复声明,块级作用域,变量-可以修改const不能重复声明,块级作用域,常量-不能修改2.箭头函数1.方便如果只有一个参数,()可以省略如果只有一个return,{}可以省略修正this3.参数扩展1.收集剩余的参数functionshow(a,b,...args){剩余的参数必须是最后一个}展开数组展开后的效果,跟直接打</div>
                    </li>
                    <li><a href="/article/1895628671163625472.htm"
                           title="阮一峰ES6笔记总结" target="_blank">阮一峰ES6笔记总结</a>
                        <span class="text-muted">china-yun</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                        <div>ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScript方言还有JScript和ActionScript)。日常场合,这两个词是可以互换的。let块级作用域(局部声明,局部使用)不存在变量提升</div>
                    </li>
                    <li><a href="/article/1895614674838286336.htm"
                           title="【ES6】let 和 const 详解" target="_blank">【ES6】let 和 const 详解</a>
                        <span class="text-muted">一颗不甘坠落的流星</span>
<a class="tag" taget="_blank" href="/search/ES6/1.htm">ES6</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/let/1.htm">let</a><a class="tag" taget="_blank" href="/search/const/1.htm">const</a>
                        <div>文章目录一、let和const共同点1.不重复声明2.无变量提升3.作用域限制4.暂时性死区二、let和const不同点1.声明时区别2.赋值时区别一、let和const共同点我们以前都是使用var关键字来声明变量的在ES6的时候,多了两个关键字let和const,也是用来声明变量的,只不过和var有一些区别1.不重复声明let和const不允许在相同作用域内,重复声明同一个变量var关键字/*使</div>
                    </li>
                    <li><a href="/article/1895614675626815488.htm"
                           title="ES6的let和const,一篇文章就够了" target="_blank">ES6的let和const,一篇文章就够了</a>
                        <span class="text-muted">小常--</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/ES6/1.htm">ES6</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>ES6系列之let和constlet声明符ES6新增的let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。注意let声明变量不会进行变量提升无法在声明之前使用let声明的变量let声明的变量不容许重复声明预解析阶段会对let声明的变量锁定所有其他在同一个域下的声明都会报错let会开启块级作用域基础特性if(true){leta='let';varb=</div>
                    </li>
                    <li><a href="/article/1895610004661137408.htm"
                           title="ES6学习——let和const变量" target="_blank">ES6学习——let和const变量</a>
                        <span class="text-muted">鹿蹊zz</span>
<a class="tag" taget="_blank" href="/search/ES6-ES11/1.htm">ES6-ES11</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a>
                        <div>一、ES6简介1、ES6的概念ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范。ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称,特指该年发布的正式版本的语言标准。2、为什么使用ES6每一次标准的诞生都意味着语言的完善,功能的加强。</div>
                    </li>
                    <li><a href="/article/1895605203323908096.htm"
                           title="es6 let const" target="_blank">es6 let const</a>
                        <span class="text-muted">快乐的小z</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%A7%AF%E7%B4%AF/1.htm">前端积累</a><a class="tag" taget="_blank" href="/search/let/1.htm">let</a><a class="tag" taget="_blank" href="/search/const/1.htm">const</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>在es6下改var为let或者const。var可以完全替换成let。需要注意的是let与const区别并不大,let是变量,const是常量。只要定义的不会改变就用constES6新增let和const两个变量声明命令,他们都具有如下特性:1、块局作用域;2、不存在变量提升,一定声明后才能使用;3、暂时性死区,在代码块内使用let命令声明变量之前,该变量都是不可用的,不受外部变量影响;4、在相同</div>
                    </li>
                    <li><a href="/article/1895316745971888128.htm"
                           title="探秘 ES6 模板字符串:从基础语法到高级应用的全方位解析" target="_blank">探秘 ES6 模板字符串:从基础语法到高级应用的全方位解析</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/vue.js/1.htm">vue.js</a>
                        <div>前言:家人们,大家好!今天分享一篇文章给大家!要是文章对你有帮助,激发了你的灵感,求个收藏+关注啦~后续还有超多惊喜,别错过!目录引言一、基础语法:告别传统字符串拼接的繁琐(一)传统字符串拼接的困境(二)模板字符串的简洁之美二、多行字符串:轻松实现复杂文本布局(一)传统方式处理多行字符串的难题(二)模板字符串的多行支持三、表达式求值:动态生成字符串内容(一)嵌入简单变量(二)进行数学运算(三)调用</div>
                    </li>
                    <li><a href="/article/1895297696474918912.htm"
                           title="通俗理解闭包" target="_blank">通俗理解闭包</a>
                        <span class="text-muted">yuren_xia</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF/1.htm">前端技术</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>JavaScript在ES6之前并没有类的概念,但通过原型链和闭包,开发者可以实现类似继承和封装的功能(原型链实现继承,闭包实现封装)。ES6引入了类语法,但闭包仍然是实现私有数据封装的重要手段之一。另外,使用闭包还可用于保存上下文信息等场景。一、定义从函数角度闭包是指有权访问另一个函数作用域中的变量的函数。即使外部函数已经返回,闭包仍然可以访问外部函数内部的变量。例如:functionouter</div>
                    </li>
                    <li><a href="/article/1894948105346936832.htm"
                           title="《从零到全栈:JavaScript新增的ES6语法》" target="_blank">《从零到全栈:JavaScript新增的ES6语法》</a>
                        <span class="text-muted">CodeComposer</span>
<a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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>JavaScript是一门弱类型的脚本语言,广泛应用于网页开发中。ES6(ECMAScript2015)是JavaScript的第六个版本,引入了许多新特性,使得JavaScript更加现代化和强大。本文将详细介绍JavaScript的基础概念、ES6的新特性及其应用场景。一、JavaScript核心概念1.JavaScript的本质弱类型语言:变量声明无需指定类型,可动态存储任意数据。vara=</div>
                    </li>
                    <li><a href="/article/1894734731296174080.htm"
                           title="cocosCreator 和 Laya 的常用API与方法 ,多边形点击解决正方形重叠点击问题,emit,dispatchEvent,EventCustom" target="_blank">cocosCreator 和 Laya 的常用API与方法 ,多边形点击解决正方形重叠点击问题,emit,dispatchEvent,EventCustom</a>
                        <span class="text-muted">qq_42838904</span>

                        <div>常用API引入:require/import导出:export/module.exports/exportsNodejs不支持import和exportes6兼容以上所有语法,当然需要webpack+babel来支撑es6是ECMAScript(EuropeanComputerManufacturersAssociationEuropeanComputerManufacturersAssociat</div>
                    </li>
                    <li><a href="/article/1894624408677445632.htm"
                           title="【深入浅出:Core-JS Legacy 的降级兼容指南】" target="_blank">【深入浅出:Core-JS Legacy 的降级兼容指南】</a>
                        <span class="text-muted">Gazer_S</span>
<a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>深入浅出:Core-JSLegacy的降级兼容指南️背景与核心概念为什么需要Polyfill?随着ECMAScript标准的快速迭代(ES6/ES2015+),现代浏览器对新特性的支持存在碎片化问题。旧版浏览器(如IE11、iOS9等)无法识别Promise、Array.prototype.includes等新API。Core-JS应运而生,它是一个模块化的JavaScript标准库,提供ES5+</div>
                    </li>
                    <li><a href="/article/1894566417844465664.htm"
                           title="前端开发岗模拟面试题套卷A答案及解析(一)技术面部分" target="_blank">前端开发岗模拟面试题套卷A答案及解析(一)技术面部分</a>
                        <span class="text-muted">向贤</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">前端开发</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                        <div>前端开发岗模拟面试题套卷A答案及解析(一)技术面部分(一)技术面一、JavaScript核心技术(ES6+)1-1、实现防抖函数functiondebounce(fn,delay){lettimer=null;returnfunction(...args){clearTimeout(timer);//清除已有定时器timer=setTimeout(()=>{fn.apply(this,args);</div>
                    </li>
                    <li><a href="/article/1894412737027567616.htm"
                           title="es6 生成器 generator" target="_blank">es6 生成器 generator</a>
                        <span class="text-muted">bdawn</span>
<a class="tag" taget="_blank" href="/search/generator/1.htm">generator</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%88%90%E5%99%A8/1.htm">生成器</a><a class="tag" taget="_blank" href="/search/yield/1.htm">yield</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>es6generator生成器定义生成器是用于生产生成器对象的特殊函数生成器对象现了迭代器接口iterator,生成器对象也是一个迭代器,通过next()函数分步执行生成器函数内的代码//定义一个生成器,在普通函数的function后面加一个'*',就成为生成器了function*mGenerator(){}//或者下面写法letmGenerator=function*(){}必须是functio</div>
                    </li>
                    <li><a href="/article/1894191977184948224.htm"
                           title="ES6-Set、WeekSet数据结构" target="_blank">ES6-Set、WeekSet数据结构</a>
                        <span class="text-muted">喜欢代码的新之助</span>
<a class="tag" taget="_blank" href="/search/es6/1.htm">es6</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/javascript/1.htm">javascript</a>
                        <div>Set、WeakSet数据结构Set数据结构ES6提供了新的数据结构Set,类似于数组,但是成员的值都是唯一的,没有重复的值Set本身是一个构造函数,用来生成Set数据结构consts=newset();set函数可以接受一个数组作为参数,用来初始化size属性:Set数据结构中的一个属性,用于计算当前数据结构中包含了多少值consts=newSet();console.log(s.size);/</div>
                    </li>
                                <li><a href="/article/122.htm"
                                       title="java数字签名三种方式" target="_blank">java数字签名三种方式</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a>
                                    <div>以下3钟数字签名都是基于jdk7的 
1,RSA 
 

String password="test";
			// 1.初始化密钥
			KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
			keyPairGenerator.initialize(51</div>
                                </li>
                                <li><a href="/article/249.htm"
                                       title="Hibernate学习笔记" target="_blank">Hibernate学习笔记</a>
                                    <span class="text-muted">caoyong</span>
<a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King 
2>、搭建Hibernate的开发环境 
     a>、添加jar包: 
      aa>、hibernatte开发包中/lib/required/所</div>
                                </li>
                                <li><a href="/article/376.htm"
                                       title="设计模式之装饰器模式Decorator(结构型)" target="_blank">设计模式之装饰器模式Decorator(结构型)</a>
                                    <span class="text-muted">漂泊一剑客</span>
<a class="tag" taget="_blank" href="/search/Decorator/1.htm">Decorator</a>
                                    <div>1. 概述 
 
 
       若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。 
 
      </div>
                                </li>
                                <li><a href="/article/503.htm"
                                       title="读取磁盘文件txt,并输入String" target="_blank">读取磁盘文件txt,并输入String</a>
                                    <span class="text-muted">一炮送你回车库</span>
<a class="tag" taget="_blank" href="/search/String/1.htm">String</a>
                                    <div>public static void main(String[] args) throws IOException { 
  
 String fileContent = readFileContent("d:/aaa.txt"); 
  
 System.out.println(fileContent); 
   
</div>
                                </li>
                                <li><a href="/article/630.htm"
                                       title="js三级联动下拉框" target="_blank">js三级联动下拉框</a>
                                    <span class="text-muted">3213213333332132</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%89%E7%BA%A7%E8%81%94%E5%8A%A8/1.htm">三级联动</a>
                                    <div>
//三级联动  
   省/直辖市<select id="province"></select>  
   市/省直辖<select id="city"></select>  
   县/区 <select id="area"></select>  
  </div>
                                </li>
                                <li><a href="/article/757.htm"
                                       title="erlang之parse_transform编译选项的应用" target="_blank">erlang之parse_transform编译选项的应用</a>
                                    <span class="text-muted">616050468</span>
<a class="tag" taget="_blank" href="/search/parse_transform/1.htm">parse_transform</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">游戏服务器</a><a class="tag" taget="_blank" href="/search/%E5%B1%9E%E6%80%A7%E5%90%8C%E6%AD%A5/1.htm">属性同步</a><a class="tag" taget="_blank" href="/search/abstract_code/1.htm">abstract_code</a>
                                    <div>         最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少</div>
                                </li>
                                <li><a href="/article/884.htm"
                                       title="JAVA JSON的解析" target="_blank">JAVA JSON的解析</a>
                                    <span class="text-muted">darkranger</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
 
//		{
//			“Total”:“条数”,
//			 Code: 1,
//
//			“PaymentItems”:[
//			{
//			“PaymentItemID”:”支款单ID”,
//			“PaymentCode”:”支款单编号”,
//			“PaymentTime”:”支款日期”,
//			”ContractNo”:”合同号”,
//	</div>
                                </li>
                                <li><a href="/article/1011.htm"
                                       title="POJ-1273-Drainage Ditches" target="_blank">POJ-1273-Drainage Ditches</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/ACM_POJ/1.htm">ACM_POJ</a>
                                    <div>POJ-1273-Drainage Ditches 
http://poj.org/problem?id=1273 
基本的最大流,按LRJ的白书写的 
 
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma</div>
                                </li>
                                <li><a href="/article/1138.htm"
                                       title="工作流Activiti5表的命名及含义" target="_blank">工作流Activiti5表的命名及含义</a>
                                    <span class="text-muted">atongyeye</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a><a class="tag" taget="_blank" href="/search/Activiti/1.htm">Activiti</a>
                                    <div>activiti5 - http://activiti.org/designer/update在线插件安装 
 
activiti5一共23张表 
 
 
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 
 
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 
 
A</div>
                                </li>
                                <li><a href="/article/1265.htm"
                                       title="android的广播机制和广播的简单使用" target="_blank">android的广播机制和广播的简单使用</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/%E5%B9%BF%E6%92%AD%E6%9C%BA%E5%88%B6/1.htm">广播机制</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E6%92%AD%E7%9A%84%E6%B3%A8%E5%86%8C/1.htm">广播的注册</a>
                                    <div>      Android广播机制简介  在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应</div>
                                </li>
                                <li><a href="/article/1392.htm"
                                       title="Spring事务传播行为详解" target="_blank">Spring事务传播行为详解</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E4%BC%A0%E6%92%AD%E8%A1%8C%E4%B8%BA/1.htm">事务传播行为</a>
                                    <div>        在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 
        Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这</div>
                                </li>
                                <li><a href="/article/1519.htm"
                                       title="eidtplus operate" target="_blank">eidtplus operate</a>
                                    <span class="text-muted">征客丶</span>
<a class="tag" taget="_blank" href="/search/eidtplus/1.htm">eidtplus</a>
                                    <div>开启列模式: Alt+C 鼠标选择   OR   Alt+鼠标左键拖动 
列模式替换或复制内容(多行): 
右键-->格式-->填充所选内容-->选择相应操作 
OR 
Ctrl+Shift+V(复制多行数据,必须行数一致) 
 
-------------------------------------------------------</div>
                                </li>
                                <li><a href="/article/1646.htm"
                                       title="【Kafka一】Kafka入门" target="_blank">【Kafka一】Kafka入门</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a>
                                    <div>这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧 
  下载Kafka 
 http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz 
 2.10表示Scala的版本,而0.8.1.1表示Kafka</div>
                                </li>
                                <li><a href="/article/1773.htm"
                                       title="Spring 事务实现机制" target="_blank">Spring 事务实现机制</a>
                                    <span class="text-muted">BlueSkator</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86/1.htm">代理</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a>
                                    <div>Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口 </div>
                                </li>
                                <li><a href="/article/1900.htm"
                                       title="bootstrap源码学习与示例:bootstrap-dropdown(转帖)" target="_blank">bootstrap源码学习与示例:bootstrap-dropdown(转帖)</a>
                                    <span class="text-muted">BreakingBad</span>
<a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/dropdown/1.htm">dropdown</a>
                                    <div>bootstrap-dropdown组件是个烂东西,我读后的整体感觉。 
一个下拉开菜单的设计: 
                  <ul class="nav pull-right">
                        <li id="fat-menu" class="dropdown">
</div>
                                </li>
                                <li><a href="/article/2027.htm"
                                       title="读《研磨设计模式》-代码笔记-中介者模式-Mediator" target="_blank">读《研磨设计模式》-代码笔记-中介者模式-Mediator</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/ 
 
 



/*
 * 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
 * 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
 * 
 * 在我看来,Mediator模式是把多个对象(</div>
                                </li>
                                <li><a href="/article/2154.htm"
                                       title="常用代码记录" target="_blank">常用代码记录</a>
                                    <span class="text-muted">chenjunt3</span>
<a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a><a class="tag" taget="_blank" href="/search/J%23/1.htm">J#</a>
                                    <div>  
1、单据设置某行或某字段不能修改

//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC</div>
                                </li>
                                <li><a href="/article/2281.htm"
                                       title="搜索引擎与工作流引擎" target="_blank">搜索引擎与工作流引擎</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/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/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8/1.htm">网络应用</a>
                                    <div>  
 
    最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想) 
  -----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先</div>
                                </li>
                                <li><a href="/article/2408.htm"
                                       title="oracle Health Monitor" target="_blank">oracle Health Monitor</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/Health+Monitor/1.htm">Health Monitor</a>
                                    <div>About Health Monitor 
 
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database. 
 
About Health Monitor Checks 
 
Health M</div>
                                </li>
                                <li><a href="/article/2535.htm"
                                       title="JSON字符串转换为对象" target="_blank">JSON字符串转换为对象</a>
                                    <span class="text-muted">dieslrae</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                                    <div>    作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了. 
  </div>
                                </li>
                                <li><a href="/article/2662.htm"
                                       title="C语言学习八结构体,综合应用,学生管理系统" target="_blank">C语言学习八结构体,综合应用,学生管理系统</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a>
                                    <div>实现功能的代码: 
# include <stdio.h>
# include <malloc.h>

struct Student
{
	int age;
	float score;
	char name[100];
};


int main(void)
{
	int len;
	struct Student * pArr;
	int i,</div>
                                </li>
                                <li><a href="/article/2789.htm"
                                       title="vagrant学习笔记" target="_blank">vagrant学习笔记</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a>
                                    <div>想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant 
  
1. vagrant virtualbox 下载安装 
https://www.vagrantup.com/downloads.html 
https://www.virtualbox.org/wiki/Downloads 
  
查看安装在命令行输入vagrant 
  
  
2.</div>
                                </li>
                                <li><a href="/article/2916.htm"
                                       title="14.性能优化-优化-软件配置优化" target="_blank">14.性能优化-优化-软件配置优化</a>
                                    <span class="text-muted">frank1234</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE/1.htm">软件配置</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                                    <div>1.Tomcat线程池 
 
修改tomcat的server.xml文件: 
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m</div>
                                </li>
                                <li><a href="/article/3043.htm"
                                       title="一个不错的shell 脚本教程 入门级" target="_blank">一个不错的shell 脚本教程 入门级</a>
                                    <span class="text-muted">HarborChung</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a>
                                    <div>一个不错的shell 脚本教程 入门级 
建立一个脚本   Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。   如同其他语言一样</div>
                                </li>
                                <li><a href="/article/3170.htm"
                                       title="Spring4新特性——核心容器的其他改进" target="_blank">Spring4新特性——核心容器的其他改进</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a><a class="tag" taget="_blank" href="/search/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/1.htm">依赖注入</a>
                                    <div>Spring4新特性——泛型限定式依赖注入 
Spring4新特性——核心容器的其他改进 
Spring4新特性——Web开发的增强 
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC  
Spring4新特性——Groovy Bean定义DSL 
Spring4新特性——更好的Java泛型操作API  
Spring4新</div>
                                </li>
                                <li><a href="/article/3297.htm"
                                       title="Linux设置tomcat开机启动" target="_blank">Linux设置tomcat开机启动</a>
                                    <span class="text-muted">liuxingguome</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E5%8A%A8/1.htm">开机自启动</a>
                                    <div>执行命令sudo gedit /etc/init.d/tomcat6 
 
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。 
 
#!/bin/bash 
 
# 
 
# /etc/rc.d/init.d/tomcat 
 
# init script for tomcat precesses</div>
                                </li>
                                <li><a href="/article/3424.htm"
                                       title="第13章 Ajax进阶(下)" target="_blank">第13章 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/3551.htm"
                                       title="Troubleshooting Crystal Reports off BW" target="_blank">Troubleshooting Crystal Reports off BW</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/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE 
  
Quite useful, especially this part:  
SAP BW connectivity 
For t</div>
                                </li>
                                <li><a href="/article/3678.htm"
                                       title="Java开发熟手该当心的11个错误" target="_blank">Java开发熟手该当心的11个错误</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/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a>
                                    <div>#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收 
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为</div>
                                </li>
                                <li><a href="/article/3805.htm"
                                       title="正则表达式大全" target="_blank">正则表达式大全</a>
                                    <span class="text-muted">yang852220741</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a>
                                    <div>今天向大家分享正则表达式大全,它可以大提高你的工作效率 
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。 
一、校验数字的表达式 
 
数字:^[0-9]*$ 
n位的数字:^\d{n}$ 
至少n位的数字:^\d{n,}$ 
m-n位的数字:^\d{m,n}$</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>