常见试题
2013-12-17 17:20 臭小子1983 阅读(226) 评论(0) 编辑 收藏 举报一、XHTML、CSS
1、怎样触发怪异模式、怪异模式与标准模式的区别?
二、javascript
字符转换类:
1、alert("1" + 2 + "3" + 4)结果是多少?
答:"1234" 字符串
alert(4 + 3 + 2 + "1")结果是多少?
答:"91"
作用域
1、下列运算后结果是多少? 答:1
1 var foo = 1; 2 function bar() { 3 foo = 10; // 所以,在foo=10的时候,foo是有定义的,属于局部变量,影响不到外层的foo 4 return; 5 function foo() {} // 虽然遇到return 但foo先定义了变量所以会执行,如果function fooText(){} 这样会输出10 6 } 7 bar(); 8 alert(foo);
2、下列运算后结果是多少? 答:Function
1 function bar() { 2 return foo; 3 foo = 10; 4 function foo() {} 5 var foo = 11; 6 } 7 8 alert(typeof bar());
3、下列代码的执行顺序是什么? 答:3,1
1 var x = 3; 2 3 var foo = { 4 x: 2, 5 baz: { 6 x: 1, 7 bar: function() { 8 return this.x; 9 } 10 } 11 } 12 13 var go = foo.baz.bar; 14 alert(go()); // 这个时候调用指针this为window,会调用全局变量x,所以等于3 15 alert(foo.baz.bar()); // 会调用baz下的对象属性x=1;
4、下列代码弹出什么? 答:4
1 var x = 4, 2 obj = { 3 x: 3, 4 bar: function() { 5 var x = 2; 6 setTimeout(function() { 7 var x = 1; 8 alert(this.x); // 这个this指向了window所以等于4 9 }, 1000); 10 } 11 }; 12 13 obj.bar(); // 因为调用的时候是window调用的
5、下面弹出弹出什么? 答:2
1 x = 1; 2 3 function bar() { 4 this.x = 2; // 这里的this指向foo 5 return x; 6 } 7 8 var foo = new bar(); 9 alert(foo.x); // 是构造函数本身
6、下面会弹出什么? 答:2
1 function foo(a) { 2 alert(arguments.length); 3 } 4 foo(1, 2, 3); // arguments取的是实参的个数
7、下面代码会弹出什么? 答:undefined
1 var foo = function bar() {}; 2 3 alert(typeof bar); // 这种情况下bar的名字从外部不可见,那是不是这个名字别人就没法知道了呢
8、下面代码会弹出什么? 答:2
1 var arr = []; 2 arr[0] = 'a'; 3 arr[1] = 'b'; 4 arr.foo = 'c'; // arr本身就是对象在对象下面添加一个属性不会有问题, 5 alert(arr.length);
9、下面代码会弹出什么? 答:2
1 function foo(a) { 2 arguments[0] = 2; // 会将第一个参数的值覆盖为2 3 alert(a); 4 } 5 foo(1);
10、下面代码会弹出什么? 答:undefined 、 local
1 // 反例 2 myname = "global"; // 全局变量 3 function func() { 4 alert(myname); // "undefined" 5 var myname = "local"; 6 alert(myname); // "local" 7 } 8 func();
为什么第一个不弹出"global"
此时函数肯定很自然而然地看全局变量myname,但是,实际上并不是这么工作的。
第一个alert会弹 出”undefined”是因为myname被当做了函数的局部变量(尽管是之后声明的),所有的变量声明当被悬置到函数的顶部了。
因此,为了避免这种混乱,最好是预先声明你想使用的全部变量。
myname = "global"; // global variable
function func() {
var myname; // 等同于 -> var myname = undefined;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"}
func();
但如果函数内不声明局部变量会就弹出"global"
1 myname = "global"; // 全局变量 2 function func() { 3 alert(myname); // "undefined" 4 } 5 func();
11、
1 var a = 10; 2 3 function aa(){ 4 bb(); 5 6 alert(a); 7 8 function bb() { 9 var a = 20; 10 } 11 } 12 13 aa(); // 10;
三、HTML5和CSS3