1.代码:
<script type="text/javascript">
var a=""+3;
var b=4;
console.log(typeof a);//String
console.log(a+b);//34
console.log(a-b);-1
var foo="11"+2+"1";
console.log(foo);//1121
console.log(typeof foo);//String
</script>
答案:解析:数值类型的字符串可以跟数字做减法运算
2.代码:
<script type="text/javascript">
var name="karen";
function echo(){
console.log(name);//"karen"
}
function env(){
var name="eve";
echo();
}
env();
</script>
答案:解析:作用域
3.代码:
<script type="text/javascript">
function Foo(){
getName=function(){
console.log(1);
}
return this;
}
Foo.getName=function(){console.log(2)}
Foo.prototype.getName=function(){console.log(3)}
var getName=function(){console.log(4)}
function getName(){console.log(5)}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
/*
var getName;
function Foo(){
getName=function(){
console.log(1);
}
return this;
}
function getName(){console.log(5)}
Foo.getName=function(){console.log(2)}
Foo.prototype.getName=function(){console.log(3)}
getName=function(){console.log(4)}
Foo.getName();
//Foo.getName=function(){console.log(2)}
//2
getName();
//window.getName==>function(){console.log(4)}
//4
Foo().getName();//this==>window
//getName=function(){console.log(4)}==>function(){console.log(1)}
//1
getName();//1
new Foo.getName();
//2
new Foo().getName();
//(new Foo()).getName()
//{__proto__:{getName:function(){console.log(3)}}}
//3
new new Foo().getName();
//new ((new Foo()).getName) ()
//getName:function(){console.log(3)}
//3
*/
</script>
答案:解析:作用域、隐式声明提升、原型、符号优先级
4.要求:打印出数组中的所有数字
<script type="text/javascript">
var arr=[[1,2,3,4,[2,3,4,5],[4,54,2,6]],[2,3,4,5,6]]
function fn(arr){
for(var i=0;i<arr.length;i++){
if(typeof(arr[i])=="number"){
console.log(arr[i])
}else{
fn(arr[i])
}
}
}
fn(arr)
</script>
答案:
5.代码:
<script type="text/javascript">
var a=5;
function test(){
a=0;
alert(a);
alert(this.a);
var a;
alert(a);
}
test();
new test();
/*
var a=5;
function test(){
var a;
a=0;
alert(a);//0//0
alert(this.a);//5//undefined
alert(a);//0//0
}
test();//this==>window
new test();//{__proto__:test.prototype}==>test={}==>this.a=undefined
*/
</script>
答案:0,5,0,0,undefined,0