JavaScript 基础练习(五)
1.
不能进行强制类型转化的为
A
parseInt
B
parseFloat
C
Number
D
Math.floor
正确答案: D
解析:
alert(username);var username=“leson”;结果为
A
undefined
B
leson
C
null
D
报错
正确答案: A
解析:
变量提升,预解析
有代码 function Foo(){}; var foo = new Foo(); 下列表达式运算结果为true的选项为
A
Foo.prototype == Foo.proto
B
foo.prototype == Foo.proto
C
foo.proto == Foo.prototype
D
foo.proto == Foo.proto
正确答案: C
解析:
foo.proto == Foo.prototype
实例的 __proto__属性指向的是 构造函数的prototype
有代码 var obj1={ a:[1], b:1 }; var obj2={ a:[2], c:2 }; var obj = Object.assign(obj1,obj2); 运行之后obj的结果为
A
{a:[1],b:1}
B
{a:[1,2],b:1,c:2}
C
{a:[2],b:1,c:2}
D
{a:[2],c:2}
正确答案: C
解析:
Object.assign是ES6新添加的接口,主要的用途是用来合并多个JavaScript的对象。
var target = {a : 1}; //目标对象
var source1 = {b : 2}; //源对象1
var source2 = {c : 3}; //源对象2
var source3 = {c : 4}; //源对象3,和source2中的对象有同名属性c
Object.assign(target,source1,source2,source3);
以下哪个关键字可以实现类的继承
A
inherit
B
extends
C
public
D
interface
正确答案: B
解析:
extends es6中的继承
有代码 function foo(){ var a=10; return function(){ console.log(a++) } } foo()(); 运行之后,会在控制台中打印
A
10
B
11
C
函数体
D
报错
正确答案: A
解析:
a++,加加在后,先赋值后加
版本管理工具svn中的提交命令是
A
push
B
add
C
commit
D
update
正确答案: C
解析:
svn中的提交命令是commit
有代码 function Foo(){ this.name=“test1”; function bar(){ this.name=“test2” }; bar(); } Foo.name = “test3”; var foo = new Foo(); 问foo.name的值为
A
test1
B
test2
C
test3
D
undefined
正确答案: A
解析:
var foo = new Foo()
foo是是Foo的实例,所有foo.name 打印结果就是test1
下面的this指向不是window的是那个
A
全局中的this
B
普通函数,直接调用的函数中获取的this
C
按钮侦听的事件函数中的this
D
函数通过call调用时,第一个参数填入null,函数中的this
正确答案: C
解析:
鼠标事件中this指向被侦听的对象
以下程序最后计算的结果是 function fun1(){ var sum=1; return function(){ sum++; return sum; } } var fun2=fun1(); console.log(fun2()); console.log(fun2());
A
1,1
B
1,2
C
2,3
D
2,2
正确答案: C
解析:
这是闭包的使用
函数的length属性是
A
函数的行数
B
函数的参数个数
C
函数的返回个数
D
永远是0
正确答案: B
解析:
函数的length是参数的个数
arguments对象是
A
函数中的参数
B
函数中参数的数组
C
函数中含有参数的伪数组对象
D
空
正确答案: C
解析:
参数数组
下面说法错误的是
A
闭包是指有权访问另一个函数作用域中的变量的函数
B
闭包的最常见的方式就是在一个函数内创建另一个函数
C
闭包可以被垃圾回收机制所清理
D
函数内部可以引用外部的参数和变量
正确答案: C
解析:
闭包不可以被垃圾回收机制所清理
var name = 10; var obj = {} console.log(name + 10 + obj )
A
20[object Object]’
B
‘1010[object Object]’
C
“1010”
D
20
正确答案: B
解析:
关于设计模式,下面哪个是错误的
A
工厂方法模式
B
路由器模式
C
策略模式
D
观察者模式
正确答案: B
解析:
无
下面哪种不是jquery的选择器
A
基本选择器
B
后代选择器
C
类选择器
D
进一步选择器
正确答案: D
解析:
无
当DOM加载完成后要执行的函数,下面哪个是正确的
A
jQuery(expression, [context])
B
jQuery(html, [ownerDocument])
C
jQuery(callback)
D
jQuery(elements)
正确答案: C
解析:
jQuery(callback)是jQuery(document).ready()的简写
以下哪个方法不能发起异步请求
A
$.get()
B
$.post()
C
$.json()
D
$.ajax()
正确答案: C
解析:
A、B、D均是jquery类本身的异步请求方法
C选择项中的$.json()为干扰项,无此用法
jQuery中的delay方法的作用是
A
停止动画执行
B
暂停动画执行
C
延迟动画执行
D
开始动画执行
正确答案: C
解析:
识记题
jQuery哪个方法可以清空对象内所有的子元素
A
remove()
B
removeAll()
C
deleteAll()
D
empty()
正确答案: D
解析:
remove()将自身及子元素移除
empty()清空所有子元素,包括文本节点
jq中设置属性的方法是
A
attr
B
setAttr
C
getAttr
D
attribute
正确答案: A
解析:
attr()可以接受两个参数,一个参数表示获取属性值,两个参数表示设置属性值
jQuery的美元符号$有什么作用
A
美元符号$只是jQuery的别名
B
jQuery只是$的别名
C
美元符号$,没有用
D
美元符号$和jQuery都能使用,但是作用不一样
正确答案: A
解析:
$是jQuery的别名,为了使用方便
jq中发起添加类名的方法是
A
ajax
B
addClass
C
getClass
D
setClass
正确答案: B
解析:
识记题
jq中实现动画的方法是
A
$.animate
B
$().animate
C
animate
D
$.startMove
正确答案: B
解析:
animate()是jQuery实例方法,调用示例:$(“div”).animate()
jq中设置输入框值的方法是
A
$().val()
B
$().value
C
$().html()
D
$().text()
正确答案: A
解析:
识记题
在用浏览器查看网页时出现404错误可能的原因是 ( ) 代表网页不存在没有找到文件
A
页面源代码错误
B
文件不存在
C
与数据库连接错误
D
权限不足
正确答案: B
解析:
无
同步和异步执行分别表示什么含义()
A
按顺序依次执行和同时分开执行
B
同时分开执行和按顺序依次执行
C
按一致的速度执行和按不同的速度执行
D
按相同的步骤执行和按不同的步骤执行
正确答案: A
解析:
生活中的同步和代码中的不一样
XMLHttpRequest 对象的 status 属性表示当前请求的 http 状态码,其中()表示正确返回。
A
200
B
301
C
500
D
404
正确答案: A
解析:
500服务器错误,301重定向,404请求资源未找到
执行下列程序的结果是 function fn3() { arguments.callee.play(); } fn3.play=function () { console.log(“aaa”); }; fn3()
A
报错
B
空值
C
play
D
“aaa”
正确答案: D
解析:
callee的使用
以下运行的结果是false的是 function Box(){this.name=‘zhang’;} function Desk(){this.age=100;} function Table(){this.lever=1000} Desk.prototype=new Box();//通过原型链继承 var desk=new Desk(); var table=new Table();
A
alert(table instanceof Object)
B
alert(desk instanceof Box);
C
alert(Desk instanceof Box);
D
alert(desk instanceof Desk );
正确答案: C
解析:
A. 一切事物皆对象
B. Dest 继承了 Box, 所以正确
C. Desk 是 Function的实例,和Box无关
D. desk 是 Desk 的实例
二、多选题(不定项选择)(共20题,每题2分)
js创建对象的方式有下面哪几种
A
可以通过json方式创建对象
B
可以通过new 关键字创建对象
C
可以通过函数调用方式创建对象
D
对象不可以通过函数的调用方式创建
正确答案: A,B,C
解析:
以下哪条语句会产生运行错误
A
var obj =()
B
var obj=[]
C
var obj ={}
D
var obj ={[]}
正确答案: A,D
解析:
关于call,apply,bind方法,下列说法正确的是
A
三者都可以用于继承
B
三者都可以改变this指向
C
三者参数传递一样
D
三者调用方式一样
正确答案: A,B
解析:
三者都可以改变this,所有都可以是 实现继承(构造函数继承的原理是改变函数的this)
svn在进行版本管理时,可以实现的功能有
A
更新至某个指定的版本
B
对某个文件进行锁定
C
创建多个分支
D
对某个文件解除版本控制
正确答案: A,B,C,D
解析:
四个选项都是svn可以实现的
以下哪些属性是defineProperty可以定义的
A
Enumerable
B
Configurable
C
Writable
D
Value
正确答案: A,B,C,D
解析:
无
以下说法错误的是
A
对象一般存储在栈中
B
对象是类的实例化
C
类是对象的实例化
D
类不可以继承
正确答案: A,C,D
解析:
无
构造函数可以创建对象执行的过程是
A
当使用了构造函数,并且new 构造函数(),那么就后台执行了new Object()
B
将构造函数的作用域给新对象,(即new Object()创建出的对象),而函数体内的this 就代表new Object()出来的对象
C
执行构造函数内的代码
D
返回新对象(后台直接返回)
正确答案: A,B,C,D
解析:
这是构造函数运行时,内部执行的一个过程,请识记并理解
创建一个新对象,改变this指向,执行构造函数里的代码,返回这个新对象
案例代码如下:
A
$(“div.big”);
B
$(“div .big”)
C
$(“div:contains(‘大字体’)”);
D
$(“form > div.big”);
正确答案: A,C,D
解析:
此题考察不同选择器的用法
B选项是选取div里具有big类名(后代)的jquery对象集合
关于prototype原型和原型链说法正确的是
A
Javascript的继承机制基于原型,而不是Class类
B
凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象
C
普通对象没有prototype,但有__proto__属性
D
prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针
正确答案: A,B,C,D
解析:
概念题 ABCD均对
$(this) 和 this 关键字在 jQuery 中有何不同
A
$(this) 和 this 使用上没有什么不同
B
$(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法
C
this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的DOM 元素
D
this 可以调用 jQuery 的click() 方法
正确答案: B,C
解析:
jquery对象只能访问jquery提供的方法
原生DOM对象不能直接访问jquery方法
闭包的特点
A
函数嵌套函数
B
函数内部可以引用外部的参数和变量
C
函数内部只能引用内部的参数和变量
D
函数必须有返回值
正确答案: A,B
解析:
概念题
当XMLHttpRequest 对象的状态发生改变时调用 callBackMethod 函数, 下列不正确的是()
A
xmlHttpRequest.callBackMethod=onreadystatechange;
B
xmlHttpRequest. onreadystatechange(callBackMethod);
C
xmlHttpRequest. onreadystatechange(new function(){callBackMethod });
D
xmlHttpRequest. onreadystatechange= callBackMethod
正确答案: A,B,C
解析:
状态发生改变,触发onreadystatechange事件, 在改属性上绑定callBackMethod事件处理程序即可
在php中,下列哪些是输出(打印)函数。( )
A
print
B
echo
C
print_r
D
write
正确答案: A,B,C
解析:
无
下面哪些是mysql的常用数据类型( )
A
varchar
B
int
C
float
D
text
正确答案: A,B,C,D
解析:
无
SQL语言的数据操作语句包括下列哪些( )
A
SELECT
B
INSERT
C
UPDATE
D
DELETE
正确答案: A,B,C,D
解析:
分别为查询,插入,更新,删除
jquery绑定事件的方法有
A
one
B
bind
C
addEvent
D
on
正确答案: A,B,D
解析:
addEvent不是一个事件
下面是jquery方法的是
A
$(".box").attr()
B
$(".box").css()
C
$(".box").remove()
D
$(".box").html()
正确答案: A,B,C,D
解析:
无
下面对ajax的描述哪些是正确的( )
A
是指一种创建交互式网页应用的网页开发技术
B
AJAX 可以使网页实现异步更新
C
可以调用xml、json、php等外部数据
D
没有平台限制
正确答案: A,B,C,D
解析:
无
执行这个程序后打印的结果forEach=function (arr,fn) { for(var i=0,l=arr.length;i<l;i++){ var c=arr[i]; if(fn.call(c,i,c)===false){ return false; } } }; function box1(index,num) { console.log(index,num); } var arr=[10,9,8,7,6,5,4]; forEach(arr,box1)
A
0 10
B
3 7
C
2 4
D
5 5
正确答案: A,B,D
解析:
无
jq中法可以发起ajax请求的方法有
A
$.ajax
B
$.get
C
$.post
D
$().load
正确答案: A,B,C,D
解析:
识记题 $.ajax()jquery的底层封装 $.get() 封装get请求 $.getJSON()可以做跨域请求