1.立即执行函数表达式是什么?有什么作用?
2.以下代码输出什么?
function getInfo(name, age, sex){
console.log('name:',name);
console.log('age:', age);
console.log('sex:', sex);
console.log(arguments);
arguments[0] = 'valley';
console.log('name', name);
}
getInfo('张三', 2, '男');
getInfo('小张', 3);
getInfo('男');
复制代码
getInfo('张三', 2, '男');输出:
name:张三
age:2
sex:男
name valley
getInfo('小张', 3);输出:
name:小张
age:3
sex:undefined
name valley
getInfo('男'); 输出:
name:undefined
age:undefined
sex:男
name valley
3.以下代码的输出为?
console.log(a);
var a = 1;
console.log(b);
答: console.log(a);undefined console.log(b);报错
4.如下代码的输出?为什么?
sayName('world');
sayAge(10);
function sayName(name){
console.log('hello', name);
}
var sayAge = function(age){
console.log(age);
};
复制代码
输出为hello world
5.如下代码的输出?为什么?
6.如下代码的输出?为什么?
7.如下代码的输出?为什么?
8.如下代码的输出?为什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);
console.log(obj1 = obj2);
console.log(obj1 == obj2);
第二个输出{a:1, b:2};=是赋值的意思,吧obj2赋值给obj1,所以输出是{a:1, b:2};
第三个输出为true,因为上面obj2赋值给obj1了,所以他们现在是相等的,无论地址还是内容,所以是true。
9.以下代码输出为?
1
{name:"jirengu",age:3}
age3是因为上面的++obj.age,年龄加1,所以是3。
10.写一篇关于作用域链的博客,不少于200字,附上博客链接.
11.switch case 语句中的 break 有什么作用?
用于强制退出循环体,执行循环后面的语句。举例:
for(var i = 0; i< 6; i++){
if(i % 4 === 0){
break;
}
console.log(i);
复制代码
}
i小于零,大于六,谁除以4余数是0,123皆不是,到四是的,break强制停止了,所以输出是123
12.以下代码输出为?
for(var i = 0; i< 6; i++){
if(i % 4 === 0){
continue;
}
console.log(i);
复制代码
}
输出1235
13.以下代码中 result的值输出什么
var result = sum(3, 4)
console.log(result)
function sum(a, b){
return console.log(a + b)
复制代码
}
输出7
14.如下代码的输出?为什么?
var x = 10
bar()
function foo() {
console.log(x)
}
function bar(){
var x = 30
foo()
}
输出为10,因为console.log的是x的值,x=10,所以是10,只能往自己的函数作用域中找赋的值, 就算bar里面要赋值,但是x不能用。
15.break与continue有什么区别?
break:用于强制退出循环体,执行循环后面的语句。
continue:用于退出本次循环,执行下次循环。
16. 写一个函数squireArr,其参数是一个数组,作用是把数组中的每一项变为原值的平方。
var arr = [3, 4, 6]
function squireArr( arr ){
//补全 }
squireArr(arr)
console.log(arr) // [9, 16, 36]
17.如下代码的输出?
var x = 10
bar()
function foo() {
console.log(x)
}
function bar(){
var x = 30
foo() }
输出结果为10
18.如下代码的输出?
输出1
输出{name: 'jirengu', age:3};