【牛客刷题日记】— Javascript 通关秘籍
CSDN话题挑战赛第2期
参赛话题:面试宝典
*众人拾柴火焰高,我们一起携手共筑面试宝典,大家可以将各语言各技术各类面试真题或者你刷过的面试题汇聚于此,金九银十之际,让我们助应聘同学一臂之力~
前进之路
题一:
下列正确定义函数的是?
- function foo() {}
- Function foo() {}
- var foo = new Function() {}
- var foo = new function() {}
问题剖析:
正色道题非常的基础,我们一定要仔细看题,认真作答
问题解答:
在Javascript定义一个函数一般有如下三种方式:
1,函数关键字(function)语句: function fnMethodName(x){alert(x);}
2,函数字面量(Function Literals): var fnMethodName = function(x){alert(x);}
3,Function()构造函数: var fnMethodName = new Function(‘x’,’alert(x);’)
题二:
请问以下两次检测对象constructor是否拥有属性名1的结果分别是什么?
1 in Object(1.0).constructor;
Number[1] = 123;
1 in Object(1.0).constructor;
问题剖析:
实际上Object(1.0)就是将数字“1.0”封装成它对应的包装类的一个对象实例比如Number(1.0),所以目的是为了检测1是否在Number上。一开始1并不在Number原型链上所以返回false,直到添加了“Number[1]”这个下标属性之后才让1处于Number的原型链上,也因此返回了true。
问题解答:
- constructor 是构造函数属性。它是谁的属性?它是原型属性 prototype 所指向的那个对象的属性。
- Object(1.0).constructor 的原型是 Number 对象。
- Number 对象本身可作为构造函数,所以 Object(1.0).constructor 就是 Number 对象本身。
个人经验总结
我们一定要好好使用牛客这一个刷题平台,每天刷几道题,当然最重要的是看我们的面试宝典!
资料总结/刷题指南
牛客网是许多程序员都很喜欢的网站。链接贴上:牛客