今日头条题型

1、变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?(2^62+2^61+2^60+1)
解析
0x7FFFFFFFFFFFFFFF+1=0X8000000000000000,那么
a-b=0Xf000000000000000-0X8000000000000000+1
=0X7000000000000001
=16^15*7+16^0*1
=2^60*7+1
=2^60*(2^2+2^1+2^0)+1
=2^62+2^61+2^60+1

2、(1)console.log(([])?true:false);
(2)console.log(([]==false?true:false));
(3)console.log(({}==false)?true:false)
得到的结果分别是什么?(true true false)
(1)Boolean([]); //true
(2)Number([]); //0
(3)Number({}); // NaN
Number(false); //0

3、关于跨域问题下面说法正确的是?()B
A. 可以利用flash的http请求,来处理跨域问题
B. 通过iframe设置document.domain可以实现跨域
C. 一般情况下,m.toutiao.com可以ajax请求www.toutiao.com域名下的接口并获得响应
D. 通过jsonp方式可以发出post请求其他域名下的接口

4、以下符合 ES6 写法的有:()C
class Foo
{
constructor() {return Object.create(null);}
}
Foo()
var m=1;
export m;
export var firstName=’Michael’;
在A模块中export{readFile}后,在B模块中import readFile from ‘A’可以获取到readFile

5、堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?()
O(n), 这里写图片描述
初始建堆操作复杂度是 O(n)的.
建堆时,由于只采取Push的操作,所以每次将新的数字Push到堆的最后一位,然后按照插入到原则,进行堆的由下至上调整.

6、http 请求方式 get 和 post 的区别包括()A B
get和post的可传输内容大小不一样,一个有限制一个没有限制
get和post传输的内容存放的位置不一样,一个放在header,一个放在body
get请求Content-type只能是text/html
get请求可以跨域、post请求不能跨域
解析:
get的 Content-type不仅可以是 text/html,也可以是其他,如 application/json, text/plain 等等
get请求post请求可以跨域

7、
假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果可能是()-1、-2、0

boolean isOdd = false;

for(int i=1;i<=2;++i)
{
if(i%2==1)isOdd = trueelse isOdd = false;
a+=i*(isOdd?1:-1);
}

这里写图片描述
假设两线程为A、B,设有3种情况:
1.AB完全并发:此时读写冲突,相当于只有一个线程对a的读写最终生效。相当于只执行了一次。此时a=-1
2.AB部分并发:假设A先进行第一次读写,之后A的第二次读写被B覆盖了
3.AB不并发:顺序执行

猜你喜欢

转载自blog.csdn.net/qq_41401130/article/details/82025795