日期:2014-05-16  浏览次数:20366 次

10道不错的JavaScript面试题目
基础部分
1 以下问题简短作答
1.1 Jscript的两种变量范围有什么不同?
1.2 列举Jscript的三种主要数据类型、两种复合数据类型和两种特殊数据类型。
1.3 程序中捕获异常的方法。
2 声明一个字符串数组并初始化,存放用于金额大写的十个中文字符
3 写出下列例程运行的结果
3.1 程序运行完毕后,k等于几?
for (i = 0, j = 0; i < 10, j<6; i++, j++) {
k = i + j;
}
3.2 写出函数DateDemo的返回结果,系统时间假定为今天
function DateDemo() {
var d, s = “今天日期是: “;
d = new Date();
s += d.getMonth() + “/”;
s += d.getDate() + “/”;
s += d.getYear();
return(s);
}
3.3 写出程序最后一条语句执行后变量result的值
var epsilon = 0.00000000001; // 一些需要测试的极小数字。
function integerCheck(a, b, c)
{
if ( (a*a) == ((b*b) + (c*c)) )
return true;
return false;
}
function floatCheck(a, b, c)
{
var delta = ((a*a) - ((b*b) + (c*c)))
delta = Math.abs(delta);
if (delta < epsilon)
return true;
return false;
}
function checkTriplet(a, b, c)
{
var d = 0;
if (b > a)
{
d = a;
a = b;
b = d;
}
if (c > a)
{
d = a;
a = c;
c = d;
}
if (((a % 1) == 0) && ((b % 1) == 0) && ((c % 1) == 0))
{
return integerCheck(a, b, c);
}
else
{
return floatCheck(a, b, c);
}
}
// 下面的三个语句赋给范例值,用于测试。
var sideA = 5;
var sideB = 5;
var sideC = Math.sqrt(50.001);
var result = checkTriplet(sideA, sideB, sideC);
4 写一个函数,返回指定的英文句子中的每个单词及其字符的起止位置
例:”The rain in Spain falls mainly in the plain.”
应依次返回”The 0-3”, ”rain 4-8” … … ”plain 38-43”
高级部分
5 浏览器对 JScript脚本的解释顺序?
6 判断下列表达式的真假
“100″ == 100;
false == 0;
“100″ === 100;
false === 0;
7 如何为语句设定默认对象(通常用来缩短特定情形下必须写的代码量,使代码变得更短且更易读)?在下面的例子中,请注意 Math的重复使用:
1
2
3
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * Math.E)
8 在对象的属性的个数未知的情况下,如何对该对象的属性进行遍历?
9 书写一个匹配HTML标记的正则表达式
10 构造一个自定义对象,实现对一个矩形的对象化,要求:
a) 描述矩形的标识(name)
b) 描述矩形的颜色(color)
c) 描述矩形的宽度(width)
d) 描述矩形的高度(height)
e) 提供获取矩形面积的方法(getArea())
f) 写出构造函数的完整代码
g) 给出调用的实例代码