正确答案: A 你的答案: D (错误)
A var obj=( );
B var obj=[ ];
C var obj={ };
D var obj=/ /;
正确答案: A B C D 你的答案: A B D (错误)
touchStart
touchMove
touchCancel
touchEnd
解析:以下是四种touch事件
touchstart: //手指放到屏幕上时触发
touchmove: //手指在屏幕上滑动式触发
touchend: //手指离开屏幕时触发
touchcancel: //系统取消touch事件的时候触发,这个好像比较少用
每个触摸事件被触发后,会生成一个event对象,event对象里额外包括以下三个触摸列表
touches: //当前屏幕上所有手指的列表
targetTouches: //当前dom元素上手指的列表,尽量使用这个代替touches
changedTouches: //涉及当前事件的手指的列表,尽量使用这个代替touches
正确答案: A C F G 你的答案: C D E F G (错误)
symbol
int
boolean
null
array
undefined
string
正确答案: B C D 你的答案: C (错误)
Math.max(arr) //因为函数 Math.max(x);的参数是Number类型,可以是小数,整数,正数,负数或者是0,如果不是上面所述类型就会返回NaN.
Math.max(arr[0], arr[1], arr[2], arr[3]) //可以
Math.max.call(Math, arr[0], arr[1], arr[2], arr[3]) // Function.call()可以传入任意多个参数
Math.max.apply(Math,arr) // Function.apply()第二个参数以数组形式传递
正确答案: A 你的答案: B (错误)
1 2 3
undefined 2 1
报错
1 2 1
var foo = {n:1};
(function(foo){ //形参foo同实参foo一样指向同一片内存空间,这个空间里的n的值为1
var foo; //优先级低于形参,无效。
console.log(foo.n); //输出1
foo.n = 3; //形参与实参foo指向的内存空间里的n的值被改为3
foo = {n:2}; //形参foo指向了新的内存空间,里面n的值为2.
console.log(foo.n); //输出新的内存空间的n的值
})(foo);
console.log(foo.n); //实参foo的指向还是原来的内存空间,里面的n的值为3.
正确答案: B C 你的答案: A D (错误)
String
Function
Integer
undefined
解释:基本类型分为以下六种:
正确答案: A B C D 你的答案: A B C D (正确)
A、闭包是指有权访问另一个函数作用域中变量的函数;
B、函数内再嵌套函数,返回到外部形成闭包;
C、内部函数可以引用外层的参数和变量
D、参数和变量不会被垃圾回收机制回收
闭包的作用 :1 可以读取函数内部的变量 2 可以把变量始终保存在内存中
闭包的写法 :1 一个函数(即外部函数)里面包含另一个函数(即内部函数),并且return返回这个内部函数, 然后内部函数在定义内部函数之外的作用域被调用,这时的内部函数就是一个闭包了。
2 内部函数引用了外部函数的变量,这个变量不会被销毁,因为闭包需要这个变量, 所以通过闭包可以访问闭包保存的变量 function foo(){ var n = 1; function innerFoo(){ n += 1; console.log(n); } return innerFoo; } var func = foo(); func();
2, 产生闭包innerFoo(),变量n保存在内存中 func();
3 闭包的缺点 :1 因为闭包的变量保存在内存中,内存泄漏,对内存的消耗很大,所以不要滥用闭包 闭包常用的地方: 1 es5 for循环事件监听 2 函数里使用了定时器 3 封装许多高级的功能集 减少闭包使用可以用立即执行函数传递变量
正确答案: D 你的答案: C (错误)
search
controls
slider
range
button | 定义可点击的按钮(大多与 JavaScript 使用来启动脚本) |
---|---|
checkbox | 定义复选框。 |
color | 定义拾色器。 |
date | 定义日期字段(带有 calendar 控件) |
datetime | 定义日期字段(带有 calendar 和 time 控件) |
datetime-local | 定义日期字段(带有 calendar 和 time 控件) |
month | 定义日期字段的月(带有 calendar 控件) |
week | 定义日期字段的周(带有 calendar 控件) |
time | 定义日期字段的时、分、秒(带有 time 控件) |
定义用于 e-mail 地址的文本字段 | |
file | 定义输入字段和 “浏览…” 按钮,供文件上传 |
hidden | 定义隐藏输入字段 |
image | 定义图像作为提交按钮 |
number | 定义带有 spinner 控件的数字字段 |
password | 定义密码字段。字段中的字符会被遮蔽。 |
radio | 定义单选按钮。 |
range | 定义带有 slider 控件的数字字段。 |
reset | 定义重置按钮。重置按钮会将所有表单字段重置为初始值。 |
search | 定义用于搜索的文本字段。 |
submit | 定义提交按钮。提交按钮向服务器发送数据。 |
tel | 定义用于电话号码的文本字段。 |
text | 默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符。 |
url | 定义用于 URL 的文本字段。 |
正确答案: B 你的答案: C (错误)
cookies 和 sessionVariables
localStorage 和 sessionStorage
cookies 和 locationObjects
Web Storage分类
Web Storage实际上由两部分组成:sessionStorage与localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
正确答案: D 你的答案: C (错误)
A、pop()
B、splice()
C、sort()
D、concat()
Array对象中的方法:
不改变原数组的有
concat():连接数组
join():数组=>字符串
slice():截取数组的一部分
改变原数组的有
pop()删除并返回数组最后一个元素,
shift()与其相反,删除第一个
push()向数组末添加>=1个元素,返回数组新长度,
unshift()与其相反,向开头添加
sort(函数)对数组元素排序
splice()改变(删除、替换)数组内部元素,返回由被删除项目组成的新数组(如果有的话)
var f = function g() {
return 23;
};
typeof g();
正确答案: D 你的答案: A (错误)
A、"number"
B、"undefined"
C、"function"
D、Error
在 JS 里,声明函数只有 2 种方法:
第 1 种: function foo(){…} (函数声明)
第 2 种: var foo = function(){…} (等号后面必须是匿名函数,这句实质是函数表达式)
除此之外,类似于 var foo = function bar(){…} 这样的东西统一按 2 方法处理,即在函数外部无法通过 bar 访问到函数,因为这已经变成了一个表达式。
但为什么不是 “undefined”?
这里如果求 typeof g ,会返回 undefined,但求的是 g(),所以会去先去调用函数 g,这里就会直接抛出异常,所以是 Error。
正确答案: B C D 你的答案: B C D (正确)
A、Xml是种可扩展标记语言,格式更规范,是作为未来html的替代
B、Xml一般用于传输和存储数据,是对html的补充,两者的目的不同
C、在JavaScript里解析和处理xml数据时,因为浏览器的不同,其做法也不同
D、在IE浏览器里处理xml,首先需要创建ActiveXObject对象
解析: 1.什么是 XML?
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
2.XML 与 HTML 的主要差异
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
正确答案: A 你的答案: D (错误)
getElementByClassName()
getElementsByTagName()
getElementById()
getElementsByName()
解释:选择A 错在Elements。因为这个方法可以返回一组节点。
A. 获取所有指定类名的元素:getElementsByClassName
var x = document.getElementsByClassName(“example”);
B getElementsByTagName() 方法可返回带有指定标签名的对象的集合。
语法
document.getElementsByTagName(tagname)
说明
getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。
C getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。
D getElementsByName() 方法可返回带有指定名称的对象的集合。
正确答案: B 你的答案: C (错误)
call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性
两者传递的参数不同,call函数第一个参数都是要传入给当前对象的对象,apply不是
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入
call传入的则是直接的参数列表。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
1、相同
call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同。对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。(在使用call()方法时,传递给函数的参数必须逐个列举出来。使用apply()时,传递给函数的是参数数组)如下代码做出解释:
function add(c, d){
return this.a + this.b + c + d;
}
var o = {a:1, b:3};
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
2、区别
接收参数的方式不同:
对于call(),第一个参数是运行函数的作用域,其余参数都直接传递给函数即传递给函数的参数必须逐个列举出来。
对于apply(),第一个参数是 运行函数的作用域 ,另一个参数是参数数组,可以是Array实例或arguments对象。
正确答案: B 你的答案: A (错误)
$emit()
$broadcast()
$on()
$send()
Angular 的知识,
正确答案: B C D 你的答案: A C (错误)
每个JS对象一定对应一个原型对象,并从原型对象继承属性和方法
对象的__proto__指向自己构造函数的prototype
Object.prototype. __proto__=== null,说明原型链到Object.prototype终止
表达式 Function.prototype.__proto__.__proto__ === null 的运行结果为true
A选项
如果是使用Object.create(null)创建的空对象,是没有对应原型对象的,所以这个答案不够严谨!
B选项
// 对于我来说答案改成这样会好理解点: 对象的_proto_指向构造自己的函数的prototype
function foo() {};
var a = new foo();
console.log(a.__proto__, foo.prototype);
C选项
Object已经没有对应的原型了,Object.prototype. proto=== null为前提,终结原型。
D选项
Function对应的原型是Object,而Object没有对应的原型了,所以为null
正确答案: B 你的答案: E (错误)
true
string
undefined
false
number
解析:|| 这个是 短路或,也就是||前面为true的话就直接等于前面的值了,不会再看||后面。
这里4399<0是false,所以还需要往后看,4399+’'是字符串类型,typeof返回的是值的类型
所以在控制台输出的是String
正确答案: A 你的答案: C (错误)
Referer
Connection
Content-Type D
Server
解析:
说一说常见的请求头和相应头都有什么呢?
1)请求(客户端->服务端[request])
GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
Accept: /(客户端能接收的资源类型)
Accept-Language: en-us(客户端接收的语言类型)
Connection: Keep-Alive(维护客户端和服务端的连接关系)
Host: localhost:8080(连接的目标主机和端口号)
Referer: http://localhost/links.asp(告诉服务器我来自于哪里)
User-Agent: Mozilla/4.0(客户端版本号的名字)
Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)
Cookie(客户端暂存服务端的信息)
Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)
2)响应(服务端->客户端**[response])**
HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)
Location: http://www.baidu.com(服务端需要客户端访问的页面路径)
Server:apache tomcat(服务端的Web服务端名)
Content-Encoding: gzip(服务端能够发送压缩编码类型)
Content-Length: 80(服务端发送的压缩数据的长度)
Content-Language: zh-cn(服务端发送的语言类型)
Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)
Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)
Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)
Transfer-Encoding: chunked(分块传递数据到客户端)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)
Expires: -1//3种(服务端禁止客户端缓存页面数据)
Cache-Control: no-***(服务端禁止客户端缓存页面数据)
Pragma: no-***(服务端禁止客户端缓存页面数据)
Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系)Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)
在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息,解决跨域的一种方法。
正确答案: D 你的答案: A (错误)
round(7.25)rnd(7.25)Math.rnd(7.25)Math.round(7.25)
◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。
正确答案: A D 你的答案: A C (错误)
back回到浏览器载入历史URL地址列表的当前URL的前一个URLgo表示刷新当前页面length保存历史URL地址列表的长度信息forward转到浏览器载入历史URL地址列表的当前URL的下一个URL。
浏览器的内置对象管理模型,简称BOM(Browser Object Model)中的Histroy属性和方法。