string-index.js (2006B)
1 function basic() { 2 var zero = "0"; 3 var one = "1"; 4 var thousand = String(1000); 5 var max = String(0xffff); 6 7 assertEq(zero, "0"); 8 assertEq(Number(zero), 0); 9 assertEq(String(Number(zero)), "0"); 10 11 assertEq(one, "1"); 12 assertEq(Number(one), 1); 13 assertEq(String(Number(one)), "1"); 14 15 assertEq(thousand, "1000"); 16 assertEq(Number(thousand), 1000); 17 assertEq(String(Number(thousand)), "1000"); 18 19 assertEq(max, "65535"); 20 assertEq(Number(max), 0xffff); 21 assertEq(String(Number(max)), "65535"); 22 } 23 24 function index() { 25 var zero = "0"; 26 var trippleZero = "000"; 27 28 var seven = "7"; 29 var doubleOhSeven = "007"; 30 31 var object = {0: "a", "000": "b"}; 32 var object2 = {7: "a", "007": "b"}; 33 34 var array = ["a"]; 35 array[trippleZero] = "b"; 36 var array2 = [0, 1, 2, 3, 4, 5, 6, "a"]; 37 array2[doubleOhSeven] = "b"; 38 39 for (var i = 0; i < 30; i++) { 40 assertEq(object[zero], "a"); 41 assertEq(object[0], "a"); 42 assertEq(object[trippleZero], "b"); 43 44 assertEq(object2[seven], "a"); 45 assertEq(object2[7], "a"); 46 assertEq(object2[doubleOhSeven], "b"); 47 48 assertEq(array[zero], "a"); 49 assertEq(array[0], "a"); 50 assertEq(array[trippleZero], "b"); 51 52 assertEq(array2[seven], "a"); 53 assertEq(array2[7], "a"); 54 assertEq(array2[doubleOhSeven], "b"); 55 } 56 } 57 58 function forin() { 59 var array = [0, 1, 2, 3, 4, 5, 6]; 60 61 var i = 0; 62 for (var name in array) { 63 assertEq(name, String(i)); 64 assertEq(Number(name), i); 65 66 assertEq(array[name], i); 67 assertEq(array.hasOwnProperty(name), true); 68 69 i++; 70 } 71 } 72 73 function parse() { 74 var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1000, 0xffff]; 75 76 for (var number of numbers) { 77 assertEq(parseInt(String(number)), number); 78 assertEq(parseInt(String(number), 10), number); 79 assertEq(parseInt(String(number), 0), number); 80 } 81 } 82 83 basic(); 84 index(); 85 forin(); 86 parse();