ES6新特性总结

ES6新特性

es6简介

ECMAScript 6.0 (以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言

ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下代标准,涵盖了ES2015、ES2016、ES2017等等,而 ES2015则是正式名称,
特指该年发布的正式版本的语言标准

let和const命令

var关键字的变量提升

案例:

console.log(a)
var a = 2

输出:

undefined

Process finished with exit code 0

var关键字出现在console后却能打印undefined,这就是变量提升

以上案例等同于如下代码,变量提升即将变量提升到前面,先声明,后赋值:

var a;
console.log(a)
a = 2

显然,在es5之前频繁使用var声明变量,需要大量考虑变量提升的影响,因此es6引入了let和const

let

  1. let没有变量提升
  2. let是块级作用域
  3. let无法重复声明

简单应用:

  1. 如用var声明一个for循环,其变量提升会导致i成为全局变量,因此无论输出数组哪个成员,其调用函数的结果都是返回i=10

        //for循环
        var arr = [];
        for (var i = 0; i < 10; i++) {
            arr[i] = function () {
                return i;
            }
        }
        console.log(arr[5]())
    

    输出:

    10
    

    如果使用let,则能够避免:

        //for循环
        var arr = [];
        for (let i = 0; i < 10; i++) {
            arr[i] = function () {
                return i;
            }
        }
        console.log(arr[5]())
    

    输出:

    5
    
  2. let不会污染全局变量

    定义一个与系统函数同名的变量,系统函数会被var变量覆盖

    var RegExp = 10;
        console.log(RegExp);
        console.log(window.RegExp)
    

    输出:

    10
    10
    

    改用let声明:

    let RegExp = 10;
        console.log(RegExp);
        console.log(window.RegExp)
    

    输出:

    10
    ƒ RegExp() { [native code] }
    

const

const在拥有let的特性之外,还有一条自己的特性,即声明变量不可变,但声明的变量其成员属性可变

案例:

 const person = {
        name: "acerola"
    }
    const person = 1;
    person.name = "zhangsan"
    console.log(person)

输出:

Uncaught SyntaxError: Identifier 'person' has already been declared 
{name: 'zhangsan'}

es6的模板字符串

案例:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>

<div class="box">

div>
<script>
    const box = document.querySelector('.box');
    let id = 1, name = "acerola";
    let htmlStr = `
  • ${id}">${name}

`
box.innerHTML = htmlStr;
script> body> html>

增强函数

  1. 函数入参可以直接初始化值,也可以直接调用函数初始化值

    function bValue() {
        return 20;
    }
    
    function f(a, b = bValue(), c = 30) {
        return a + b + c;
    }
    console.log(f(10))
    

    输出:

    60
    
  2. 剩余参数可以使用...+具名参数的形式指代,替代了es5以前不太好用的arguements

    function pick(obj, ...keys) {
        let result = Object.create(null);
        for (let i = 0; i < keys.length; i++) {
            result[keys[i]] = obj[keys[i]];
        }
        return result;
    }
    
    let book = {
        title: "es6学习",
        author: 'acerola',
        year: 2022
    }
    let bookData = pick(book, 'year', 'author');
    console.log(bookData);
    

    输出:

    [Object: null prototype] { year: 2022, author: 'acerola' }
    

扩展的字符串,对象,数组功能

  1. 剩余运算符:把多个独立数组合并

  2. 将一个运算符分割,并将各个项作为分离的参数传给函数

    const arr = [10, 20, 30, 40];
    //es5做法
    console.log(Math.max.apply(null,arr))
    //es6做法,使用运算符分割数组
    console.log(Math.max(...arr))
    
  3. 箭头函数

    //es5
    let add = function (a, b) {
        return a + b;
    }
    //es6
    let add = (a, b) => {
        return a + b;
    }
    //更简洁的版本
    let add = (a, b) => (a + b)
    console.log(add(10, 20))
    //es6只有一个参数时
    let single = val => val
    console.log(single(10));
    

    注意事项:

    • 函数内部不再有arguments
    • 箭头函数无法使用new关键字实例化对象
  4. 扩展的对象的功能

    • is(),等价于===

      console.log(Object.is(1,2))
      
    • assign(), 对象合并

      let obj1 = {
          name: "莫",
          age: 18,
          family: {
              dady: "爸爸",
              mom: "妈妈"
          }
      }
      let obj2 = {
          name: "园",
          age: 18,
          sex: "女"
      }
      let result = Object.assign({}, obj1, obj2);
      console.log(result);
      

解构赋值

对象解构:

let obj = {
    a: {
        name: "张园",
        age: 18
    },
    b: [],
    c: "你好世界"
}
//es5完全解构
let aName = obj.a.name;
console.log(aName)
//es6不完全解构
let {name} = obj.a
console.log(name)

数组解构:

let arr = [1,2,3,4,5]
let [a,b,c] = arr
console.log(c);

Symbol

symbol简介

Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值。它是JavaScript中的第七种数据类型,与undefined、null、Number(数值)、String(字符串)、Boolean(布尔值)、Object(对象)并列。

创建一个symbol值

const a = Symbol('s1');
console.log(a);  //Symbol(s1)

symbol值的唯一性

尽管再创建一个Symbol(‘s1’),a和b也不相等,他们在内存中的地址是唯一的,可以使用is()验证

const a = Symbol('s1');
const b = Symbol('s1');

console.log(Object.is(a,b));  //false

只有通过引用他们自身,才能得到他们的地址,没有别的途径

const c = a;

Map和Set

map

Map 是 ES6 中新增的数据结构,Map 类似于对象,但普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型

Map的操作方法:

const map = new Map();
const obj = {p: 'Hello World'};
 
map.set(obj, 'OK')
map.get(obj) // "OK"
 
map.has(obj) // true
map.delete(obj) // true
map.has(obj) // false

Map 实例的遍历方法有:

  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。
  • forEach():遍历 Map 的所有成员。
const map = new Map();
map.set('aaa', 100);
map.set('bbb', 200);
for (let key of map.keys()) {
    console.log(key);
}
// "aaa"
// "bbb"

for (let value of map.values()) {
    console.log(value);
}
// 100
// 200

for (let item of map.entries()) {
    console.log(item[0], item[1]);
}
// aaa 100

set

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用

Set的操作方法:

add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值

set转数组

let a = new Set([1,2,3]);
let arr = [...a];
console.log(arr)

还可以取交集并集差集

let a = new Set([1,2,3]);
let b = new Set([2,3,4]);
//并集
  let union = new Set([...a,...b]);
  console.log(union);//Set(4) {1, 2, 3, 4}

  //交集
  let intersect = new Set([...a].filter(x => b.has(x)));
  console.log(intersect);//Set(2) {2, 3}

  //差集
  let difference = new Set([...a].filter(x => !b.has(x)));
  console.log(difference);//Set(1) {1}

迭代器和生成器

迭代器

Iterator 是es6引入的一种新的遍历机制:

  • 迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为 Symbol.iterator 的方法来实现;
  • 迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。
  • 返回值有两个属性,value和done,value 是当前属性的值,done 用于判断是否遍历结束,done为false则继续遍历
const items = ["zero", "one", "two"];
const it = items[Symbol.iterator]();

it.next();
//{value: "zero", done: false}
it.next();
//{value: "one", done: false}
it.next();
//{value: "two", done: false}
it.next();
//{value: undefined, done: true}

生成器

生成器是ES6中新增的一种函数控制、使用的方案,它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。平时我们会编写很多的函数,这些函数终止的条件通常是返回值或者发生了异常。

生成器函数也是一个函数,但是和普通的函数有一些区别:

首先,生成器函数需要在function的后面加一个符号:*
其次,生成器函数可以通过yield关键字来控制函数的执行流程:
最后,生成器函数的返回值是一个Generator(生成器):
生成器事实上是一种特殊的迭代器,最简单的用法就是用yield把流程分段,然后使用next一段一段执行方法

案例:

function* foo() {
  console.log("函数开始执行~")
 
  const value1 = 100
  console.log("第一段代码:", value1)
  yield
 
  const value2 = 200
  console.log("第二段代码:", value2)
  yield
 
  const value3 = 300
  console.log("第三段代码:", value3)
  yield
 
  console.log("函数执行结束~")
}
 
// 调用生成器函数时, 会给我们返回一个生成器对象
const generator = foo()
 
// 开始执行第一段代码
generator.next()
 
// 开始执行第二端代码
console.log("-------------")
generator.next()
generator.next()
console.log("----------")
generator.next()

同时,分段也可以有不同的参数传入,可以通过在next()加入参数向yield传递参数,这个参数作为yield的返回值,也就是可以作为下一段代码的参数使用

function* foo(num) {
    console.log("函数开始执行~")

    const value1 = 100 * num
    console.log("第一段代码:", value1)
    const n = yield value1

    console.log("n的值是" + n)
    const value2 = 200 * n
    console.log("第二段代码:", value2)
    const count = yield value2

    const value3 = 300 * count
    console.log("第三段代码:", value3)
    yield value3

    console.log("函数执行结束~")
    return "123"
}

// 生成器上的next方法可以传递参数
const generator = foo(5)
console.log(generator.next())
// // 第二段代码, 第二次调用next的时候执行的
console.log(generator.next(10))
// console.log(generator.next(25))

输出:

函数开始执行~
第一段代码: 500
{ value: 500, done: false }
n的值是10
第二段代码: 2000
{ value: 2000, done: false }

使用return提前终止

function* foo(num) {
    console.log("函数开始执行~")

    const value1 = 100 * num
    console.log("第一段代码:", value1)
    const n = yield value1


    console.log("n的值是" + n)
    const value2 = 200 * n
    console.log("第二段代码:", value2)
    const count = yield value2

    const value3 = 300 * count
    console.log("第三段代码:", value3)
    yield value3

    console.log("函数执行结束~")
    return "123"
}

// 生成器上的next方法可以传递参数
const generator = foo(5)
console.log(generator.next())

console.log(generator.return(15))
// // 第二段代码, 第二次调用next的时候执行的
console.log(generator.next(10))
// console.log(generator.next(25))

输出:

函数开始执行~
第一段代码: 500
{ value: 500, done: false }
{ value: 15, done: true }
{ value: undefined, done: true }

try-catch的异常抛出

function* foo() {
  console.log("代码开始执行~")
 
  const value1 = 100
  try {
    yield value1
  } catch (error) {
    console.log("捕获到异常情况:", error)
 
    yield "abc"
  }
 
  console.log("第二段代码继续执行")
  const value2 = 200
  yield value2
 
  console.log("代码执行结束~")
}
 
const generator = foo()
const result = generator.next()
generator.throw("error message")
 
// const result = generator.next()

Promise对象

promise简介

Promise是ES6异步编程的一种解决方案(目前最先进的解决方案是async和await的搭配(ES8),但是它们是基于promise的),从语法上讲,Promise是一个对象或者说是构造函数,用来封装异步操作并可以获取其成功或失败的结果。

promise的三种状态

  • pending: 等待中,或者进行中,表示还没有得到结果
  • resolved(Fulfilled): 已经完成,表示得到了我们想要的结果,可以继续往下执行
  • rejected: 也表示得到结果,但是由于结果并非我们所愿,因此拒绝执行
let pro = new Promise((resolve, reject) => {
    if (Math.random() > 0.5) {
        resolve("i'm resolve");
    } else {
        reject("i'm reject");
    }
})

pro.then((res) => {
    console.log(res);
}).catch((err) => {
    console.log(err);
})

使用案例(使用promise封装ajax)

目标:拿到关于 狙击手 电影的描述

过程:

1.先登录

2.请求 导演信息 找到张导的id

3.请求 电影信息 找到描述

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    // 1.登录
    // let myLogin = () => new Promise()
    function myLogin() {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: 'get',
                url: '../json/login.json',
                success(res) {
                    resolve(res);
                },
                error(err) {
                    reject(err);
                }
            })
        })
    }
 
    // 2.导演列表
    function myDirector() {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: 'get',
                url: '../json/director.json',
                success(res) {
                    resolve(res);
                },
                error(err) {
                    reject(err);
                }
            })
        })
    }
 
    // 3.电影信息
    function myFilm(id) {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: 'get',
                url: '../json/' + id + '.json',
                success(res) {
                    resolve(res);
                },
                error(err) {
                    reject(err);
                }
            })
        })
    }
 
    myLogin().then(res => {
        return myDirector();
    }).then(res => {
        return myFilm(3);
    }).then(res => {
        console.log(res);
    }).catch(err => {
        console.log(err);
    })
</script>

promise.all()

处理多个异步任务,所有任务都执行完成才能得到结果

Promise.all( [p1,p2,p3] ) .then ( (result) => {
    consoleog (result)
})

promise.race()

并发处理多个异步任务,只要有一个任务完成就能得到结果

Promise.race ( [p1,p2,p3] ).then ( (result)=>{
     console. log (result)
})

async

async简介

async函数是使用async关键字声明的函数。 async函数是AsyncFunction构造函数的实例, 并且其中允许使用await关键字。async和await关键字让我们可以用一种更简洁的方式写出基于Promise的异步行为,而无需刻意地链式调用promise。

Async函数是generator函数的语法糖,在generator函数的基础上添加了一些更加方便用户操作的新特性。Async函数的执行和普通函数一致,只需要一行代码即可,因为他具有内置的执行。async与await对比*与yield有更好的语义

async 函数中可能会有 await 表达式,async 函数执行时,如果遇到 await 就会先暂停执行 ,等到触发的异步操作完成后,恢复 async 函数的执行并返回解析值。primise写法:await关键字只在async函数内有效。如果你在async函数体之外使用它,就会抛出语法错误 SyntaxError 。

function foo() {
   return Promise.resolve(1)
}

async写法:

//async函数返回一个 Promise 对象。
async function foo() {
   return 1
}

项目中常见用法

async function foo(){   
	return await $.get("http://47.106.244.1:8099/manager/category/findAllCategory"); 
}    
let f = foo();
// f就是获取到的后台接口的数据

异步任务同步化

某些时候,我们需要多个异步任务保证顺序执行,使用await控制:

async function getTitle(url) {
    //抓取网页
  let response = await fetch(url);
    //提取文本
  let html = await response.text();
    //匹配页面标题
  return html.match(/([\s\S]+)<\/title></span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token function">getTitle</span><span class="token punctuation">(</span><span class="token string">'https://tc39.github.io/ecma262/'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span>console<span class="token punctuation">.</span>log<span class="token punctuation">)</span>
</code></pre> 
  <h3><strong>异步任务异步化</strong></h3> 
  <pre><code class="prism language-javascript"><span class="token keyword">function</span> <span class="token function">getFoo</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"getFoo"</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
<span class="token keyword">function</span> <span class="token function">getBar</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"getBar"</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
<span class="token keyword">async</span> <span class="token keyword">function</span> <span class="token function">test</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
	<span class="token comment">//异步执行</span>
    <span class="token keyword">let</span> <span class="token punctuation">[</span>foo<span class="token punctuation">,</span> bar<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">await</span> Promise<span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token function">getFoo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token function">getBar</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre> 
  <h2>类class</h2> 
  <p>跟java一毛一样,不想记录了(我是搞后端的捏)</p> 
  <h2>模块化运行</h2> 
  <ul> 
   <li>export 命令:用于规定模块的对外接口</li> 
   <li>import 命令:用于输入其他模块提供的功能</li> 
  </ul> 
  <h3>export</h3> 
  <ol> 
   <li> <p>分别暴露</p> <pre><code class="prism language-javascript"> 	<span class="token keyword">export</span> <span class="token keyword">let</span> school <span class="token operator">=</span> <span class="token string">'gc'</span><span class="token punctuation">;</span>

	<span class="token keyword">export</span> <span class="token keyword">function</span> <span class="token function">teach</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"分别暴露"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token punctuation">}</span><span class="token punctuation">;</span>
</code></pre> </li> 
   <li> <p>统一暴露</p> <pre><code class="prism language-javascript">	<span class="token keyword">let</span> school <span class="token operator">=</span> <span class="token string">'gc'</span><span class="token punctuation">;</span>

	<span class="token keyword">function</span> <span class="token function">findJob</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"统一暴露"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token punctuation">}</span><span class="token punctuation">;</span>

	<span class="token keyword">export</span> <span class="token punctuation">{</span>school<span class="token punctuation">,</span> findJob<span class="token punctuation">}</span><span class="token punctuation">;</span>
</code></pre> </li> 
   <li> <p>默认暴露</p> <pre><code class="prism language-javascript">	<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
    	<span class="token literal-property property">school</span><span class="token operator">:</span> <span class="token string">'ATLUCA'</span><span class="token punctuation">,</span>
    	<span class="token function-variable function">change</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
        	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"默认暴露"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    	<span class="token punctuation">}</span>
	<span class="token punctuation">}</span>
</code></pre> </li> 
  </ol> 
  <h3>import</h3> 
  <ol> 
   <li> <p>通用导入</p> <pre><code class="prism language-javascript">	<span class="token keyword">import</span> <span class="token operator">*</span> <span class="token keyword">as</span> _m1 <span class="token keyword">from</span> <span class="token string">"js/m1.js"</span><span class="token punctuation">;</span>
	_m1<span class="token punctuation">.</span><span class="token function">teach</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

	<span class="token keyword">import</span> <span class="token operator">*</span> <span class="token keyword">as</span> _m2 <span class="token keyword">from</span> <span class="token string">"js/m2.js"</span><span class="token punctuation">;</span>
	_m2<span class="token punctuation">.</span><span class="token function">findJob</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>_m2<span class="token punctuation">.</span>school<span class="token punctuation">)</span><span class="token punctuation">;</span>

	<span class="token keyword">import</span> <span class="token operator">*</span> <span class="token keyword">as</span> _m3 <span class="token keyword">from</span> <span class="token string">"js/m3.js"</span><span class="token punctuation">;</span>
	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>_m3<span class="token punctuation">)</span><span class="token punctuation">;</span>
	_m3<span class="token punctuation">.</span>default<span class="token punctuation">.</span><span class="token function">change</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

</code></pre> </li> 
   <li> <p>解构赋值</p> <pre><code class="prism language-javascript">	<span class="token keyword">import</span> <span class="token punctuation">{</span>school<span class="token punctuation">,</span> teach<span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"js/m1.js"</span><span class="token punctuation">;</span>
	<span class="token keyword">import</span> <span class="token punctuation">{</span>school <span class="token keyword">as</span> gc<span class="token punctuation">,</span> findJob<span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"js/m2.js"</span><span class="token punctuation">;</span>
	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>findJob<span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token keyword">import</span> <span class="token punctuation">{</span><span class="token keyword">default</span> <span class="token keyword">as</span> _m3<span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"js/m3.js"</span><span class="token punctuation">;</span>
	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>_m3<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> </li> 
   <li> <p>只针对默认暴露的导入</p> <pre><code class="prism language-javascript">	<span class="token keyword">import</span> _m3 <span class="token keyword">from</span> <span class="token string">"js/m3.js"</span><span class="token punctuation">;</span>
	console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>_m3<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> </li> 
  </ol> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1574941098839719936"></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">你可能感兴趣的:(菜鸡上路,javascript,es6,前端)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1835513567663714304.htm"
                           title="想家" target="_blank">想家</a>
                        <span class="text-muted">爆米花机</span>

                        <div>也许不同于大家对家乡的思念,我对家乡甚至是疯狂的不舍。还未踏出车站就感觉到幸福,我享受这里的夕阳、这里的浓烈柴火味、这里每一口家常菜。我是宅女,我贪恋家的安逸。刚刚踏出大学校门,初出茅庐,无法适应每年只能国庆和春节回家。我焦虑、失眠、无端发脾气,是无法适应工作的节奏,是无法接受我将一步步离开家乡的事实。我不想承认自己胸无大志,选择再次踏上征程。图片发自App</div>
                    </li>
                    <li><a href="/article/1835509897106649088.htm"
                           title="Long类型前后端数据不一致" target="_blank">Long类型前后端数据不一致</a>
                        <span class="text-muted">igotyback</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问</div>
                    </li>
                    <li><a href="/article/1835503932999299072.htm"
                           title="相信相信的力量" target="_blank">相信相信的力量</a>
                        <span class="text-muted">孙丽_cdb3</span>

                        <div>孙丽中级十期坚持分享第345天有一个特别有哲理的故事:有一只老鹰下了蛋,这个蛋,不知怎的就滚到了鸡窝里去了,鸡也下了一窝蛋,然后鸡妈妈把这些蛋全都浮出来了,孵出来之后等小鸡长大一点了,就觉得鹰蛋孵出来的那只小鹰怪模怪样,这些小鸡都嘲笑它,真难看,真笨,丑死了,那只小鹰觉得自己真是谁也不像,真是不好看,后来鸡妈妈也不喜欢他,我怎么生出你这样的孩子来了?真烦人,后来这群小鸡和小鹰一起生活,有一天,老鹰</div>
                    </li>
                    <li><a href="/article/1835498925755297792.htm"
                           title="DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理" target="_blank">DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理</a>
                        <span class="text-muted">STU学生网页设计</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/%E6%9C%9F%E6%9C%AB%E7%BD%91%E9%A1%B5%E4%BD%9C%E4%B8%9A/1.htm">期末网页作业</a><a class="tag" taget="_blank" href="/search/html%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5/1.htm">html静态网页</a><a class="tag" taget="_blank" href="/search/html5%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">html5期末大作业</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/web%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web大作业</a>
                        <div>️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程</div>
                    </li>
                    <li><a href="/article/1835497792265613312.htm"
                           title="【加密社】Solidity 中的事件机制及其应用" target="_blank">【加密社】Solidity 中的事件机制及其应用</a>
                        <span class="text-muted">加密社</span>
<a class="tag" taget="_blank" href="/search/%E9%97%B2%E4%BE%83/1.htm">闲侃</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a>
                        <div>加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件存储的地方当我们在Solidity合约中使用emit关键字触发事件时,该事件会被记录在区块链的交易收据中。具体而言,事件</div>
                    </li>
                    <li><a href="/article/1835496149843275776.htm"
                           title="关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript" target="_blank">关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript</a>
                        <span class="text-muted">二挡起步</span>
<a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a><a class="tag" taget="_blank" href="/search/%E9%A3%8E%E6%99%AF/1.htm">风景</a>
                        <div>⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip</div>
                    </li>
                    <li><a href="/article/1835496148601761792.htm"
                           title="HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动" target="_blank">HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动</a>
                        <span class="text-muted">二挡起步</span>
<a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/web%E8%AE%BE%E8%AE%A1%E7%BD%91%E9%A1%B5%E8%A7%84%E5%88%92%E4%B8%8E%E8%AE%BE%E8%AE%A1/1.htm">web设计网页规划与设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/dreamweaver/1.htm">dreamweaver</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线</div>
                    </li>
                    <li><a href="/article/1835492740536823808.htm"
                           title="node.js学习" target="_blank">node.js学习</a>
                        <span class="text-muted">小猿L</span>
<a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
                        <div>node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行</div>
                    </li>
                    <li><a href="/article/1835471513604681728.htm"
                           title="虚张声势" target="_blank">虚张声势</a>
                        <span class="text-muted">六月荷清香</span>

                        <div>绵绵密密的细雨不间断地下个不停,给这初冬的天气添了几份清冷和寂寥。午后的菜市场内没有一个顾客光顾,几个分肉的屠户望着案板上那些没有分完的肉,还在期待着来一个主顾将它们一起买走。贩卖小菜的女人一边漫不经心地择着菜,一边不时打个哈欠,这样的时光正是好睡觉的时候,可是一天的工作没有完成,还是要坚守岗位。喜欢开玩笑的屠户不时说几句黄段子,调侃着胖胖的卖鸡老板娘,大家说说笑笑着以打发这无聊的时光。张屠户打了</div>
                    </li>
                    <li><a href="/article/1835460527199973376.htm"
                           title="我过生日啦!" target="_blank">我过生日啦!</a>
                        <span class="text-muted">小娜威</span>

                        <div>今天是我的生日,我又长了一岁,以后我要更加听话懂事。妈妈给我订的娃娃蛋糕,还给我买了生日礼物。吹蜡烛,许愿望,还有我最喜欢吃的菜。图片发自App图片发自App</div>
                    </li>
                    <li><a href="/article/1835448238103162880.htm"
                           title="springboot+vue项目实战一-创建SpringBoot简单项目" target="_blank">springboot+vue项目实战一-创建SpringBoot简单项目</a>
                        <span class="text-muted">苹果酱0567</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E6%9E%90/1.htm">面试题汇总与解析</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/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>这段时间抽空给女朋友搭建一个个人博客,想着记录一下建站的过程,就当做笔记吧。虽然复制zjblog只要一个小时就可以搞定一个网站,或者用cms系统,三四个小时就可以做出一个前后台都有的网站,而且想做成啥样也都行。但是就是要从新做,自己做的意义不一样,更何况,俺就是专门干这个的,嘿嘿嘿要做一个网站,而且从零开始,首先呢就是技术选型了,经过一番思量决定选择-SpringBoot做后端,前端使用Vue做一</div>
                    </li>
                    <li><a href="/article/1835448239864770560.htm"
                           title="JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)" target="_blank">JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)</a>
                        <span class="text-muted">跳房子的前端</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</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中,深拷贝(DeepCopy)和浅拷贝(ShallowCopy)是用于复制对象或数组的两种不同方法。了解它们的区别和应用场景对于避免潜在的bugs和高效地处理数据非常重要。以下是对深拷贝和浅拷贝的详细解释,包括它们的概念、用途、优缺点以及实现方式。1.浅拷贝(ShallowCopy)概念定义:浅拷贝是指创建一个新的对象或数组,其中包含了原对象或数组的基本数据类型的值和对引用数</div>
                    </li>
                    <li><a href="/article/1835437775344726016.htm"
                           title="博客网站制作教程" target="_blank">博客网站制作教程</a>
                        <span class="text-muted">2401_85194651</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                        <div>首先就是技术框架:后端:Java+SpringBoot数据库:MySQL前端:Vue.js数据库连接:JPA(JavaPersistenceAPI)1.项目结构blog-app/├──backend/│├──src/main/java/com/example/blogapp/││├──BlogApplication.java││├──config/│││└──DatabaseConfig.java</div>
                    </li>
                    <li><a href="/article/1835428948339683328.htm"
                           title="JavaScript `Map` 和 `WeakMap`详细解释" target="_blank">JavaScript `Map` 和 `WeakMap`详细解释</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/%E5%8E%9F%E7%94%9F%E6%96%B9%E6%B3%95/1.htm">原生方法</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中,Map和WeakMap都是用于存储键值对的数据结构,但它们有一些关键的不同之处。MapMap是一种可以存储任意类型的键值对的集合。它保持了键值对的插入顺序,并且可以通过键快速查找对应的值。Map提供了一些非常有用的方法和属性来操作这些数据对:set(key,value):将一个键值对添加到Map中。如果键已经存在,则更新其对应的值。get(key):获取指定键的值。如果键</div>
                    </li>
                    <li><a href="/article/1835428317084348416.htm"
                           title="最简单将静态网页挂载到服务器上(不用nginx)" target="_blank">最简单将静态网页挂载到服务器上(不用nginx)</a>
                        <span class="text-muted">全能全知者</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/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/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>最简单将静态网页挂载到服务器上(不用nginx)如果随便弄个静态网页挂在服务器都要用nignx就太麻烦了,所以直接使用Apache来搭建一些简单前端静态网页会相对方便很多检查Web服务器服务状态:sudosystemctlstatushttpd#ApacheWeb服务器如果发现没有安装web服务器:安装Apache:sudoyuminstallhttpd启动Apache:sudosystemctl</div>
                    </li>
                    <li><a href="/article/1835427057752961024.htm"
                           title="补充元象二面" target="_blank">补充元象二面</a>
                        <span class="text-muted">Redstone Monstrosity</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                        <div>1.请尽可能详细地说明,防抖和节流的区别,应用场景?你的回答中不要写出示例代码。防抖(Debounce)和节流(Throttle)是两种常用的前端性能优化技术,它们的主要区别在于如何处理高频事件的触发。以下是防抖和节流的区别和应用场景的详细说明:防抖和节流的定义防抖:在一段时间内,多次执行变为只执行最后一次。防抖的原理是,当事件被触发后,设置一个延迟定时器。如果在这个延迟时间内事件再次被触发,则重</div>
                    </li>
                    <li><a href="/article/1835422425177747456.htm"
                           title="但行好事,莫问前程" target="_blank">但行好事,莫问前程</a>
                        <span class="text-muted">娟恋YOU</span>

                        <div>下班路上,路过菜市场,突然想吃火锅了。于是于是边去常去批发雪糕的地方去买些涮火锅的丸子类的菜,选了一些后,结算是24.9,老板爽快的说,给我24.5就行,正好钱包有现金25元,超递给老板结账,老板又给我一元钱,说24就行,我说那怎么可以,我又沾光了,总沾你的光,多不好意思!老板说你常来我就是沾你的光了!最后还是收了我24块钱,心里还是很开心的。不是因为沾光而开心,而是被让的开心!这样的老板做生意闻</div>
                    </li>
                    <li><a href="/article/1835420753252675584.htm"
                           title="微信小程序开发注意事项" target="_blank">微信小程序开发注意事项</a>
                        <span class="text-muted">jun778895</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a>
                        <div>微信小程序开发是一个融合了前端开发、用户体验设计、后端服务(可选)以及微信小程序平台特性的综合性项目。这里,我将详细介绍一个典型的小程序开发项目的全过程,包括项目规划、设计、开发、测试及部署上线等各个环节,并尽量使内容达到或超过2000字的要求。一、项目规划1.1项目背景与目标假设我们要开发一个名为“智慧校园助手”的微信小程序,旨在为学生提供一站式校园生活服务,包括课程表查询、图书馆座位预约、食堂</div>
                    </li>
                    <li><a href="/article/1835419870070665216.htm"
                           title="切换淘宝最新npm镜像源是" target="_blank">切换淘宝最新npm镜像源是</a>
                        <span class="text-muted">hai40587</span>
<a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a>
                        <div>切换淘宝最新npm镜像源是一个相对简单的过程,但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步骤,并附上最新的镜像地址(截至回答时)。一、了解npm镜像源npm(NodePackageManager)是JavaScript的包管理器,用于安装、更新和管理项目依赖。由于npm官方仓库</div>
                    </li>
                    <li><a href="/article/1835418098891583488.htm"
                           title="2021-09-10" target="_blank">2021-09-10</a>
                        <span class="text-muted">彧瑛</span>

                        <div>[cp]九月果香,九月菊黄,九月忽然想起,是谁在播撒着希望?九月我们收集阳光,九月我们深情歌唱,一个感动的季节,被求知的眼睛珍藏。一寸一寸的粉笔,染白您的头发,腾然而起点燃成烛,照亮别人,让后来者攀上崖顶,让后来者踏着你的双肩,送一批批学子上路。黑发积霜织日月,粉笔无言写春秋。这就是老师的一生一一人类灵魂工程师的真实写照。粉笔里飞舞着您的万千情丝,书写着您的青春岁月;教室里定格着您的音容笑貌,记录</div>
                    </li>
                    <li><a href="/article/1835411044768509952.htm"
                           title="字节二面" target="_blank">字节二面</a>
                        <span class="text-muted">Redstone Monstrosity</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                        <div>1.假设你是正在面试前端开发工程师的候选人,面试官让你详细说出你上一段实习过程的收获和感悟。在上一段实习过程中,我获得了宝贵的实践经验和深刻的行业洞察,以下是我的主要收获和感悟:一、专业技能提升框架应用熟练度:通过实际项目,我深入掌握了React、Vue等前端框架的使用,不仅提升了编码效率,还学会了如何根据项目需求选择合适的框架。问题解决能力:在实习期间,我遇到了许多预料之外的技术难题。通过查阅文</div>
                    </li>
                    <li><a href="/article/1835403246865313792.htm"
                           title="斟一小组鸡血视频" target="_blank">斟一小组鸡血视频</a>
                        <span class="text-muted">和自己一起成长</span>

                        <div>http://m.v.qq.com/play/play.html?coverid=&vid=c0518henl2a&ptag=2_6.0.0.14297_copy有一种努力叫做靠自己http://m.v.qq.com/play/play.html?coverid=&vid=i0547o426g4&ptag=2_6.0.0.14297_copy世界最励志短片https://v.qq.com/x/pa</div>
                    </li>
                    <li><a href="/article/1835398064727224320.htm"
                           title="前端代码上传文件" target="_blank">前端代码上传文件</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>点击上传文件import{ElNotification}from'element-plus'import{API_CONFIG}from'../config/index.js'import{UploadFilled}from'@element-plus/icons-vue'import{reactive}from'vue'import{BASE_URL}from'../config/index'i</div>
                    </li>
                    <li><a href="/article/1835385458356482048.htm"
                           title="uniapp实现动态标记效果详细步骤【前端开发】" target="_blank">uniapp实现动态标记效果详细步骤【前端开发】</a>
                        <span class="text-muted">2401_85123349</span>
<a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a>
                        <div>第二个点在于实现将已经被用户标记的内容在下一次获取后刷新它的状态为已标记。这是什么意思呢?比如说上面gif图中的这些人物对象,有一些已被该用户添加为关心,那么当用户下一次进入该页面时,这些已经被添加关心的对象需要以“红心”状态显现出来。这个点的难度还不算大,只需要在每一次获取后端的内容后对标记对象进行状态更新即可。II.动态标记效果实现思路和步骤首先,整体的思路是利用动态类名对不同的元素进行选择。</div>
                    </li>
                    <li><a href="/article/1835383919906746368.htm"
                           title="高性能javascript--算法和流程控制" target="_blank">高性能javascript--算法和流程控制</a>
                        <span class="text-muted">海淀萌狗</span>

                        <div>-for,while和do-while性能相当-避免使用for-in循环,==除非遍历一个属性量未知的对象==es5:for-in遍历的对象便不局限于数组,还可以遍历对象。原因:for-in每次迭代操作会同时搜索实例或者原型属性,for-in循环的每次迭代都会产生更多开销,因此要比其他循环类型慢,一般速度为其他类型循环的1/7。因此,除非明确需要迭代一个属性数量未知的对象,否则应避免使用for-i</div>
                    </li>
                    <li><a href="/article/1835379466600280064.htm"
                           title="在线美工可撩" target="_blank">在线美工可撩</a>
                        <span class="text-muted">金戈药商公子绾月</span>

                        <div>啦啦啦啦啦,封面来啦,好书怎么可以没有封面呢(疯狂暗示,疯狂暗示,疯狂暗示)小辣鸡美工在线接单,有意私戳我哦图片发自App图片发自App图片发自App</div>
                    </li>
                    <li><a href="/article/1835373236217540608.htm"
                           title="360前端星计划-动画可以这么玩" target="_blank">360前端星计划-动画可以这么玩</a>
                        <span class="text-muted">马小蜗</span>

                        <div>动画的基本原理定时器改变对象的属性根据新的属性重新渲染动画functionupdate(context){//更新属性}constticker=newTicker();ticker.tick(update,context);动画的种类1、JavaScript动画操作DOMCanvas2、CSS动画transitionanimation3、SVG动画SMILJS动画的优缺点优点:灵活度、可控性、性能</div>
                    </li>
                    <li><a href="/article/1835368019430305792.htm"
                           title="Vue + Express实现一个表单提交" target="_blank">Vue + Express实现一个表单提交</a>
                        <span class="text-muted">九旬大爷的梦</span>

                        <div>最近在折腾一个cms系统,用的vue+express,但是就一个表单提交就弄了好久,记录一下。环境:Node10+前端:Vue服务端:Express依赖包:vueexpressaxiosexpress-formidableelement-ui(可选)前言:axiosget请求参数是:paramsaxiospost请求参数是:dataexpressget接受参数是req.queryexpresspo</div>
                    </li>
                    <li><a href="/article/1835363433231511552.htm"
                           title="像在棉花糖上的憧憬" target="_blank">像在棉花糖上的憧憬</a>
                        <span class="text-muted">楹枝笔</span>

                        <div>“上了大学你们就轻松了!”又是一年高考季,耳边突然回响着,在那段与时间拼命的时光里,老师为我们打下的这句鸡血。在多考一分就干掉一千人的高三,不得不佩服这句话所散发的诱惑力。我对于高三最难以忘怀的记忆,就是每天傍晚在天空中那一幅令人目不暇接的夕阳画。高三窗外的天空永远是那么的美丽。夕阳的晚霞渲染了周边洁白的云彩,与之相映衬的紫色霞光相互缭绕,飞机飞过的轨迹,无形中勾勒了一只小生物,像是醉在了碧海蓝天</div>
                    </li>
                    <li><a href="/article/1835360244646113280.htm"
                           title="JavaScript中秋快乐!" target="_blank">JavaScript中秋快乐!</a>
                        <span class="text-muted">Q_w7742</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>我们来实现一个简单的祝福网页~主要的难度在于使用canvas绘图当点击canvas时候,跳出“中秋节快乐”字样,需要注册鼠标单击事件和计时器。首先定义主要函数:初始化当点击canvas之后转到onCanvasClick函数,绘图生成灯笼。functiononCanvasClick(){//事件处理函数context.clearRect(0,0,canvas1.width,canvas1.heigh</div>
                    </li>
                                <li><a href="/article/95.htm"
                                       title="PHP,安卓,UI,java,linux视频教程合集" target="_blank">PHP,安卓,UI,java,linux视频教程合集</a>
                                    <span class="text-muted">cocos2d-x小菜</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>╔-----------------------------------╗┆                           </div>
                                </li>
                                <li><a href="/article/222.htm"
                                       title="zookeeper admin 笔记" target="_blank">zookeeper admin 笔记</a>
                                    <span class="text-muted">braveCS</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a>
                                    <div>  
Required Software 
1) JDK>=1.6 
2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines 
3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘 
   


数据和日志目录  
1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日</div>
                                </li>
                                <li><a href="/article/349.htm"
                                       title="Spring配置多个连接池" target="_blank">Spring配置多个连接池</a>
                                    <span class="text-muted">easterfly</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>项目中需要同时连接多个数据库的时候,如何才能在需要用到哪个数据库就连接哪个数据库呢? 
Spring中有关于dataSource的配置: 
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
  &nb</div>
                                </li>
                                <li><a href="/article/476.htm"
                                       title="Mysql" target="_blank">Mysql</a>
                                    <span class="text-muted">171815164</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 
 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI 
 
TH GRANT OPTION; 
 
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作</div>
                                </li>
                                <li><a href="/article/603.htm"
                                       title="CommonDAO(公共/基础DAO)" target="_blank">CommonDAO(公共/基础DAO)</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a>
                                    <div>        好久没有更新博客了,最近一段时间工作比较忙,所以请见谅,无论你是爱看呢还是爱看呢还是爱看呢,总之或许对你有些帮助。 
        DAO(Data Access Object)是一个数据访问(顾名思义就是与数据库打交道)接口,DAO一般在业</div>
                                </li>
                                <li><a href="/article/730.htm"
                                       title="直言有讳" target="_blank">直言有讳</a>
                                    <span class="text-muted">永夜-极光</span>
<a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E7%AC%94/1.htm">随笔</a>
                                    <div>  
1.转载地址:http://blog.csdn.net/jasonblog/article/details/10813313 
  
精华: 
“直言有讳”是阿里巴巴提倡的一种观念,而我在此之前并没有很深刻的认识。为什么呢?就好比是读书时候做阅读理解,我喜欢我自己的解读,并不喜欢老师给的意思。在这里也是。我自己坚持的原则是互相尊重,我觉得阿里巴巴很多价值观其实是基本的做人</div>
                                </li>
                                <li><a href="/article/857.htm"
                                       title="安装CentOS 7 和Win 7后,Win7 引导丢失" target="_blank">安装CentOS 7 和Win 7后,Win7 引导丢失</a>
                                    <span class="text-muted">随便小屋</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>一般安装双系统的顺序是先装Win7,然后在安装CentOS,这样CentOS可以引导WIN 7启动。但安装CentOS7后,却找不到Win7 的引导,稍微修改一点东西即可。 
一、首先具有root 的权限。 
     即进入Terminal后输入命令su,然后输入密码即可 
二、利用vim编辑器打开/boot/grub2/grub.cfg文件进行修改 
v</div>
                                </li>
                                <li><a href="/article/984.htm"
                                       title="Oracle备份与恢复案例" target="_blank">Oracle备份与恢复案例</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div>Oracle备份与恢复案例 
一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与</div>
                                </li>
                                <li><a href="/article/1111.htm"
                                       title="JavaEE开源快速开发平台G4Studio v5.0发布" target="_blank">JavaEE开源快速开发平台G4Studio v5.0发布</a>
                                    <span class="text-muted">無為子</span>

                                    <div>  
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V5.0版本已经正式发布。 
  
访问G4Studio网站  
http://www.g4it.org       
2013-04-06 发布G4Studio_V5.0版本 
功能新增 
(1). 新增了调用Oracle存储过程返回游标,并将游标映射为Java List集合对象的标</div>
                                </li>
                                <li><a href="/article/1238.htm"
                                       title="Oracle显示根据高考分数模拟录取" target="_blank">Oracle显示根据高考分数模拟录取</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B/1.htm">PL/SQL编程</a><a class="tag" taget="_blank" href="/search/oracle%E4%BE%8B%E5%AD%90/1.htm">oracle例子</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%8B%9F%E9%AB%98%E8%80%83%E5%BD%95%E5%8F%96/1.htm">模拟高考录取</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E4%BA%A4%E6%B5%81/1.htm">学习交流</a>
                                    <div>题目要求: 
1,创建student表和result表
2,pl/sql对学生的成绩数据进行处理
3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选 
  
  
1,创建student表,和result表 
学生信息表; 
create table student(
   student_id number primary key,--学生id</div>
                                </li>
                                <li><a href="/article/1365.htm"
                                       title="优秀的领导与差劲的领导" target="_blank">优秀的领导与差劲的领导</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%AF%BC/1.htm">领导</a><a class="tag" taget="_blank" href="/search/%E7%AE%A1%E7%90%86/1.htm">管理</a><a class="tag" taget="_blank" href="/search/%E5%9B%A2%E9%98%9F/1.htm">团队</a>
                                    <div>责任 

  优秀的领导:优秀的领导总是对他所负责的项目担负起责任。如果项目不幸失败了,那么他知道该受责备的人是他自己,并且敢于承认错误。 
  
 差劲的领导:差劲的领导觉得这不是他的问题,因此他会想方设法证明是他的团队不行,或是将责任归咎于团队中他不喜欢的那几个成员身上。 
 
努力工作 

  优秀的领导:团队领导应该是团队成员的榜样。至少,他应该与团队中的其他成员一样努力工作。这仅仅因为他</div>
                                </li>
                                <li><a href="/article/1492.htm"
                                       title="js函数在浏览器下的兼容" target="_blank">js函数在浏览器下的兼容</a>
                                    <span class="text-muted">Bill_chen</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a><a class="tag" taget="_blank" href="/search/DWR/1.htm">DWR</a><a class="tag" taget="_blank" href="/search/ext/1.htm">ext</a>
                                    <div>  做前端开发的工程师,少不了要用FF进行测试,纯js函数在不同浏览器下,名称也可能不同。对于IE6和FF,取得下一结点的函数就不尽相同: 
 
  IE6:node.nextSibling,对于FF是不能识别的; 
 
  FF:node.nextElementSibling,对于IE是不能识别的; 
 
兼容解决方式:var Div = node.nextSibl</div>
                                </li>
                                <li><a href="/article/1619.htm"
                                       title="【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)" target="_blank">【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a>
                                    <div>吞吐量与用户线程暂停时间 
  
衡量垃圾回收算法优劣的指标有两个: 
 
 吞吐量越高,则算法越好 
 暂停时间越短,则算法越好 
 
首先说明吞吐量和暂停时间的含义。 
  
垃圾回收时,JVM会启动几个特定的GC线程来完成垃圾回收的任务,这些GC线程与应用的用户线程产生竞争关系,共同竞争处理器资源以及CPU的执行时间。GC线程不会对用户带来的任何价值,因此,好的GC应该占</div>
                                </li>
                                <li><a href="/article/1746.htm"
                                       title="J2EE监听器和过滤器基础" target="_blank">J2EE监听器和过滤器基础</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/J2EE/1.htm">J2EE</a>
                                    <div> Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文。 
监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听。 
  
 
 ServletContex监听器 
   ServletContex又叫application</div>
                                </li>
                                <li><a href="/article/1873.htm"
                                       title="博弈AngularJS讲义(16) - 提供者" target="_blank">博弈AngularJS讲义(16) - 提供者</a>
                                    <span class="text-muted">boyitech</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/api/1.htm">api</a><a class="tag" taget="_blank" href="/search/Angular/1.htm">Angular</a><a class="tag" taget="_blank" href="/search/Provider/1.htm">Provider</a>
                                    <div>  Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。 
  那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Fac</div>
                                </li>
                                <li><a href="/article/2000.htm"
                                       title="java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。" target="_blank">java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class CommonSubSequence {

	/**
	 * 题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。
	 * 写一个版本算法复杂度O(N^2)和一个O(N) 。
	 * 
	 * O(N^2):对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。
	 * O(</div>
                                </li>
                                <li><a href="/article/2127.htm"
                                       title="sqlserver 2000 无法验证产品密钥" target="_blank">sqlserver 2000 无法验证产品密钥</a>
                                    <span class="text-muted">Chen.H</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a><a class="tag" taget="_blank" href="/search/Microsoft/1.htm">Microsoft</a>
                                    <div>在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ</div>
                                </li>
                                <li><a href="/article/2254.htm"
                                       title="[新概念武器]气象战争" target="_blank">[新概念武器]气象战争</a>
                                    <span class="text-muted">comsci</span>

                                    <div> 
 
       气象战争的发动者必须是拥有发射深空航天器能力的国家或者组织.... 
 
       原因如下: 
 
       地球上的气候变化和大气层中的云层涡旋场有密切的关系,而维持一个在大气层某个层次</div>
                                </li>
                                <li><a href="/article/2381.htm"
                                       title="oracle 中 rollup、cube、grouping 使用详解" target="_blank">oracle 中 rollup、cube、grouping 使用详解</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/grouping/1.htm">grouping</a><a class="tag" taget="_blank" href="/search/rollup/1.htm">rollup</a><a class="tag" taget="_blank" href="/search/cube/1.htm">cube</a>
                                    <div>oracle 中 rollup、cube、grouping 使用详解 -- 使用oracle 样例表演示 转自namesliu 
 
-- 使用oracle 的样列库,演示 rollup, cube, grouping 的用法与使用场景  
  
--- ROLLUP , 为了理解分组的成员数量,我增加了 分组的计数  COUNT(SAL)  
 </div>
                                </li>
                                <li><a href="/article/2508.htm"
                                       title="技术资料汇总分享" target="_blank">技术资料汇总分享</a>
                                    <span class="text-muted">Dead_knight</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%96%99%E6%B1%87%E6%80%BB+%E5%88%86%E4%BA%AB/1.htm">技术资料汇总 分享</a>
                                    <div>本人汇总的技术资料,分享出来,希望对大家有用。 
 
http://pan.baidu.com/s/1jGr56uE 
 
资料主要包含: 
Workflow->工作流相关理论、框架(OSWorkflow、JBPM、Activiti、fireflow...) 
Security->java安全相关资料(SSL、SSO、SpringSecurity、Shiro、JAAS...) 
Ser</div>
                                </li>
                                <li><a href="/article/2635.htm"
                                       title="初一下学期难记忆单词背诵第一课" target="_blank">初一下学期难记忆单词背诵第一课</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a>
                                    <div>could 能够 
minute 分钟 
Tuesday 星期二 
February 二月 
eighteenth 第十八 
listen 听 
careful 小心的,仔细的 
short 短的 
heavy 重的 
empty 空的 
certainly 当然 
carry 携带;搬运 
tape 磁带 
basket 蓝子 
bottle 瓶 
juice 汁,果汁 
head 头;头部 
</div>
                                </li>
                                <li><a href="/article/2762.htm"
                                       title="截取视图的图片, 然后分享出去" target="_blank">截取视图的图片, 然后分享出去</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a>
                                    <div>OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast. 
I implemented a category method on UIView to get the vi</div>
                                </li>
                                <li><a href="/article/2889.htm"
                                       title="MySql重置密码" target="_blank">MySql重置密码</a>
                                    <span class="text-muted">fanxiaolong</span>
<a class="tag" taget="_blank" href="/search/MySql%E9%87%8D%E7%BD%AE%E5%AF%86%E7%A0%81/1.htm">MySql重置密码</a>
                                    <div>方法一: 
 在my.ini的[mysqld]字段加入: 
skip-grant-tables 
重启mysql服务,这时的mysql不需要密码即可登录数据库 
 然后进入mysql 
mysql>use mysql; 
 mysql>更新 user set password=password('新密码') WHERE User='root'; 
mysq</div>
                                </li>
                                <li><a href="/article/3016.htm"
                                       title="Ehcache(03)——Ehcache中储存缓存的方式" target="_blank">Ehcache(03)——Ehcache中储存缓存的方式</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/MemoryStore/1.htm">MemoryStore</a><a class="tag" taget="_blank" href="/search/DiskStore/1.htm">DiskStore</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8/1.htm">存储</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E9%99%A4%E7%AD%96%E7%95%A5/1.htm">驱除策略</a>
                                    <div>Ehcache中储存缓存的方式 
  
目录 
1     堆内存(MemoryStore) 
1.1     指定可用内存 
1.2     驱除策略 
1.3     元素过期 
2   &nbs</div>
                                </li>
                                <li><a href="/article/3143.htm"
                                       title="spring mvc中的@propertysource" target="_blank">spring mvc中的@propertysource</a>
                                    <span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a>
                                    <div>  在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了: 
 
@PropertySource  在spring 3.1中开始引入 
 
比如有配置文件 
config.properties 
 
mongodb.url=1.2.3.4 
mongodb.db=hello 
 
则代码中 
  

@PropertySource(&</div>
                                </li>
                                <li><a href="/article/3270.htm"
                                       title="重学单例模式" target="_blank">重学单例模式</a>
                                    <span class="text-muted">lanqiu17</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/Singleton/1.htm">Singleton</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%BC%8F/1.htm">模式</a>
                                    <div>最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。 
	第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。
	单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式
	静态内部类方式: 
package test.pattern.singleton.statics;

publ</div>
                                </li>
                                <li><a href="/article/3397.htm"
                                       title=".NET开源核心运行时,且行且珍惜" target="_blank">.NET开源核心运行时,且行且珍惜</a>
                                    <span class="text-muted">netcome</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a>
                                    <div>背景 
2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心</div>
                                </li>
                                <li><a href="/article/3524.htm"
                                       title="使用oscahe缓存技术减少与数据库的频繁交互" target="_blank">使用oscahe缓存技术减少与数据库的频繁交互</a>
                                    <span class="text-muted">Everyday都不同</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/oscahe%E7%BC%93%E5%AD%98/1.htm">oscahe缓存</a>
                                    <div>此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。 
  
缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——</div>
                                </li>
                                <li><a href="/article/3651.htm"
                                       title="Spring+Mybatis 手动控制事务" target="_blank">Spring+Mybatis 手动控制事务</a>
                                    <span class="text-muted">toknowme</span>
<a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a>
                                    <div>@Override 
   public boolean testDelete(String jobCode) throws Exception { 
      boolean flag = false; 
 &nbs</div>
                                </li>
                                <li><a href="/article/3778.htm"
                                       title="菜鸟级的android程序员面试时候需要掌握的知识点" target="_blank">菜鸟级的android程序员面试时候需要掌握的知识点</a>
                                    <span class="text-muted">xp9802</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>熟悉Android开发架构和API调用 
掌握APP适应不同型号手机屏幕开发技巧 
熟悉Android下的数据存储  
熟练Android Debug Bridge Tool 
熟练Eclipse/ADT及相关工具  
熟悉Android框架原理及Activity生命周期 
熟练进行Android UI布局 
熟练使用SQLite数据库; 
熟悉Android下网络通信机制,S</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>