国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

W3C Group的JavaScript1.8 新特性介紹

2024-05-06 14:15:22
字體:
來源:轉載
供稿:網友
JavaScript 1.8 計劃作為Gecko 1.9(將要合并在Firefox 3中)的一部分開始使用的。比起JavaScript 1.7來說,這只是很小的更新,不過它也確實包含了一些向ECMAScript 4/JavaScript 2進化的痕跡。JavaScript 1.8還將包含在JavaScript 1.6 和 JavaScript 1.7中的所有新特性。
使用 JavaScript 1.8
為了可以在HTML中使用 JavaScript 1.8 的新特性,需要如下這樣寫:
<script type="application/javascript;version=1.8"> ... 你的代碼 ... </script>
在使用 JavaScript shell 、JavaScript XPCOM 組件,或者 XUL <script> 元素的時候,就是自動使用最新的JS版本(Mozilla 1.9中的 JS1.8)。
如果需要使用新的關鍵字 "yield" 和 "let" 的話,你就要指定是1.7版本或者更高的版本,因為已經寫好的那些代碼可能會把這兩個關鍵字用作變量名或者函數名。如果并沒有使用任何新的關鍵字,就可以不用指定JavaScript的版本。
表達式閉包
這個新添加的特性其實就是簡單函數的方便寫法,使得這個語言更加類似典型的Lambda notation.
JavaScript 1.7 以及更老的版本:
function(x) { return x * x; }
JavaScript 1.8:
function(x) x * x
這個語法允許你省略花括號和 'return' 語句 -- 隱式的做它們的工作。用這種方法寫,就只是表面上看起來短了一些,并沒有其他好處。
示例:
綁定事件處理器的簡單寫法:
document.addEventListener("click", function() false, true);
把這個定義與JavaScript 1.6中的一寫數組函數一起使用:
elems.some(function(elem) elem.type == "text");
生成器表達式
這個新添加的特性,允許你簡單的創建生成器(在JavaScript 1.7引入的)。通常你以前需要創建一個自定義的函數,它含有一個 yield,但是這個新特性使你可以使用類似數組概念的語法來創建一個獨立的生成器句柄。
在 JavaScript 1.7 中,你可能需要寫出想下面這樣的代碼來為一個對象創建自定義的生成器:
function add3(obj) {
for ( let i in obj )
yield i + 3;
}
let it = add3(someObj);
try {
while (true) {
document.write(it.next() + "<br>/n");
}
} catch (err if err instanceof StopIteration) {
document.write("End of record.<br>/n");
}
在 JavaScript 1.8 中,你可以規避要重建生成器函數的麻煩,而使用一個生成器表達式來代替:
let it = (i + 3 for (i in someObj));
try {
while (true) {
document.write(it.next() + "<br>/n");
}
} catch (err if err instanceof StopIteration) {
document.write("End of record.<br>/n");
}
生成器表達式也可以像數值那樣被傳給一個函數。非常值得注意的是,生成器在絕對必要的有用的時候才被運行(并不像典型的數組概念的條件那樣,預先搭好數組的結構)。這個區別可以從下面的例子中看到:
使用JavaScript 1.7 數組理念
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 淳化县| 枣阳市| 舟山市| 夏津县| 韩城市| 临武县| 满洲里市| 岱山县| 通江县| 勃利县| 洛阳市| 兴山县| 来凤县| 平安县| 贡嘎县| 元谋县| 彭州市| 东至县| 新巴尔虎左旗| 呼伦贝尔市| 涞水县| 新丰县| 和龙市| 栖霞市| 丽江市| 巴楚县| 新晃| 定边县| 工布江达县| 蒙山县| 丁青县| 普定县| 荔浦县| 阿鲁科尔沁旗| 靖江市| 庆阳市| 辰溪县| 横峰县| 永修县| 商洛市| 阳城县|