欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2017字节跳动前端工程师秋招笔试试题解析

程序员文章站 2022-03-04 11:58:20
...

1.变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为()

0x7FFFFFFFFFFFFFFF+1=0X8000000000000000,那么

a-b=0Xf000000000000000-0X8000000000000000+1

=0X7000000000000001

=16157+1601

=2^60*7+1

=260*(22+21+20)+1

=262+261+2^60+1
2.

console.log(([])?true:false); //true 
console.log(([]==false?true:false));  //true
console.log(({}==false)?true:false)  //false

得到的结果分别是什么?()

解析:

Boolean([]); //true
Number([]); //0
Number({}); // NaN
Number(false); //0

布尔类型与其它任何类型进行比较,布尔类型将会转换为number类型。
3. 下列哪些是块级元素()

行内元素有:a b span img input select strong

块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

常见的空元素: <br> <hr> <img> <input> <link> <meta>

鲜为人知的是:<area> <base> <col> <command> <embed> <******> <param> <source> <track> <wbr>
4. 关于跨域问题下面说法正确的是?()

Javascript中实现跨域的方式总结

第一种方式:jsonp请求;jsonp的原理是利用

一、无继承性的属性

1、display:规定元素应该生成的框的类型

2、文本属性:

vertical-align:垂直文本对齐

text-decoration:规定添加到文本的装饰

text-shadow:文本阴影效果

white-space:空白符的处理

unicode-bidi:设置文本的方向

3、盒子模型的属性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left

4、背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment

5、定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index

6、生成内容属性:content、counter-reset、counter-increment

7、轮廓样式属性:outline-style、outline-width、outline-color、outline

8、页面样式属性:size、page-break-before、page-break-after

9、声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during



二、有继承性的属性

1、字体系列属性

font:组合字体

font-family:规定元素的字体系列

font-weight:设置字体的粗细

font-size:设置字体的尺寸

font-style:定义字体的风格

font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。

font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。

font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。

2、文本系列属性

text-indent:文本缩进

text-align:文本水平对齐

line-height:行高

word-spacing:增加或减少单词间的空白(即字间隔)

letter-spacing:增加或减少字符间的空白(字符间距)

text-transform:控制文本大小写

direction:规定文本的书写方向

color:文本颜色

3、元素可见性:visibility

4、表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout

5、列表布局属性:list-style-type、list-style-image、list-style-position、list-style

6、生成内容属性:quotes

7、光标属性:cursor

8、页面样式属性:page、page-break-inside、windows、orphans

9、声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation



三、所有元素可以继承的属性

1、元素可见性:visibility

2、光标属性:cursor



四、内联元素可以继承的属性

1、字体系列属性

2、除text-indent、text-align之外的文本系列属性



五、块级元素可以继承的属性

1、text-indent、text-align

7.堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4C3f7Da-1611133255226)(C:\Users\NSQAQ\Desktop\学习笔记\面试题剖析\堆.png)]

8.http 请求方式 get 和 post 的区别包括()

get和post的可传输内容大小不一样,一个有限制一个没有限制
get和post传输的内容存放的位置不一样,一个放在header,一个放在body

9.下面哪些属于JavaScript的typeof运算符的可能结果:()

typeof Symbol() //“symbol”

typeof Number() //“number”

typeof String() //“string”

typeof Function() //“function”

typeof Object() //“object”

typeof Boolean() //“boolean”

typeof null //“object”

typeof undefined //“undefined”

10.老王有两个孩子,已知至少有一个孩子是在星期二出生的男孩。问:两个孩子都是男孩的概率是多大?

男,周二:1/14

男,非周二:6/14

女,周二:1/14

女,非周二:6/17

两个孩子至少一个是周二生的男孩:1/14+1/14-1/14*1/14=27/196

两个孩子都是男孩且至少一个是周二生的:1/141/14+1/146/14+6/14*1/14=13/196

条件概率:13/27

11.下列说法正确的有:()

visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;
display:none;不为被隐藏的对象保留其物理空间;

12.CP断开连接的四次挥手中,第四次挥手发送的包会包含的标记,最正确的描述是?(ACK)

13.页面有一个按钮button id为button1,通过原生的js如何禁用?()

document.getElementById(“button1”).setAttribute(“disabled”,”true”);
document.getElementById(“button1”).disabled=true;

14.关于下列CSS选择器:ID选择器、类选择器、伪类选择器、标签名称选择器,排序正确的是:()
在属性后面使用!important会覆盖页面内任何位置定义的元素样式。
作为style属性写在元素内的样式
id选择器.类选择器 = 伪类选择器=属性选择器 (后面的样式会覆盖前面的 样式)
标签选择器
通配符选择器
浏览器自定义的样式

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

boolean isOdd = false;

for(int i=1;i<=2;++i)

{
if(i%2==1)isOdd = true;

else isOdd = false;

a+=i*(isOdd?1:-1);

}

16.使用HTML+CSS实现如图布局,border-width:5px,格子大小是50px*50px,hover时

边框变成红色,需要考虑语义化。

<!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>

17.给出一个上传文件时不用刷新页面的方案,要求写出关键部分的js代码。

<input type="file"  id="file"/>
<button id="upload">点击上传</button>

var file = document.getElementById("file");
var upload = document.getElementById("upload");
var ajax = new XMLHttpRequest();
ajax.open("POST", "您的url");
ajax.send(file.value);
window.onreadystatechange = funcation () {
    if(ajax.readyState === 4; ajax.status === 200){
        var response = ajax.responseText;
    }
}

18.给定整数n和m, 将1到n的这n个整数按字典序排列之后, 求其中的第m个数。
对于n=11, m=4, 按字典序排列依次为1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9, 因此第4个数是2.
对于n=200, m=25, 按字典序排列依次为1 10 100 101 102 103 104 105 106 107 108 109 11 110 111 112 113 114 115 116 117 118 119 12 120 121 122 123 124 125 126 127 128 129 13 130 131 132 133 134 135 136 137 138 139 14 140 141 142 143 144 145 146 147 148 149 15 150 151 152 153 154 155 156 157 158 159 16 160 161 162 163 164 165 166 167 168 169 17 170 171 172 173 174 175 176 177 178 179 18 180 181 182 183 184 185 186 187 188 189 19 190 191 192 193 194 195 196 197 198 199 2 20 200 21 22 23 24 25 26 27 28 29 3 30 31 32 33 34 35 36 37 38 39 4 40 41 42 43 44 45 46 47 48 49 5 50 51 52 53 54 55 56 57 58 59 6 60 61 62 63 64 65 66 67 68 69 7 70 71 72 73 74 75 76 77 78 79 8 80 81 82 83 84 85 86 87 88 89 9 90 91 92 93 94 95 96 97 98 99 因此第25个数是120…

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            long n = sc.nextLong();
            long m = sc.nextLong();
            System.out.println(solve(n, m));
        }
    }

    private static long solve(long n, long m) {
        long ans = 1;
        while (m != 0) {
            long cnt = getCntOfPre(ans, n);
            if(cnt >= m) {
                m --;
                if(m == 0)
                    break;
                ans *= 10;
            } else {
                m -= cnt;
                ans ++;
            }
        }
        return ans;
    }

    private static long getCntOfPre(long pre, long n) {
        long cnt = 1;
        long p = 10;
        for (; pre * p <= n; p *= 10) {
            if (pre * p - 1 + p < n)
                cnt += p;
            else
                cnt += n - pre * p + 1;

//          cnt += Math.min(n, pre * p - 1 + p) - pre * p + 1;
        }
        return cnt;
    }
}
相关标签: 笔记