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 预编译 函数提前 同名函数 内容被覆盖
// 下列代码中 能打印出[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)
parseInt(3, 8); // 把3当做8进制 转为10进制 输出 3
parseInt(3, 2); // 把3当做2进制 2进制只有0和1 输出 NaN
parseInt(3, 0); // 0进制 没有 部分浏览器返回0 部分浏览器报错
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
// 输出一个字符串的长度 中文为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