æ¬éå½ååºäºé£äºå·²ç»åºå¼ï¼ä»ç¶å¯ç¨ï¼ä½æ¯å·²è®¡åå é¤ï¼æè è¿æ¶ï¼å·²è¢«å é¤ï¼æ æ³ä½¿ç¨ï¼ç JavaScript ç¹æ§ã
åºå¼çç¹æ§è¿äºåºå¼çç¹æ§ä»ç¶å¯ä»¥ä½¿ç¨ï¼ä½æ¯ä½¿ç¨æ¶ä¸å®è¦ä¿æè°¨æ ï¼å 为å®ä»¬å¾å¯è½ä¼å¨æªæ¥çæä¸ªæ¶é´ç¹è¢«ç§»é¤ãåºå½å°å ¶ä»éè¦ä½¿ç¨ç代ç ä¸ç§»é¤ã
ECMAScript è§èç Annex B é¨åååºäºå ¶ä¸çä¸äºåºå¼åè½ãè¿ä¸é¨å被æè¿°ä¸ºè§èæ§çå¯éåè½ï¼ä¹å°±æ¯è¯´ï¼web æµè§å¨ä¸»æºå¿ é¡»å®ç°è¿äºåè½ï¼èé web 主æºå¯ä»¥ä¸å®ç°ãè¿äºåè½å¾å¯è½æ¯ç¨³å®çï¼å 为å é¤å®ä»¬ä¼å¯¼è´åä¸å ¼å®¹çé®é¢ï¼å¹¶ç ´åä¼ ç»çç½ç«ï¼JavaScript çè®¾è®¡ç®æ æ¯âä¸è¦ç ´å webâï¼ãå°½ç®¡å¦æ¤ï¼å®ä»¬è¿æ¯ä¸è½è·¨å¹³å°ç§»æ¤ï¼èä¸å¯è½ä¸è¢«ææçåæå·¥å ·ææ¯æï¼æä»¥å»ºè®®ä½ ä¸è¦ä½¿ç¨å®ä»¬ï¼æ£å¦ Annex B çä»ç»æè¯´ï¼
⦠All of the language features and behaviors specified in this annex have one or more undesirable characteristics and in the absence of legacy usage would be removed from this specification.ï¼æ¬éå½ä¸è§å®çææè¯è¨ç¹æ§åè¡ä¸ºé½æä¸ä¸ªæå¤ä¸ªä¸çæ³çç¹æ§ï¼å¨æ²¡æéç使ç¨çæ åµä¸ï¼å°ä»æ¬è§èä¸å é¤ãï¼ â¦
⦠Programmers should not use or assume the existence of these features and behaviors when writing new ECMAScript code.ï¼ç¨åºåå¨ç¼åæ°ç ECMAScript ä»£ç æ¶ï¼ä¸åºè¯¥ä½¿ç¨æå设è¿äºç¹æ§åè¡ä¸ºçåå¨ãï¼ â¦
å ¶ä»ä¸äºï¼å°½ç®¡å¨è§è主ä½ä¸ï¼ä¹è¢«æ 记为è§èæ§å¯éï¼ä¸åºè¯¥ä¾èµå®ä»¬ã
HTML 注é妿 JavaScript æºç 被ä½ä¸ºèæ¬ä»£ç è§£æï¼å®å
许 HTML 注éï¼å°±åè¿äºèæ¬æ¯ <script>
çæ ç¾ä¸é¨å飿 ·ã
以䏿¯å¨ web æµè§å¨ï¼æä½¿ç¨æ¯æ Chrome ç V8 弿ç Node.jsï¼ä¸è¿è¡çææ JavaScript 代ç ï¼
<!-- 注é
console.log("a"); <!-- å¦å¤ä¸æ®µæ³¨é
console.log("b");
--> æ´å¤æ³¨é
// è¾åº "a" å "b"
<!--
å -->
çä½ç¨é½ä¸ //
类似ï¼å³èµ·å§è¡æ³¨éã-->
åªå¨è¡é¦ææï¼ä»¥é¿å
ä¸ç´§è·å¤§äºè¿ç®ç¬¦çåç¼å¼èªåç¸æ··æ·ï¼ï¼è <!--
å¯ä»¥åºç°å¨è¡çä»»ä½å°æ¹ã
ä¸é¢çè¿äºå±æ§å·²ç»è¢«åºå¼ãè¿å¹¶ä¸å½±åå®ä»¬å¨æ¿æ¢å符串ä¸ç使ç¨ã
$1â$9
æ¬å·å çå串å¹é ç»æã
input, $_
ç¨äºå¹é æ£å表达å¼çå符串ã
lastMatch, $&
æåå¹é çå串ã
lastParen, $+
æåä¸ä¸ªæ¬å·å çå串å¹é ã
leftContext, $`
æè¿ä¸æ¬¡å¹é åçå串ã
rightContext, $'
æè¿ä¸æ¬¡å¹é åçå串ã
è¦åï¼ é¿å 使ç¨è¿äºéæå±æ§ï¼å 为å®ä»¬å¯è½å¯¼è´ä¸å¤é¨ä»£ç äº¤äºæ¶çé®é¢ï¼
compile()
æ¹æ³å·²è¢«åºå¼ï¼è¯·æé ä¸ä¸ªæ°ç RegExp
å®ä¾ã
caller
å arguments.callee
屿§å¨ä¸¥æ ¼æ¨¡å¼ä¸åºå¼ä¸ä¸å¯ç¨ãarguments
对象ï¼è䏿¯å° arguments
ä½ä¸ºå½æ°çä¸ä¸ªå±æ§æ¥è®¿é®ãcaller
å arguments
屿§å·²ç»åºå¼ï¼å 为å®ä»¬ä¼æ³æ¼è°ç¨å½æ°ç对象ãåºå½å¨å½æ°å
é¨ä½¿ç¨ arguments
对象æ¥ä»£æ¿å½æ°ç arguments
屿§ã
String.prototype.fontsize
å String.prototype.big
ãString.prototype.substr
å¯è½ä¸ä¼å¾å¿«è¢«å é¤ï¼ä½å®è¢«å®ä¹å¨ Annex B ä¸ï¼å æ¤æ¯è§èæ§çå¯é项ãString.prototype.trimLeft
å String.prototype.trimRight
åºæ¿æ¢ä¸º String.prototype.trimStart
å String.prototype.trimEnd
ãgetYear()
å setYear()
æ¹æ³ååå¹´è«é®é¢å½±åï¼å·²å¹¶å
¥ getFullYear
å setFullYear
ä¸ãtoGMTString()
æ¹æ³å·²è¢«å¼ç¨ï¼è¯·ä½¿ç¨ toUTCString()
æ¹æ³ãescape
å unescape
彿°å·²è¢«å¼ç¨ãä½¿ç¨ encodeURI
ãencodeURIComponent
ãdecodeURI
æ decodeURIComponent
æ¥å¯¹ç¹æ®å符ç转ä¹åºåè¿è¡ç¼ç åè§£ç ãwith
è¯å¥å¨ä¸¥æ ¼æ¨¡å¼ä¸å·²è¢«å¼ç¨ä¸ä¸å¯ç¨ã
å¨ä¸¥æ ¼æ¨¡å¼ä¸ï¼for...in
循ç¯å¤´ç var
声æä¸çåå§åå¨è¢«å¼ç¨å¹¶äº§çè¯æ³é误ãå¨éä¸¥æ ¼æ¨¡å¼ä¸ï¼å®ä»¬ä¼è¢«éé»å°å¿½ç¥ã
è¿äºè¿æ¶çåè½å·²ç»ä» JavaScript ä¸å®å ¨å é¤ï¼ä»æå®ç JavaScript çæ¬å¼å§å°±ä¸è½å使ç¨äºã
RegExp以䏿¯ RegExp
å®ä¾ç屿§ï¼ä¸åæ¯ RegExp
æé 彿°ç屿§ï¼
global
æ¯å¦é对åç¬¦ä¸²ä¸ææå¯è½çå¹é
è¿è¡æ£åè¡¨è¾¾å¼æµè¯ï¼æè
åªé对第ä¸ä¸ªå¹é
è¿è¡æµè¯ã ignoreCase
å¨å°è¯å¹é
ä¸ä¸ªåç¬¦ä¸²æ¶æ¯å¦å¿½ç¥å¤§å°åã lastIndex
å¼å§ä¸ä¸æ¬¡å¹é
çç´¢å¼ã multiline
ï¼ä¹å¯éè¿ RegExp.$*
ï¼ æ¯å¦å¨å¤è¡çåç¬¦ä¸²ä¸æç´¢ã source
模å¼çææ¬ã
valueOf()
æ¹æ³ä¸åä¸é¨ç¨äº RegExp
ãå®ä½¿ç¨ Object.prototype.valueOf()
ï¼å¹¶è¿å宿¬èº«ã
arity
屿§å·²ç»è¿æ¶ï¼è¯·ä½¿ç¨ length
代æ¿ã__count__
è¿åç´æ¥å¨ç¨æ·å®ä¹ç对象ä¸ç坿䏾屿§çæ°éã Object.keys()
__parent__
æå对象çä¸ä¸æ 没æç´æ¥çæ¿æ¢æ¹æ³ __iterator__
åéçççæå¨åè¿ä»£å¨ä¸èµ·ä½¿ç¨ã Symbol.iterator
åæ°çè¿ä»£åè®® __noSuchMethod__
å½ä¸ä¸ªä¸åå¨ç屿§è¢«ä½ä¸ºæ¹æ³è°ç¨æ¶ï¼è¿ä¸ªæ¹æ³è¢«è°ç¨ã Proxy
Object.prototype.eval()
卿å®å¯¹è±¡çä¸ä¸æä¸è¯ä¼° JavaScript 代ç åç¬¦ä¸²ã æ²¡æç´æ¥çæ¿æ¢æ¹æ³ Object.observe()
弿¥å°è§å¯ä¸ä¸ªå¯¹è±¡çååã Proxy
Object.unobserve()
ç§»é¤è§å¯å¨ã Proxy
Object.getNotifier()
å建ä¸ä¸ªéç¥è
对象ï¼å
è®¸ç¨ Object.observe()
æ¥ç»¼å触åä¸ä¸ªååçè§å¯è
ã æ²¡æç´æ¥çæ¿æ¢æ¹æ³ Object.prototype.watch()
å¨ä¸ä¸ªå±æ§ä¸éå ä¸ä¸ªå¤çå¨åè°ï¼å½å±æ§è¢«åé
æ¶è¢«è°ç¨ã Proxy
Object.prototype.unwatch()
ç§»é¤ä¸ä¸ªå±æ§ä¸çè§å¯å¤çå¨ã Proxy
String
String.slice(myStr, 0, 12)
ãString.replace(myStr, /\./g, "!")
çï¼å¨ Firefox 1.5ï¼JavaScript 1.6ï¼ä¸å¼å
¥ï¼å¨ Firefox 53 ä¸è¢«åºå¼ï¼å¹¶å¨ Firefox 68 ä¸å é¤ãä½ å¯ä»¥ä½¿ç¨ String.prototype
å Function.call
æ¥ä»£æ¿ãString.prototype.quote
å·²å¨ Firefox 37 ä¸ç§»é¤ãString.prototype.search
ãString.prototype.match
å String.prototype.replace
ä¸éæ åç flags
åæ°å·²è¢«æ·æ±°ãWeakMap.prototype.clear()
å¨ Firefox 20 䏿·»å ï¼å¨ Firefox 46 ä¸ç§»é¤ãä¸å¯è½éåä¸ä¸ª WeakMap
ä¸çææé®ãDate.prototype.toLocaleFormat()
使ç¨ä¸ C è¯è¨ä¸ strftime()
彿°æææçæ ¼å¼ç¸åçæ ¼å¼å符串ï¼å·²ç»è¿æ¶äºãä½¿ç¨ toLocaleString()
æ Intl.DateTimeFormat
代æ¿ãéæ åç Array éç¨æ¹æ³ï¼å¦ Array.slice(myArr, 0, 12)
ãArray.forEach(myArr, myFn)
çï¼å¨ Firefox 1.5ï¼JavaScript 1.6ï¼ä¸å¼å
¥ï¼å¨ Firefox 68 ä¸è¢«åºå¼ï¼å¹¶å¨ Firefox 71 ä¸å é¤ãä½ å¯ä»¥ä½¿ç¨ Array.prototype
å Function.call
æ¥ä»£æ¿ã
Array.observe()
弿¥å°è§å¯æ°ç»çåå Proxy
Array.unobserve()
ç§»é¤è§å¯å¨ã Proxy
Number
Number.toInteger()
å·²ç»è¿æ¶äºãä½¿ç¨ Math.floor
ãMath.round
æå
¶ä»æ¹æ³ä»£æ¿ãProxy.create
å Proxy.createFunction
å·²ç»è¿æ¶äºï¼è¯·ä½¿ç¨ Proxy()
æé 彿°ãhasOwn
ï¼bug 980565ï¼Firefox 33ï¼getEnumerablePropertyKeys
ï¼bug 783829ï¼Firefox 37ï¼getOwnPropertyNames
ï¼bug 1007334ï¼Firefox 33ï¼keys
ï¼bug 1007334ï¼Firefox 33ï¼ParallelArray
å·²è¿æ¶ãfor each...in
å·²ç»è¿æ¶äºï¼ä½¿ç¨ for...of
代æ¿ãfunction () 1
ä½ä¸ºfunction () { return 1; }
ç缩åï¼å·²ç»è¿æ¶ã使ç¨å¸¸è§ç function
æç®å¤´å½æ°ä»£æ¿ãæ°ç»ãæ°åãå符串çç toSource()
æ¹æ³å uneval()
å
¨å±å½æ°å·²ç»è¿æ¶ãä½¿ç¨ toString()
ï¼æè
ç¼åä½ èªå·±çåºååæ¹æ³æ¥ä»£æ¿ã
éçççæå¨å½æ°è¯å¥åéçççæå¨å½æ°è¡¨è¾¾å¼è¢«ç§»é¤ãä¼ ç»ççæå¨å½æ°è¯æ³éç¨äº function
å
³é®åï¼å½ä¸»ä½ä¸æä¸ä¸ªæå¤ä¸ª yield
è¡¨è¾¾å¼æ¶ï¼å®èªå¨æä¸ºçæå¨å½æ°ââç°å¨è¿æ¯ä¸ä¸ªè¯æ³é误ãä½¿ç¨ function*
è¯å¥å function*
表达å¼ä»£æ¿ã
æ°ç»æ¨å¯¼å¼åçæå¨æ¨å¯¼å¼å·²è¢«ç§»é¤ã
// éççæ°ç»æ¨å¯¼å¼
[for (x of iterable) x]
[for (x of iterable) if (condition) x]
[for (x of iterable) for (y of iterable) x + y]
// éçççæå¨æ¨å¯¼å¼
(for (x of iterable) x)
(for (x of iterable) if (condition) x)
(for (x of iterable) for (y of iterable) x + y)
Firefox 26 çæ¬ä¹åå®ç°äºå¦ä¸ä¸ªè¿ä»£å¨åè®®ï¼ä¸æ åçè¿ä»£å¨å议类似ãå½ä¸ä¸ªå¯¹è±¡å®ç°äº next()
æ¹æ³æ¶ï¼å®å°±æ¯ä¸ä¸ªéççè¿ä»£å¨ï¼è¯¥æ¹æ³å¨æ¯æ¬¡è°ç¨æ¶äº§çä¸ä¸ªå¼ï¼å¹¶å¨è¿ä»£ç»ææ¶æåºä¸ä¸ª StopIteration
对象ãè¿ç§éçè¿ä»£å¨åè®®ä¸æ åè¿ä»£å¨åè®®ä¸åï¼
next()
çè¿åå¼ï¼è䏿¯ IteratorResult
对象ç value
屿§ãStopIteration
对象ï¼è䏿¯éè¿ IteratorResult
对象ç done
屿§æ¥è¡¨è¾¾ãè¿ä¸ªåè½ï¼è¿å StopIteration
å
¨å±æé 彿°ï¼å¨ Firefox 58+ ä¸è¢«ç§»é¤ãæªæ¥å¯ä»¥ä½¿ç¨ for...of
循ç¯åè¿ä»£å¨åè®®ã
åéå¼ç¨è¯æ³å·²ç»è¿æ¶ãè¦å建循ç¯ç»æï¼è¯·ä½¿ç¨ä¸´æ¶åé代æ¿ã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4