字节跳动2017秋招前端工程师笔试试卷
第一题:
a-b=a+(-b)
运算规则
- 原码是符号位加上真值的绝对值,即用第一位表示符号位,其余位表示值。
- 正数的反码是其本身。负数的反码是在原码的基础上,符号位不变,其余按位取反
- 正数的补码是其本身。负数的补码是在原码的基础上,符号位不变,其余按位取反,最后加1
- 计算机进行符号运算时,会以补码表示,符号位和数字位会一起参与运算
a补码为1111000000000000000000000000000000000000000000000000000000000000
b补码为0111111111111111111111111111111111111111111111111111111111111111
-b补码为1000000000000000000000000000000000000000000000000000000000000001
第二题:
第一题:console.log(([])?true:false);
布尔类型里只有这几参数个返回false,其它都为true
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean(’’) // false
二三题: 布尔类型与其它任何类型进行比较,布尔类型将会转换为number类型。
Number([])返回0所以第二题为true
Number转换类型的参数如果为对象返回的就是NaN,
那么Number({})返回的就是NaN。
通过Object.prototype.toString.call({})来判断类型,0与NaN相比为false
第三题:
(1)行内元素有:a b span img input select strong
(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p 块元素一般都从新行开始,它可以容纳内联元素和其他块元素
第四题:
js中实现跨域的六种方式:
第一种方式:jsonp请求;jsonp的原理是利用
第三题:域名不同不可以使用ajax
第五题:
D的错误:A模块对外暴露了一个对象,引入的时候需要使用解构赋值
正确写法:B:import {readFile} from ‘A’
B:export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
正确的写法:
// 写法一
export var m = 1;
// 写法二
var m = 1;
export {m};
// 写法三
var n = 1;
export {n as m};
A:类必须使用new调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。
第六题:
css中,边框,盒子模型,背景属性属于不可继承属性 字体,文本样式属性属于可继承属性
详细参考:http://www.cnblogs.com/thislbq/p/5882105.html
第七题:
没看懂就先不写了
第八题:
GET请求也可传参到后台,但是其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的
POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制
作者:Fairy_妍
链接:https://www.jianshu.com/p/a5cdfd2bda66
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
详细参考:https://www.jianshu.com/p/a5cdfd2bda66
第九题:
第十一题:
visiblity:看不见,摸的着. display:看不见,摸不着. display是dom级别的,可以渲染和重绘。 visiblity不是dom级别的,不能重绘,只能渲染
在上一份中出现过
第十二题:
第十三题:
链接:https://www.nowcoder.com/questionTerminal/95429d84f1ed40108ed5e6df1fc18c73
来源:牛客网
input id=“btnShow” type=“button” value=“点击” class=“btn”> 上面是一段按钮的html代码 如果要用原生的js来禁用这个按钮 可以用这样: document.getElementByIdx_x_x(“btnShow”).disabled=true;(这样就把按钮禁用了) 如果要重新开启按钮,则可以让disabled=false;即可
第十四题:
依次降低:
- 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
- 作为style属性写在元素内的样式
- id选择器
- 类选择器
- 标签选择器
- 通配符选择器
第十五题:
假设两线程为A、B,设有3种情况:
1.AB不并发:此时相当于两个方法顺序执行。A执行完后a=-1,B使用-1作为a的初值,B执行完后a=-2
2.AB完全并发:此时读写冲突,相当于只有一个线程对a的读写最终生效。相同于方法只执行了一次。此时a=-1
3.AB部分并发:假设A先进行第一次读写,得到a=1;之后A的读写被B覆盖了。B使用用1作为a的初值,B执行完后a=0
第十六题:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.container {
display: flex;
width: 180px;
height: 180px;
flex-wrap: wrap;
}
.box {
width: 50px;
height: 50px;
border: 5px solid blue;
background-color:aqua;
text-align: center;
line-height: 50px;
margin-right: -5px;
}
.box:hover {
border: 5px solid red;
z-index:9999;
}
</style>
</head>
<body>
<div class="container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
<div class="box">8</div>
<div class="box">9</div>
</div>
</body>
</html>