JavaScript对象的练习题

JavaScript everyinch 1715℃ 0评论

一、判断题
1.在JavaScript中,只能使用预定义对象,而不能使用自定义对象。
2.在JavaScript中,当使用new运算符创建一个对象变量后,一定要使用delete运算符把创建的对象变量撤销。
3.要使用任何一个JavaScript对象的方法和属性,必须先使用new运算符创建它。
4.在调用Date对象的属性和方法之前,必须先使用new运算符创建一个Date对象。
5.不能使用普通的for循环语句遍历数组中的所有元素。
二、单选题
1.创建对象直接量正确的语法是( )
A. var point = { x:0; y:0 };
B. var point = [ x:0; y:0 ];
C. var point = { x:0, y:0 };
D. var point = [ x:0,y:0 ];

2.关于对象原型的表述错误的是( )
A. 通过new Array()创建的对象的原型就是Array.prototype

B. 通过new Date()创建的对象的原型就是Date.prototype
C. 不能通过Object.prototype获得对原型对象的引用

D. 通过关键字new和构造函数调用创建的对象的原型就是构造函数的prototype属性的值

3.如果想创建一个普通的空对象,类似于{}或new Object()的方法是( )
A. Object.create(null)
B. Object.create(Object.prototype)
C. Object.create()
D. Object.create(undefined)

4.在JavaScript中,通过下面的_____运算符访问对象的属性和方法。
A. 加运算符(+)
B. 点运算符(.)
C. 乘运算符(*)
D. 不能访问

5.获取属性的值,正确的语法是( )
A. object->property
B. object[“property”]
C. object=>property
D. object{“property”}

6.查询book对象的subtitle属性,以及subtitle的length属性。如果不存在不会报错的语法是( )
A. var title = book.subtitle;

B. book.subtitle.length;
C. if (book) { if (book.subtitle) len = book.subtitle.length;}

D. var len = book && book.subtitle && book.subtitle.length;

7.如果有对象 o = {x:1},则对下面代码解释正确的是( )
A. delete o.x; //删除x,返回false

B. delete o.x; //什么都没做(x已经不存在了),返回false
C. delete o.toString; //什么也没做(toString是继承来的),返回true

D. delete 1; //无意义,返回false

8.下面的方法,不能判断某个属性是否存在于某个对象中的方法是( )
A. in运算符
B. instanceOf运算符
C. hasOwnPreperty()方法
D. propertyIsEnumerable()方法

9.如果有对象 o = { x: 1 },则o.hasOwnProperty(“toString”);返回( )
A. NaN
B. true
C. undefined
D. false

10.有对象:var o = Object.create({y:2}); 语句 o.propertyIsEnumerable(“y”);的输出为( )
A. NaN
B. false
C. undefined
D. true

11.JavaScript对象getter方法的正确语法是( )
A. get { /* 这里是函数体 */ }
B. get functionName() { /* 这里是函数体 */ }
C. getter { /* 这里是函数体 */ }
D. get functionName { /* 这里是函数体 */ }

12.存取器属性的4个特性,不包括的特性是( )
A. 读取(get )
B. 写入(set)
C. 可枚举性
D. 可继承性

13.要想设置属性的特性,或者想让新建属性具有某种特性,则需要调用的方法是( )
A. Object.defineProperty()
B. Object.define()
C. Object.create()
D. Object.assign()

14.对代码 “var x=myhouse.kitchen; ” 的哪种说明正确?
A. 将字符串”myhouse.kitchen”赋值给变量x。

B. 将myhouse和kitchen的值相加之和赋给对象x。
C. 假设myhouse对象存在,它将myhouse对象的kitchen属性值赋给变量x。

D. 假设myhouse对象存在,它将kitchen对象的myhouse属性值赋给变量x.

15.创建字符串对象有哪两种方法?
A. 使用new运算符创建String对象和直接将字符串赋给变量。

B. 使用new运算符创建Array对象和直接将字符串赋给变量。
C. 使用new运算符创建Number对象和直接将字符串赋给变量。

D. 使用new运算符创建Date对象和直接将字符串赋给变量。

16.在ECMAScript 5中,查询对象原型的方法是( )
A. o.constructor.prototype
B. Object.getPrototypeOf()
C. isPrototypeOf()方法
D. Object.defineProperty()方法

17.将对象设置为不可扩展,还可以将它自有的所有数据属性设置为只读的方法是( )
A. Object.preventExtensions()方法
B. Object.seal()方法
C. Object.freeze()方法
D. Object.isSealed()方法

18.不属于Object.prototype里的对象方法的是( )
A. toLocaleString()方法
B. toSource()方法
C. toJSON()方法
D. vafueOf()方法

三、程序输出
1.解释下面的代码:
var book = {
“main title”: “Homer Simpson”,
“sub-title”: 34,
“for”: true,
“author”:{
firstname: “David”,
surname: “Tom”
}
};

2.解释下面的代码:
var o = { x: 1 }
“x” in o;
“y” in o;
“toString” in o;

var o = { x: 1 }
o.hasOwnProperty(“x”);
o.hasOwnProperty(“y”);
o.hasOwnProperty(“toString”);

var o = inherit({ y: 2 });
o.x = 1;
o.propertyIsEnumerable(“x”);
o.propertyIsEnumerable(“y”);

3.解释下面的代码:
for(p in o) {
if (!o.hasOwnProperty(p)) continue;
}
for(p in o) {
if (typeof o[p] === “function”) continue;
}

4.解释下面的代码:
function extend(o, p){
for (prop in p){
o[prop] = p[prop];
}
return o;
}

function merge(o, p) {
for(prop in p) {
if (o.hasOwnProperty[prop]) continue;
o[prop] = p[prop];
}
return o;
}

function restrict(o, p) {
for(prop in o) {
if (!(prop in p)) delete o[prop];
}
return o;
}

function subtract(o, p) {
for(prop in p) {
delete o[prop];
}
return o;
}

5.解释下面的代码
var p = Object.defineProperties({}, {
x: { value: 1, writable: true, enumerable:true, configurable:true },
y: { value: 1, writable: true, enumerable:true, configurable:true },
r: {
get: function() {
return Math.sqrt(this.x*this.x + this.y*this.y) },enumerable:true,configurable:true
}
});

四、综合题
1.编写程序,根据用户输入的数值,计算其平方、平方根和自然对数。
2.使用Math对象的random()方法编制一个产生0~100之间(含0,100)的随机整数的函数。
3.设计一个页面,在页面上显示信息“现在是XXXX年XX月XX日Xx点XX分XX秒(星期X),欢迎您的到访!“。
4.编制一个从字符串中收集数字字符(”0″‘,”1″,…”9″)的函数CollectDigits(s),它从字符串s中顺序取出数字,并且合并为一个独立的字符串作为函数的返回值。例如函数调用CollectDigits(“1abc23def4″)的返回值是字符串”1234″。
5.编制一个将两个字符串交叉合并的函数Merge(s1,s2),例如Merge(“123”,”abc”)的返回结果是”1a2b3c”,如果两个字符串的长度不同,那么就将多余部分直接合并到结果字符串的末尾,如Merge(“123456″,”abc”)的返回结果是”1a2b3c456”。
6.设计一个程序,它(使用一个数组)接收用户输入的7门课程的成绩,然后在页面上显示其总成绩和平均分,并列出小于60的成绩。
7.斐波纳契(Fibonacci)数列的第一项是1,第二项是1,以后各项都是前两项的和。请按逆序在页面中显示斐波纳契数列前40项的值(即,如果计算出来的数列是1,1,2,3,5,8…,那么显示的顺序是…,8,5,3,2,1,1),并要求每行显示6个数。
8.设计一个函数DayOfYear(d),它接必一个日期参数d,返回一个该日期是所在年份的第几天,如DayOfYear(2000,2,8)的返回值是39.
(提示:①定义一个数组months=new Array(31,28,31,30,31,30,31,31,30,31,30,31)记录每个月少天:②定义一个辅助函数IsLeapYear(y)判定某个年份是否闰年,以确定2月份的天数是28还是29。)
9.编写inherit()函数,它返回了一个继承自原型对象p的属性的新对象,这里使用ECMAScript 5中的Object.create()函数(如果存在的话),如果不存在Object.create(),则退化使用其他方法



转载请注明:陈童的博客 » JavaScript对象的练习题

喜欢 (2)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

无觅相关文章插件,快速提升流量

'; } if( dopt('d_footcode_b') ) echo dopt('d_footcode'); ?>