Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÎÒÑÛÖеÄJavaScriptº¯Êýʽ±à³Ì
 
À´Ô´£º51CTO ·¢²¼ÓÚ 2017-4-20
  2386  次浏览      30
 

JavaScript º¯Êýʽ±à³ÌÊÇÒ»¸ö´æÔÚÁ˺ܾõϰÌ⣬µ«Ëƺõ´Ó 2016 Ä꿪ʼ£¬Ëü±äµÃÔ½À´Ô½»ðÈÈ¡£Õâ¿ÉÄÜÊÇÒòΪ ES6 Óï·¨¶ÔÓÚº¯Êýʽ±à³Ì¸üΪÓѺã¬Ò²¿ÉÄÜÊÇÒòΪÖîÈç RxJS (ReactiveX) µÈº¯Êýʽ¿ò¼ÜµÄÁ÷ÐС£

¿´¹ýÐí¶à¹ØÓÚº¯Êýʽ±à³ÌµÄ½²½â£¬µ«ÊÇÆäÖд󲿷ÖÊÇÍ£ÁôÔÚÀíÂÛ²ãÃæ£¬»¹ÓÐһЩÊǽöÕë¶Ô Haskell µÈ´¿º¯Êýʽ±à³ÌÓïÑԵġ£¶ø±¾ÎÄÖ¼ÔÚÁÄÒ»ÁÄÎÒÑÛÖеĺ¯Êýʽ±à³ÌÔÚ JavaScript ÖеľßÌåʵ¼ù£¬Ö®ËùÒÔÊÇ ¡°ÎÒÑÛÖеġ± ¼´ÎÒËù˵µÄ½ö´ú±í¸öÈ˹۵㣬¿ÉÄܺͲ¿·Ö Ñϸñ¸ÅÄî ÊÇÓгåÍ»µÄ¡£

±¾ÎĽ«ÂÔÈ¥Ò»´ó¶ÑÐÎʽ»¯µÄ¸ÅÄî½éÉÜ£¬ÖصãչʾÔÚ JavaScript Öе½µ×ʲôÊǺ¯ÊýʽµÄ´úÂë¡¢º¯Êýʽ´úÂëÓëÒ»°ãд·¨ÓÐÊ²Ã´Çø±ð¡¢º¯ÊýʽµÄ´úÂëÄܸøÎÒÃÇ´øÀ´Ê²Ã´ºÃ´¦ÒÔ¼°³£¼ûµÄһЩº¯ÊýʽģÐͶ¼ÓÐÄÄЩ¡£

ÎÒÀí½âµÄº¯Êýʽ±à³Ì

ÎÒÈÏΪº¯Êýʽ±à³Ì¿ÉÒÔÀí½âΪ£¬ÒÔº¯Êý×÷ΪÖ÷ÒªÔØÌåµÄ±à³Ì·½Ê½£¬Óú¯ÊýÈ¥²ð½â¡¢³éÏóÒ»°ãµÄ±í´ïʽ

ÓëÃüÁîʽÏà±È£¬ÕâÑù×öµÄºÃ´¦ÔÚÄÄ£¿Ö÷ÒªÓÐÒÔϼ¸µã£º

ÓïÒå¸ü¼ÓÇåÎú

¿É¸´ÓÃÐÔ¸ü¸ß

¿Éά»¤ÐÔ¸üºÃ

×÷ÓÃÓò¾ÖÏÞ£¬¸±×÷ÓÃÉÙ

»ù±¾µÄº¯Êýʽ±à³Ì

ÏÂÃæÀý×ÓÊÇÒ»¸ö¾ßÌåµÄº¯ÊýʽÌåÏÖ

// Êý×éÖÐÿ¸öµ¥´Ê£¬Ê××Öĸ´óд

// Ò»°ãд·¨
const arr = ['apple', 'pen', 'apple-pen'];
for(const i in arr){
const c = arr[i][0];
arr[i] = c.toUpperCase() + arr[i].slice(1);
}

console.log(arr);

// º¯Êýʽд·¨Ò»
function upperFirst(word) {
return word[0].toUpperCase() + word.slice(1);
}

function wordToUpperCase(arr) {
return arr.map(upperFirst);
}

console.log(wordToUpperCase(['apple', 'pen', 'apple-pen']));

// º¯Êýʽд·¨¶þ
console.log(arr.map(['apple', 'pen', 'apple-pen'], word => word[0].toUpperCase() + word.slice(1)));

µ±Çé¿ö±äµÃ¸ü¼Ó¸´ÔÓʱ£¬±í´ïʽµÄд·¨»áÓöµ½¼¸¸öÎÊÌ⣺

±íÒâ²»Ã÷ÏÔ£¬Öð½¥±äµÃÄÑÒÔά»¤

¸´ÓÃÐԲ»á²úÉú¸ü¶àµÄ´úÂëÁ¿

»á²úÉúºÜ¶àÖмä±äÁ¿

º¯Êýʽ±à³ÌºÜºÃµÄ½â¾öÁËÉÏÊöÎÊÌâ¡£Ê×ÏȲο´ º¯Êýʽд·¨Ò»£¬ËüÀûÓÃÁ˺¯Êý·â×°ÐÔ½«¹¦ÄÜ×ö²ð½â£¨Á£¶È²»Î¨Ò»£©£¬²¢·âװΪ²»Í¬µÄº¯Êý£¬¶øÔÙÀûÓÃ×éºÏµÄµ÷ÓôﵽĿµÄ¡£ÕâÑù×öʹµÃ±íÒâÇåÎú£¬Ò×ÓÚά»¤¡¢¸´ÓÃÒÔ¼°À©Õ¹¡£Æä´ÎÀûÓà ¸ß½×º¯Êý£¬Array.map ´úÌæ for¡­of ×öÊý×é±éÀú£¬¼õÉÙÁËÖмä±äÁ¿ºÍ²Ù×÷¡£

¶ø º¯Êýʽд·¨Ò» ºÍ º¯Êýʽд·¨¶þ Ö®¼äµÄÖ÷Òª²î±ðÔÚÓÚ£¬¿ÉÒÔ¿¼ÂǺ¯ÊýÊÇ·ñºóÐøÓи´ÓõĿÉÄÜ£¬Èç¹ûûÓУ¬ÔòºóÕ߸üÓÅ¡£

Á´Ê½ÓÅ»¯

´ÓÉÏÃæ º¯Êýʽд·¨¶þ ÖÐÎÒÃÇ¿ÉÒÔ¿´³ö£¬º¯Êýʽ´úÂëÔÚдµÄ¹ý³ÌÖУ¬ºÜÈÝÒ×Ôì³É ºáÏòÑÓÕ¹£¬¼´²úÉú¶à²ãǶÌ×£¬ÏÂÃæÎÒÃǾٸö±È½Ï¼«¶ËµãµÄÀý×Ó¡£

// ¼ÆËãÊý×ÖÖ®ºÍ

// Ò»°ãд·¨
console.log(1 + 2 + 3 - 4)

// º¯Êýʽд·¨
function sum(a, b) {
return a + b;
}

function sub(a, b) {
return a - b;
}

console.log(sub(sum(sum(1, 2), 3), 4);

±¾Àý½öΪչʾ ºáÏòÑÓÕ¹ µÄ±È½Ï¼«¶ËµÄÇé¿ö£¬Ëæ×ź¯ÊýµÄǶÌײãÊý²»¶ÏÔö¶à£¬µ¼Ö´úÂëµÄ¿É¶ÁÐÔ´ó·ùϽµ£¬»¹ºÜÈÝÒײúÉú´íÎó¡£

ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂǶàÖÖÓÅ»¯·½Ê½£¬±ÈÈçÏÂÃæµÄ Á´Ê½ÓÅ»¯ ¡£

// ÓÅ»¯Ð´·¨ (àÅ£¬Äãû¿´´í£¬Õâ¾ÍÊÇ lodash µÄÁ´Ê½Ð´·¨)
const utils = {
chain(a) {
this._temp = a;
return this;
},
sum(b) {
this._temp += b;
return this;
},
sub(b) {
this._temp -= b;
return this;
},
value() {
const _temp = this._temp;
this._temp = undefined;
return _temp;
}
};

console.log(utils.chain(1).sum(2).sum(3).sub(4).value());

ÕâÑù¸Äдºó£¬½á¹¹»áÕûÌå±äµÃ±È½ÏÇåÎú£¬¶øÇÒÁ´µÄÿһ»·ÔÚ×öʲôҲ¿ÉÒÔºÜÈÝÒ×µÄÕ¹ÏÖ³öÀ´¡£º¯ÊýµÄǶÌ׺ÍÁ´Ê½µÄ¶Ô±È»¹ÓÐÒ»¸öºÜºÃµÄÀý×Ó£¬ÄǾÍÊÇ »Øµ÷º¯Êý ºÍ Promise ģʽ¡£

// ˳ÐòÇëÇóÁ½¸ö½Ó¿Ú

// »Øµ÷º¯Êý
import $ from 'jquery';
$.post('a/url/to/target', (rs) => {
if(rs){
$.post('a/url/to/another/target', (rs2) => {
if(rs2){
$.post('a/url/to/third/target');
}
});
}
});

// Promise
import request from 'catta'; // catta ÊÇÒ»¸öÇáÁ¿¼¶ÇëÇ󹤾ߣ¬Ö§³Ö fetch,jsonp,ajax£¬ÎÞÒÀÀµ
request('a/url/to/target')
.then(rs => rs ? $.post('a/url/to/another/target') : Promise.reject())
.then(rs2 => rs2 ? $.post('a/url/to/third/target') : Promise.reject());

Ëæ×Żص÷º¯ÊýǶÌײ㼶ºÍµ¥²ã¸´ÔÓ¶ÈÔö¼Ó£¬Ëü½«»á±äµÃÓ·Ö×ÇÒÄÑÒÔά»¤£¬¶ø Promise µÄÁ´Ê½½á¹¹£¬Ôڸ߸´ÔÓ¶Èʱ£¬ÈÔÄÜ×ÝÏòÀ©Õ¹£¬¶øÇÒ²ã´Î¸ôÀëºÜÇåÎú¡£

³£¼ûµÄº¯Êýʽ±à³ÌÄ£ÐÍ

±Õ°ü£¨Closure£©

¿ÉÒÔ±£Áô¾Ö²¿±äÁ¿²»±»ÊͷŵĴúÂë¿é£¬±»³ÆÎªÒ»¸ö±Õ°ü

±Õ°üµÄ¸ÅÄî±È½Ï³éÏó£¬ÏàÐÅ´ó¼Ò¶¼»ò¶à»òÉÙÖªµÀ¡¢Óõ½Õâ¸öÌØÐÔ

ÄÇô±Õ°üµ½µ×ÄܸøÎÒÃÇ´øÀ´Ê²Ã´ºÃ´¦£¿

ÏÈÀ´¿´Ò»ÏÂÈçºÎ´´½¨Ò»¸ö±Õ°ü£º

// ´´½¨Ò»¸ö±Õ°ü
function makeCounter() {
let k = 0;

return function() {
return ++k;
};
}

const counter = makeCounter();

console.log(counter()); // 1
console.log(counter()); // 2

makeCounter Õâ¸öº¯ÊýµÄ´úÂë¿é£¬ÔÚ·µ»ØµÄº¯ÊýÖУ¬¶Ô¾Ö²¿±äÁ¿ k £¬½øÐÐÁËÒýÓ㬵¼Ö¾ֲ¿±äÁ¿ÎÞ·¨ÔÚº¯ÊýÖ´ÐнáÊøºó£¬±»ÏµÍ³»ØÊÕµô£¬´Ó¶ø²úÉúÁ˱հü¡£¶øÕâ¸ö±Õ°üµÄ×÷ÓþÍÊÇ£¬¡°±£Áôס¡° Á˾ֲ¿±äÁ¿£¬Ê¹Äڲ㺯Êýµ÷ÓÃʱ£¬¿ÉÒÔÖØ¸´Ê¹ÓøñäÁ¿£»¶ø²»Í¬ÓÚÈ«¾Ö±äÁ¿£¬¸Ã±äÁ¿Ö»ÄÜÔÚº¯ÊýÄÚ²¿±»ÒýÓá£

»»¾ä»°Ëµ£¬±Õ°üÆäʵ¾ÍÊÇ´´Ôì³öÁËһЩº¯Êý˽ÓÐµÄ ¡±³Ö¾Ã»¯±äÁ¿¡°¡£

ËùÒÔ´ÓÕâ¸öÀý×Ó£¬ÎÒÃÇ¿ÉÒÔ×ܽá³ö£¬±Õ°üµÄ´´ÔìÌõ¼þÊÇ£º

´æÔÚÄÚ¡¢ÍâÁ½²ãº¯Êý

Äڲ㺯Êý¶ÔÍâ²ãº¯ÊýµÄ¾Ö²¿±äÁ¿½øÐÐÁËÒýÓÃ

±Õ°üµÄÓÃ;

±Õ°üµÄÖ÷ÒªÓÃ;¾ÍÊÇ¿ÉÒÔ¶¨ÒåһЩ×÷ÓÃÓò¾ÖÏ޵ij־û¯±äÁ¿£¬ÕâЩ±äÁ¿¿ÉÒÔÓÃÀ´×ö»º´æ»òÕß¼ÆËãµÄÖмäÁ¿µÈµÈ¡£

// ¼òµ¥µÄ»º´æ¹¤¾ß
// ÄäÃûº¯Êý´´ÔìÁËÒ»¸ö±Õ°ü
const cache = (function() {
const store = {};

return {
get(key) {
return store[key];
},
set(key, val) {
store[key] = val;
}
}
}());

cache.set('a', 1);
cache.get('a'); // 1

ÉÏÃæÀý×ÓÊÇÒ»¸ö¼òµ¥µÄ»º´æ¹¤¾ßµÄʵÏÖ£¬ÄäÃûº¯Êý´´ÔìÁËÒ»¸ö±Õ°ü£¬Ê¹µÃ store ¶ÔÏó £¬Ò»Ö±¿ÉÒÔ±»ÒýÓ㬲»»á±»»ØÊÕ¡£

±Õ°üµÄ±×¶Ë

³Ö¾Ã»¯±äÁ¿²»»á±»Õý³£ÊÍ·Å£¬³ÖÐøÕ¼ÓÃÄÚ´æ¿Õ¼ä£¬ºÜÈÝÒ×Ôì³ÉÄÚ´æÀË·Ñ£¬ËùÒÔÒ»°ãÐèҪһЩ¶îÍâÊÖ¶¯µÄÇåÀí»úÖÆ¡£

¸ß½×º¯Êý

½ÓÊÜ»òÕß·µ»ØÒ»¸öº¯ÊýµÄº¯Êý³ÆÎª¸ß½×º¯Êý

ÌýÉÏÈ¥ºÜ¸ßÀäµÄÒ»¸ö´Ê»ã£¬µ«ÊÇÆäʵÎÒÃǾ­³£Óõ½£¬Ö»ÊÇÔ­À´²»ÖªµÀËûÃǵÄÃû×Ö¶øÒÑ¡£JavaScript ÓïÑÔÊÇÔ­ÉúÖ§³Ö¸ß½×º¯ÊýµÄ£¬ÒòΪ JavaScript µÄº¯ÊýÊÇÒ»µÈ¹«Ãñ£¬Ëü¼È¿ÉÒÔ×÷Ϊ²ÎÊýÓÖ¿ÉÒÔ×÷ΪÁíÒ»¸öº¯ÊýµÄ·µ»ØÖµÊ¹Óá£

ÎÒÃǾ­³£¿ÉÒÔÔÚ JavaScript Öмûµ½Ðí¶àÔ­ÉúµÄ¸ß½×º¯Êý£¬ÀýÈç Array.map , Array.reduce , Array.filter

ÏÂÃæÒÔ map ΪÀý£¬ÎÒÃÇ¿´¿´ËûÊÇÈçºÎʹÓõÄ

map £¨Ó³É䣩

Ó³ÉäÊǶԼ¯ºÏ¶øÑԵ쬼´°Ñ¼¯ºÏµÄÿһÏî¶¼×öÏàͬµÄ±ä»»£¬²úÉúÒ»¸öÐµļ¯ºÏ

map ×÷Ϊһ¸ö¸ß½×º¯Êý£¬Ëû½ÓÊÜÒ»¸öº¯Êý²ÎÊý×÷ΪӳÉäµÄÂß¼­

// Êý×éÖÐÿһÏî¼ÓÒ»£¬×é³ÉÒ»¸öÐÂÊý×é

// Ò»°ãд·¨
const arr = [1,2,3];
const rs = [];
for(const n of arr){
rs.push(++n);
}
console.log(rs)

// map¸Äд
const arr = [1,2,3];
const rs = arr.map(n => ++n);

ÉÏÃæÒ»°ãд·¨£¬ÀûÓà for...of Ñ­»·µÄ·½Ê½±éÀúÊý×é»á²úÉú¶îÍâµÄ²Ù×÷£¬¶øÇÒÓиıäÔ­Êý×éµÄ·çÏÕ

¶ø map º¯Êý·â×°Á˱ØÒªµÄ²Ù×÷£¬Ê¹ÎÒÃǽöÐèÒª¹ØÐÄÓ³ÉäÂß¼­µÄº¯ÊýʵÏÖ¼´¿É£¬¼õÉÙÁË´úÂëÁ¿£¬Ò²½µµÍÁ˸±×÷ÓòúÉúµÄ·çÏÕ¡£

¿ÂÀﻯ£¨Currying£©

¸ø¶¨Ò»¸öº¯ÊýµÄ²¿·Ö²ÎÊý£¬Éú³ÉÒ»¸ö½ÓÊÜÆäËû²ÎÊýµÄк¯Êý

¿ÉÄܲ»³£Ìýµ½Õâ¸öÃû´Ê£¬µ«ÊÇÓùý undescore »ò lodash µÄÈ˶¼¼û¹ýËû¡£

ÓÐÒ»¸öÉñÆæµÄ _.partial º¯Êý£¬Ëü¾ÍÊÇ¿ÂÀﻯµÄʵÏÖ

// »ñȡĿ±êÎļþ¶Ô»ù´¡Â·¾¶µÄÏà¶Ô·¾¶

// Ò»°ãд·¨
const BASE = '/path/to/base';
const relativePath = path.relative(BASE, '/some/path');

// _.parical ¸Äд
const BASE = '/path/to/base';
const relativeFromBase = _.partial(path.relative, BASE);

const relativePath = relativeFromBase('/some/path');

ͨ¹ý _.partial £¬ÎÒÃǵõ½ÁËеĺ¯Êý relativeFromBase £¬Õâ¸öº¯ÊýÔÚµ÷ÓÃʱ¾ÍÏ൱ÓÚµ÷Óà path.relative £¬²¢Ä¬ÈϽ«µÚÒ»¸ö²ÎÊý´«Èë BASE £¬ºóÐø´«ÈëµÄ²ÎÊý˳ÐòºóÖá£

±¾ÀýÖУ¬ÎÒÃÇÕæÕýÏëÍê³ÉµÄ²Ù×÷ÊÇÿ´Î»ñµÃÏà¶ÔÓÚ BASE µÄ·¾¶£¬¶ø·ÇÏà¶ÔÓÚÈκη¾¶¡£¿ÂÀﻯ¿ÉÒÔʹÎÒÃÇÖ»¹ØÐĺ¯ÊýµÄ²¿·Ö²ÎÊý£¬Ê¹º¯ÊýµÄÓÃ;¸ü¼ÓÇåÎú£¬µ÷Óøü¼Ó¼òµ¥¡£

×éºÏ£¨Composing£©

½«¶à¸öº¯ÊýµÄÄÜÁ¦ºÏ²¢£¬´´ÔìÒ»¸öеĺ¯Êý

ͬÑùÄãµÚÒ»´Î¼ûµ½Ëû¿ÉÄÜ»¹ÊÇÔÚ lodash ÖУ¬compose ·½·¨£¨ÏÖÔڽРflow£©

// Êý×éÖÐÿ¸öµ¥´Ê´óд£¬×ö Base64

// Ò»°ãд·¨ (ÆäÖÐÒ»ÖÖ)
const arr = ['pen', 'apple', 'applypen'];
const rs = [];
for(const w of arr){
rs.push(btoa(w.toUpperCase()));
}
console.log(rs);

// _.flow ¸Äд
const arr = ['pen', 'apple', 'applypen'];
const upperAndBase64 = _.partialRight(_.map, _.flow(_.upperCase, btoa));
console.log(upperAndBase64(arr));

_.flow ½«×ª´óдºÍת Base64 µÄº¯ÊýµÄÄÜÁ¦ºÏ²¢£¬Éú³ÉÒ»¸öеĺ¯Êý¡£·½±ã×÷Ϊ²ÎÊýº¯Êý»òºóÐø¸´Óá£

×Ô¼ºµÄ¹Ûµã

ÎÒÀí½âµÄ JavaScript º¯Êýʽ±à³Ì£¬¿ÉÄܺÍÐí¶à´«Í³¸ÅÄͬ¡£ÎÒ²¢²»Ö»ÈÏΪ ¸ß½×º¯Êý Ë㺯Êýʽ±à³Ì£¬ÆäËûµÄÖîÈçÆÕͨº¯Êý½áºÏµ÷Óá¢Á´Ê½½á¹¹µÈ£¬ÎÒ¶¼ÈÏΪÊôÓÚº¯Êýʽ±à³ÌµÄ·¶³ë£¬Ö»ÒªËûÃÇÊÇÒÔº¯Êý×÷ΪÖ÷ÒªÔØÌåµÄ¡£

¶øÎÒÈÏΪº¯Êýʽ±à³Ì²¢²»ÊDZØÐëµÄ£¬ËüÒ²²»Ó¦¸ÃÊÇÒ»¸öÇ¿ÖÆµÄ¹æ¶¨»òÒªÇó¡£ÓëÃæÏò¶ÔÏó»òÆäËû˼ÏëÒ»Ñù£¬ËüÒ²ÊÇÆäÖÐÒ»ÖÖ·½Ê½¡£ÎÒÃǸü¶àÇé¿öÏ£¬Ó¦¸ÃÊǼ¸ÕߵĽáºÏ£¬¶ø²»ÊǾÖÏÞÓÚ¸ÅÄî¡£

   
2386 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢