JavaScript 練習題2
阿新 • • 發佈:2018-12-19
- 練習1
var x = 1, y = z = 0;
function add(n) {
return n = n + 1;
}
y = add(x);
function add(n) {
return n = n + 3;
}
z = add(x);
console.log(x, y, z); // 1, 4, 4 預編譯 函式提前 同名函式 內容被覆蓋
- 練習2
// 下列程式碼中 能打印出[1,2,3,4,5]的是 A C D // A function foo(x) { console.log(arguments); return x; } foo(1,2,3,4,5); // B // 不執行 也不報錯 function foo(x) { console.log(arguments); return x; }(1,2,3,4,5); // C // 立即執行函式 (function foo(x) { console.log(arguments); return x; })(1,2,3,4,5) // D function foo() { bar.apply(null,arguments); // 等價於 bar(arguments) } function bar(x) { console.log(arguments); } foo(1, 2 ,3, 4, 5)
- 練習題3
parseInt(3, 8); // 把3當做8進位制 轉為10進位制 輸出 3
parseInt(3, 2); // 把3當做2進位制 2進位制只有0和1 輸出 NaN
parseInt(3, 0); // 0進位制 沒有 部分瀏覽器返回0 部分瀏覽器報錯
- 練習題4
function b(x, y, a) { arguments[2] = 10; console.log(a); } b(1, 2, 3); // 輸出 10 arguments和形參相對應 互相改 function c(x, y, a) { a = 10; console.log(arguments[2]); } c(1, 2, 3); // 輸出 10
- 練習題5
// 輸出一個字串的長度 中文為2個字元 function retByteslen(n) { n = n.toString(); var len, count; len = count = n.length; for(var i = 0; i < len; i++) { if(n.charCodeAt(i) > 255) { count ++; } } return count; } retByteslen('abc 你好!'); // 10