字节跳动2017笔试 (2) --- 解析

前面的话

这套题考点包括html/css 、js、跨域问题、计组、计网、数据结构、操作系统、算法、概率论,都比较基础。题目来源牛客。

解析

(1) 变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()
A: 1
B:-(2^62+2^61+2^60+1)
C:2^62+2^61+2^60+1
D:2^59+(2^55+2^54+…+2^2+2^1+2^0)

计算机采用补码来存数据,即:

  • a的补码: 1111(后面60个0)
  • b的补码: 0111(后面60个1),是整数,其原码一样
  • -b的补码:1000(后面59个0,最后一个1)
  • (a - b)补 = (a补 + (-b)补) = 0111(后面59个0,最后一个1)高位溢出,舍去
  • 结果为2^62+2^61+2^60+1
(2) 下面代码打印结果?
console.log(([])?true:false); 
console.log(([]==false?true:false)); 
console.log(({}==false)?true:false) 
  • 第一题 Boolean([]) 返回true

    布尔类型只有这几个参数返回false:

    	Boolean(undefined) // false
    	Boolean(null) // false
    	Boolean(0) // false
    	Boolean(NaN) // false
    	Boolean('')// false 
    
  • 第二题Number([]) // 0
    false转为number类型 0

  • 第三题Number({}) // NaN
    Number转换类型的参数如果是对象就是NaN

所以结果为true、true、false

(3) 哪些是块级元素
A: input
B: ul
C: hr
D: li
E: div
F: form
  • 块级元素有: ul、hr、li、fiv、form(hr是空标签,是一条水平线)
  • input是行内替换元素。
(4) 关于跨域问题下面说法正确的是?()
A: 可以利用flash的http请求,来处理跨域问题
B: 通过iframe设置document.domain可以实现跨域
C: 一般情况下,m.toutiao.com可以ajax请求www.toutiao.com域名下的接口并获得响应
D: 通过jsonp方式可以发出post请求其他域名下的接口
  • flash不能解决跨域问题
  • document.domain:这种方式用在主域名相同子域名不同的跨域中
  • 域名不同的情况下不可以是ajax
  • jsonp: 利用

你可能感兴趣的:(前端错题积累)