1、avaScript定义var a="40",var b=7,则执行a%b会得到()。
a,5 b,"5" c,undefined d,null
解析:运算中,+号,数字隐式转换成字符串。其余的运算符号是字符串隐式转换成数字。
答案:a
2、下面哪一种不属于 js 的六种基本数据类型?()
undefined
string
null
Object
解析: 5 中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number 和 string。还有一种复杂数据类型——Object。
答案:object
3、
first,second,first,second..依次顺序输出
首先全部输出first,然后全部输出second
first,second无顺序输出
首先输出first,超出5ms输出所有second,最后输出余下的first
解析:首先js 是运行于单线程环境中,定时器作用是在规定时间内将事件加入执行队列,而加入的前提是当前事件队列没有任何东西
答案:B
4、公司内部为100Mbps的企业网,办公室计算机从网络中心下载25M的文件,在没有流量控制与无干扰的情况下,大概需要的时间为( )
A、0.5秒
B、1秒
C、2秒
D、4秒
解析:100 Mbps 是按 bit 传输的,所以需要转化为 byte 的传输速度,需要除以 8,即下载速度是 12.5Mb/s,所以需要 2 秒
下列哪些会返回false?
以下哪些表达式的值为0?
(()=>{}).length
1 & 2
+[]
[1,2,-3].reduce((a, b) => a - b, 0)
标签没有闭合,应该是
1 |
|
做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。
因此,这里相当于字符串的合并,即为122.
1 |
|
第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+ +"2"相当于1+2=3.
然后和后面的字符串“2”相合并,变成了字符串"32".
1 |
|
"A"-"B"的运算中,需要先把"A"和"B"用Number函数转换为数值,其结果为NaN,在剪发操作中,如果有一个是NaN,则结果是NaN,因此"A"-"B"结果为NaN。
然后和"2"进行字符串合并,变成了NaN2.
1 |
|
根据上题所述,"A"-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN。
如果设置 position: static ; 则上边距为1 px
如果设置 position: relative ; 则上边距为2 px
如果设置 position: absolute ; 则上边距为3 px
如果设置 position: sticky ; 则滚动起来上边距为4 px
position: static ; 则上边距为( 20 ) px 静态定位 top值无效
position: relative ; 则上边距为( 30 ) px 移动的时候会包括margin
position: absolute ; 则上边距为( 30 ) px 移动的时候会包括margin
position: fixed ; 则上边距为( 30 ) px 固定定位的margin也会生效 移动的时候也会包括margin
position: sticky ; 则上边距为( 20 ) px,页面滚动起来为(10)px,margin会无效;页面没滚动的 时候是静态定位
js里面没有函数重载的概念,在其他语言中(如java)java中,可以存在同名函数,
只要传入的参数数量或者类型不同即可。在js中,定义了两个同名函数后,
后面的函数会覆盖前面定义的函数。结合这道题来说,由于函数声明提升,
所以函数声明会提前,由于存在同名函数,后面的add函数将覆盖第一个add函数,
所以两次调用add()返回的值是相同的。也就是y,z都为
4
.
function add(){}定义的函数会优先解析,而不是顺序解析;因此整个过程中,首先依次解析两个add function,由于同名,所以后者会覆盖前者;然后,顺序解析其余的JS代码,y = add(m);语句和z = add(m); 语句调用的都是第二个add function,因此返回的都是4.
定义函数的三种方式有:function函数、Function()构造函数、对象字面量。
JavaScript 中包含以下 7 个全局函数,用于完成一些常用的功能(以后的章节中可能会用到):
escape( )、eval_r( )、isFinite( )、isNaN( )、parseFloat( )、parseInt( )、unescape( )。
Ajax技术核心就是XMLHttpRequest对象。
Ajax技术的工作原理:可以分成3步
1.创建Ajax对象:var xhr = new XMLHttpRequest();
2.xhr 发送请求:xhr.open('get','test.html','true');
xhr.send();
3.xhr获取响应:
xhr.onreadystatechange = function(){
if(xhr.readystate == 4){//请求的状态码
/*
0:请求还没有建立(open执行前)
1:请求建立了还没发送(执行了open)
2:请求正式发送(执行了send)
3:请求已受理,有部分数据可以用,但还没有处理完成
4:请求完全处理完成
*/
alert(xhr.responseText);//返回的数据
}
}
可以看到,send()前是open()
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-cache(服务端禁止客户端缓存页面数据)
Pragma: no-cache(服务端禁止客户端缓存页面数据)
Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)