一周面试题汇总(0328-0403)

2022/3/28 javascript

# 1. [js] 去掉字符串中的空格

写一个方法去掉字符串中的空格,要求传入不同的类型分别能去掉前、后、前后、中间的空格。

function clearSpace(str) {
    let reg = /[\s]+/g
    str = str.replace(reg, "")
    console.log(str)
}
const str = " this is a test string "
clearSpace(str) // output:thisisateststring
1
2
3
4
5
6
7

# 2. [css] 在页面上隐藏元素的方法有哪些?

在页面上隐藏元素的方法有哪些?并简述优劣势。

disaplay: none; 
/* 页面不会渲染,可以减少首屏渲染的时间,但会引起回流和重绘。不会影响页面布局。 */

visibility: hidden;
/* 页面会渲染但是不会显示。 */

opacity: 0;
/* 被隐藏的会占据布局空间。会引起重绘。 */

transform: scale(0);
/* 被隐藏的会占据布局空间。会引起重绘。 */

z-index: -9999
/* 让元素位置在视区外。 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3. [js] 去除字符串中最后一个指定的字符

function delLast(str, last) {
    if (typeof str == 'string') {
        let i = str.lastIndexOf(last)
        return str.substring(0,i)+str.substring(i+1)
    } else return false
}
const str = "this is a test string"
const last = 'i'
console.log(delLast(str,last)) // output:this is a test strng
1
2
3
4
5
6
7
8
9

# 4. [html] HTML5的文件离线储存怎么使用,工作原理是什么?

# 使用 manifest

通过离线存储,可以通过把需要离线存储在本地的文件列在 manifest 配置文件中,这样即使在离线的情况下,用户也可以正常使用App。

HTML 中引入

<!DOCTYPE HTML>
<html manifest="cache.manifest">
    ...
</html>
1
2
3
4

离线存储的 manifest 一般由三个部分组成:

CACHE:表示需要离线存储的资源列表,包含 manifest 文件的页面将被自动离线存储。

NETWORK:此标题下列出的文件需要与服务器的连接,且不会被缓存,离线时无法使用。

  - 如果在 CACHENETWORK 中有一个相同的资源,那么这个资源还是会被离线存储,也就是说 CACHE 的优先级更高。

FALLBACK:表示如果访问第一个资源失败,那么就使用第二个资源来替换。

示例:

CACHE MANIFEST
#v0.11

CACHE:
js/app.js
css/style.css

NETWORK:
resourse/logo.png

FALLBACK:
/ /offline.html
1
2
3
4
5
6
7
8
9
10
11
12

可以使用 * 来指示所有其他资源/文件都需要与服务器连接,NETWORK: *

如果在 CACHENETWORK 中有一个相同的资源,那么这个资源还是会被离线存储,也就是说 CACHE 的优先级更高。


Last Updated: 2022/4/21 下午7:22:26