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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ES6֮·֮ģ¿éÏê½â
 
  3563  次浏览      27
  2018-5-28
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÍøÂç ,±¾Îļòµ¥µÄ¶ÔES6Ä£¿é½øÐÐÁ˸ÅÊöºÍÏê½â£¬Ï£Íû¶ÔÄúµÄѧϰÓаïÖú¡£

¼ò½é

ºÎΪģ¿é

Ò»¸öÄ£¿éÖ»²»¹ýÊÇÒ»¸öдÔÚÎļþÖÐµÄ JavaScript ´úÂë¿é¡£

Ä£¿éÖеĺ¯Êý»ò±äÁ¿²»¿ÉÓ㬳ý·ÇÄ£¿éÎļþµ¼³öËüÃÇ¡£

¼òµ¥µØËµ£¬ÕâЩģ¿é¿ÉÒÔ°ïÖúÄãÔÚÄãµÄÄ£¿éÖбàд´úÂ룬²¢ÇÒÖ»¹«¿ªÓ¦¸Ã±»ÄãµÄ´úÂëµÄÆäËû²¿·Ö·ÃÎʵĴúÂ벿·Ö¡£

ΪʲôҪʹÓÃÄ£¿é

1.Ôö¼Ó¿Éά»¤ÐÔ£ºÓÉÓÚÿ¸öÄ£¿é¶¼ÊǶÀÁ¢µÄ£¬Ã¿¸öÈËдµÄ´úÂëÊDz»»áÏ໥ӰÏìµÄ£¬ÔÚά»¤´úÂëµÄʱºòºÜºÃÅŲéÊÇÄĸöÄ£¿é³ö´í¡£

2.¿É¸´ÓÃÐÔ£ºÔÚÈÕ³£µÄ¿ª·¢ÖУ¬ÌرðÊÇ´óµãµÄÏîÄ¿£¬´úÂëµÄ¿É¸´ÓÃÐԾ͸üÖØÒªÁË£¬Ò²ÐíÄã»áÓø´ÖÆÕ³ÌùµÄÐÎʽ£¬µ«ÊÇÖ±½ÓÒ»¸ö import ÃüÁî¾Í¿ÉÒԸ㶨£¬Æñ²»¿ìÔÕ¡£

3.±ÜÃâÃüÃûÎÛȾ£ºÔÚ javascript ½Å±¾ÖУ¬ËùÓÐµÄ js ÎļþµÄ¶¥¼¶×÷ÓÃÓò´´½¨µÄ±äÁ¿£¬»á±»Ìí¼Óµ½¹²ÏíµÄÈ«¾Ö×÷ÓÃÓò£¬Õâ¾Í»áµ¼Ö²»Í¬µÄÈË¿ª·¢µÄ´úÂë¿ÉÄÜ»áÓÐÏàͬµÄ±äÁ¿Ãû£¬µ¼Ö±äÁ¿ÃûÎÛȾ¡£

ÈçºÎʹÓÃ

µ¼³öÄ£¿é

µ¼³öÄ£¿éËùÓõÄÃüÁîÊÇ export¡£

Ç°ÃæÒ²Ìáµ½Ò»¸öÄ£¿é¾ÍÊÇÒ»¸ö javascript Îļþ£¬ÔÚÕâ¸öÄ£¿éÖж¨ÒåµÄ±äÁ¿£¬ÍⲿÊÇÎÞ·¨»ñÈ¡µ½µÄ£¬Ö»ÓÐͨ¹ý export µ¼³öµÄ±äÁ¿ÆäËûÄ£¿é²Å¿ÉÒÔÓÃ

×î¼òµ¥µÄµ¼³ö·½Ê½¾ÍÊÇÔÚÉùÃ÷µÄ±äÁ¿¡¢º¯Êý¡¢ÀàÇ°Ãæ¼ÓÒ»¸ö export

// export1.js

// µ¼³ö±äÁ¿
export let name = 'ÌÒÎÌ';

// µ¼³öº¯Êý
export function print() {
console.log("»¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°");
}

// µ¼³öÀà
export class Person {
constructor(name) {
this.name = name;
}
}
// ˽Óк¯Êý
function privateFunction () {
console.log('ÎÒÊÇ˽Óк¯Êý£¬Íⲿ·ÃÎʲ»ÁËÎÒ');
}

×¢Ò⣺

1. ±»µ¼³öµÄº¯Êý»òÕßÀ࣬¶¼±ØÐëÒªÓÐÃû³Æ£¬Òâ˼¾ÍÊÇ˵²»ÄÜÓÃÕâÖÖ·½Ê½µ¼³öÄäÃûº¯Êý»òÕßÄäÃûÀà¡£

2. privateFunction º¯Êý£¬Ã»ÓÐ¼Ó export ÃüÁ±»µ±×öÕâ¸öÄ£¿éµÄ˽ÓбäÁ¿£¬ÆäËûÄ£¿éÊÇ·ÃÎʲ»µ½µÄ¡£

³ýÁËÉÏÃæÄÇÖÖµ¼³ö·½Ê½£¬»¹ÓÐÁíÍâÒ»ÖÖ

// export2.js

// µ¼³ö±äÁ¿
let name = 'ÌÒÎÌ'£»

// µ¼³öº¯Êý
function print() {
return '»¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}

// µ¼³öÀà
class Person {
constructor(name) {
this.name = name;
}
}

// ˽Óк¯Êý
function privateFunction () {
return 'ÎÒÊÇ˽Óк¯Êý£¬Íⲿ·ÃÎʲ»ÁËÎÒ';
}

export { name, print, Person }

ÉÏÃæÕâÖÖд·¨µ¼ÈëÒ»×é±äÁ¿£¬Óë export1.js Êǵȼ۵ġ£

µ¼ÈëÄ£¿é

µ¼ÈëµÄÄ£¿é¿ÉÒÔÀí½âΪÊÇÉú²úÕߣ¨»òÕß·þÎñµÄÌṩÕߣ©£¬¶øÊ¹Óõ¼ÈëµÄÄ£¿éµÄÄ£¿é¾ÍÊÇÏû·ÑÕß¡£

µ¼ÈëÄ£¿éµÄÃüÁîÊÇ import, import µÄ»ù±¾ÐÎʽÈçÏ£º

import { var1, var2 } from './example.js'

import Óï¾ä°üº¬Á½²¿·Ö£ºÒ»Êǵ¼ÈëÐèÒªµÄ±êʶ·û£¬¶þÊÇÄ£¿éµÄÀ´Ô´¡£

×¢Ò⣺ä¯ÀÀÆ÷ÖÐÄ£¿éÀ´Ô´ÒªÒÔ¡¸/¡¹»òÕß ¡¸./¡¹ »òÕß ¡¸../¡¹¿ªÍ· »òÕß url ÐÎʽ£¬²»È»»á±¨´í¡£

ÀýÈçÎÒÃǵ¼Èë export1.js Ä£¿é£¬¿ÉÒÔÕâôµ¼Èë

// import1.js
import { name, print, Person } from './export1.js';

console.log(name); // ÌÒÎÌ

console.log(print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

// ±¨´í, ²»Äܶ¨ÒåÏàͬÃû×Ö±äÁ¿
let name = 2333;

// ±¨´í£¬²»ÄÜÖØÐ¸³Öµ
name = "СÖí";

¿ÉÒÔ¿´µ½µ¼Èë°ó¶¨(ÕâÀï²»Àí½â°ó¶¨£¬ÎÄÕºóÃæ»á½âÊÍ)ʱ£¬ÐÎʽÀàËÆÓÚ¶ÔÏó½â¹¹£¬µ«Êµ¼ÊÉϲ¢ÎÞ¹ØÁª¡£

µ±µ¼Èë°ó¶¨µÄʱºò£¬°ó¶¨ÀàËÆÓÚʹÓÃÁË const ¶¨Ò壬Òâζ×Ų»Äܶ¨ÒåÏàͬµÄ±äÁ¿Ãû£¬µ«ÊÇûÓÐÔÝʱÐÔËÀÇøÌØÐÔ(µ«ÊÇÔÚ ÉîÈëÀí½âES6 Õâ±¾ÊéÀïÃæËµÊÇÓÐÔÝʱÐÔËÀÇøÏÞÖÆ£¬ÎÒÔÚ chrome ÉϲâÊÔÁ˵쬶ÁÕßÏ£ÍûҲȥÊÔÏ£¬µ½µ×Êܲ»ÊÜÏÞÖÆ)¡£

let name = 2333;

ÉÏÃæÕâÐдúÂë»á±¨´í¡£

ÃüÃû¿Õ¼äµ¼Èë

ÕâÖÖµ¼È뷽ʽÊǰÑÕû¸öÉú²úÕßÄ£¿éµ±×öµ¥Ò»¶ÔÏóµ¼È룬ËùÓеĵ¼³ö±»µ±×ö¶ÔÏóµÄÊôÐÔ¡£

// import2.js
import * as namespace from './export1.js'

console.log(namespace.name); // ÌÒÎÌ

console.log(namespace.print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

ÖØÃüÃûµ¼Èëµ¼³ö

ÓÐʱºòÄã²¢²»Ïëµ¼³ö±äÁ¿µÄÔ­Ãû³Æ£¬ÐèÒªÖØÐÂÃüÃû,Õâ¸öʱºòÖ»ÐèҪʹÓà as ¹Ø¼ü×ÖÀ´Öƶ¨ÐµÄÃû×Ö¼´¿É¡£

ÖØÃüÃûµ¼³ö

// export3.js

function print() {
return '»¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}

export { print as advertising }

µ¼ÖØÃüÃûÈë

ÄÃÉÏÃæµ¼³öµÄ¾ÙÀý×Ó

// import3.js
import { advertising as print } from './export3.js'

console.log(typeof advertising); // "undefined"

console.log(print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

´Ë´úÂëµ¼Èë advertising º¯Êý²¢ÖØÃüÃûΪÁË print £¬ÕâÒâζ×Å´ËÄ£¿éÖÐ advertising ±êʶ·û²»´æÔÚÁË¡£

default ¹Ø¼ü×Ö

default ¹Ø¼ü×ÖÊÇÓÃÀ´×öĬÈϵ¼Èëµ¼³öµÄ¡£

ĬÈϵ¼³ö

// import3.js
import { advertising as print } from './export3.js'

console.log(typeof advertising); // "undefined"

console.log(print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

default Õâ¸ö¹Ø¼ü×ÖÔÚ JS ÖоßÓÐÌØÊ⺬Ò壬¼È¿ÉÒÔ×÷ΪͬÃüÃûµ¼³ö£¬ÓÖ±êÃ÷ÁËÄ£¿éÐèҪʹÓÃĬÈÏÖµ¡£

×¢Ò⣺ Ò»¸öÄ£¿éÖÐÖ»ÄÜÓÐÒ»¸öĬÈϵ¼³ö¡£

ĬÈϵ¼Èë

ĬÈϵ¼ÈëºÍÒ»°ãµÄµ¼È벻֮ͬ´¦¾ÍÊDz»ÐèÒª

import print from './defaultExport.js'

console.log(print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

д´óÀ¨ºÅÁË£¬¿´ÆðÀ´¸ü¼ò½à¡£

°ÑÉÏÃæ defaultExport.js Ä£¿éµ¼³öµÄ×÷ΪÀý×Ó

ÄÇÈç¹û¼ÈÓÐĬÈϵÄÓÖÓзÇĬÈϵÄÔõôµ¼ÈëÄØ£¿¿´Àý×Ó¾ÍÃ÷°×ÁË

// defaultImport1.js

let name = 'ÌÒÎÌ';

function print() {
return '»¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}

export { name, print as default }

// defaultImport2.js

import print, { name } from './defaultImport1.js'

console.log(print()); // »¶Ó­¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°

console.log(name); // ÌÒÎÌ

»ìºÏµ¼ÈëÐèÒª°ÑĬÈϵ¼ÈëµÄÃû³Æ·ÅÔÚ×îÇ°Ãæ£¬È»ºóÓöººÅºÍºóÃæ·ÇĬÈϵ¼³öµÄ·Ö¸î¿ª¡£

˼¿¼Á˺ܾÃÊÇ·ñÓ¦¸Ã¼ÓÉϽø½×ÄÚÈÝ£¬±¾À´ÊÇÏëдÈëÃż¶ÏµÁе쬵«ÊÇÏëÁËÏ룬»¹ÊǶ¼Ð´½øÀ´°É£¬ÈëÃŵĿ´ÈëÃÅÇ°Ãæ»ù´¡£¬ÉîÈëÀí½âµÄ¿´½ø½×¡£

½ø½×

½ø½×²¿·ÖÖ÷Òª½éÉÜ Ä£¿éµÄ¼¸¸öÌØÐÔ

1.¾²Ì¬Ö´ÐÐ

2.¶¯Ì¬¹ØÁª

3.Ä£¿é²»»áÖØ¸´Ö´ÐÐ

¾²Ì¬Ö´ÐÐ

Ëùν¾²Ì¬Ö´ÐÐÆäʵ¾ÍÊÇÔÚ±àÒë½×¶Î¾ÍÐèҪȷ¶¨Ä£¿éµÄÒÀÀµ¹ØÏµ£¬ÄÇô¾Í»á³öÏÖ import ÃüÁî»áÓÅÏÈÓÚÄ£¿éÆäËûÄÚÈݵÄÖ´ÐУ¬»áÌáǰµ½±àÒë½×¶ÎÖ´ÐС£

// static1.js
console.log('Å寿');

import { nouse } from './static2.js'

// static2.js
export function nouse() {
return 'ÎÒÊDz»ÐèÒªµÄ';
}

console.log('СÖí');

¿ÉÒÔ¿´µ½×îºóÊä³öµÄÓ¦¸ÃÊÇ¡¸Ð¡Öí¡¹ÏÈÊä³ö£¬¶ø¡¸Å寿¡¹ºóÊä³ö£¬¿ÉÒԵóöËäÈ» static2.js ÔÚºóÃæÒýÈ룬µ«ÊǻᱻÌáÉýµ½Ä£¿éµÄ×îÇ°ÃæÏÈÖ´ÐС£

ÕâÒ²ÊÇÎÒÇ°ÃæËù˵µÄ²»ÊÜÔÝʱÐÔËÀÇøÔ­ÒòÖ®Ò»£¬ÔÚÕâÀï¿ÉÒÔдһ¸öÀý×ÓÊÔÊÔ£º

// static3.js
console.log(nouse());

import { nouse } from './static2.js'

// ½á¹û£º
// СÖí
// ÎÒÊDz»ÐèÒªµÄ

¾­¼ìÑéȷʵÊÇ¿ÉÒÔÔÚ import ֮ǰʹÓõ¼ÈëµÄ°ó¶¨¡£

¾²Ì¬Ö´Ðл¹»áµ¼ÖÂÒ»¸öÎÊÌ⣬ÄǾÍÊDz»Äܶ¯Ì¬µ¼ÈëÄ£¿é¡£

// ±¨´í
if (flag) {
import { nouse } from './static3.js'
}

// ±¨´í
import { 'no' + 'use' } from './static3.js'

ÒòΪ import ÊǾ²Ì¬Ö´Ðеģ¬ËùÒÔÔÚ¾²Ì¬(´Ê·¨)·ÖÎö½×¶Î£¬ÊÇû·¨µÃµ½±í´ïʽ»òÕß±äÁ¿µÄÖµµÄ¡£

µ«ÊÇΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÒòΪÁË import() Õâ¸öº¯Êý£¬Õâ¸öËãÀ©Õ¹ÄÚÈݰɣ¬Ð´Ì«¶àÁËÎÒÅÂûÈË¿´ÍêÁË£¬ºóÃæ»áÓÐÀ©Õ¹ÔĶÁÁ´½Ó¡£

¶¯Ì¬¹ØÁª

ËùνµÄ¶¯Ì¬¹ØÁª£¬Æäʵ¾ÍÊÇÒ»Öְ󶨹ØÏµ, ÕâÊÇ ES6 ·Ç³£ÖØÒªµÄÌØÐÔ£¬Ò»¶¨×ÐϸÔĶÁ¡£

ÔÚ ES6 µÄÄ£¿éÖУ¬Êä³öµÄ²»ÊǶÔÏóµÄ¿½±´£¬²»¹ÜÊÇÒýÓÃÀàÐÍ»¹ÊÇ»ù±¾ÀàÐÍ, ¶¼ÊǶ¯Ì¬¹ØÁªÄ£¿éÖеÄÖµ£¬¡£

// dynamic1.js
export let name = 'ÌÒÎÌ';

export function setName(name) {
name = name;
}

// dynamic2.js
import { name, setName } from './dynamic1.js'

console.log(name); // ÌÒÎÌ

setName('²»ÒªÁ³');

console.log(name); // ²»ÒªÁ³

Ææ¼£°ãµÄ·¢ÏÖÔÚ dynamic2.js Ä£¿éÖпÉÒÔÐÞ¸Ä dynamic1.js Ä£¿éÀïÃæµÄÖµ, ²¢ÇÒ·´Ó¦µ½ name °ó¶¨ÉÏ£¨Õâ¸öÊÇÖØµã£¬Õâ¸ö·´Ó¦µ½ÁËÏû·ÑÕßÄ£¿é£©, ËùÒÔÎÒÃǰѵ¼ÈëµÄ±äÁ¿½Ð×ö°ó¶¨¡£

ÔÚÉú²úÕßÄ£¿éµ¼³öµÄ±äÁ¿ÓëÏû·ÑÕßÄ£¿éµ¼ÈëµÄ±äÁ¿»áÓÐÒ»¸ö°ó¶¨¹ØÏµ£¬ÎÞÂÛǰÕß»òÕߺóÕß·¢Éú¸Ä±ä£¬¶¼»á»¥ÏàÓ°Ïì¡£

×¢ÒâÇø·ÖÔÚÒ»¸öÎļþ»òÄ£¿éÖлù±¾ÀàÐ͵ĸ³Öµ£¬Á½ÕßÊÇ»¥²»Ó°ÏìµÄ¡£

Ä£¿é²»»áÖØ¸´Ö´ÐÐ

Õâ¸öÌØÐԱȽϺÃÀí½â£¬¾ÍÊÇÈç¹û´ÓÒ»¸öÉú²úÕßÄ£¿éÖзֱðµ¼Èë°ó¶¨£¬¶ø²»ÊÇÒ»´ÎÐÔµ¼È룬Éú²úÕßÄ£¿é²»»áÖ´Ðжà´Î¡£

// noRepeat1.js
export let name = 'ÌÒÎÌ';

export let age = '22';

console.log('ÎÒÕýÔÚÖ´ÐС£¡£¡£');

// noRepeat2.js
import { name } from './noRepeat1.js';
import { age } from './noRepeat1.js';

console.log(name);
console.log(age);

// ½á¹û
// ÎÒÕýÔÚÖ´ÐС£¡£¡£
// ÌÒÎÌ
// 22

ËäÈ»µ¼ÈëÁËÁ½´Î£¬µ«ÊÇ noRepeat1.js Ö»ÓÐÖ´ÐÐÒ»´Î¡£Èôͬһ¸öÓ¦Óã¨×¢ÒâÊÇͬһ¸öÓ¦Óò»ÊÇÄ£¿é£©Öе¼Èëͬһ¸öÄ£¿é£¬ÔòÄÇЩģ¿é¶¼»áʹÓÃÒ»¸öÄ£¿éʵÀý£¬Òâ˼¾ÍÊÇ˵ÊÇÒ»¸öµ¥Àý¡£

 

 

   
3563 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì