前端面试题精选(5)

三十二:请问前端优化的方式都有哪些?

1、从提高页面的加载速度的方面来说:

1.1 懒加载

1.2 代码压缩、合并减少 http 请求次数

1.3 减少请求图片资源 把多张图片 用精灵图展示 减少图片请求。

1.4 优化页面使用图标字体库,因为字体比图片加载的快。

2、提高网页的兼容性

1.比如说在使用事件是,阻止默认事件

三十三:array数组对象的方法

三十四:HTTP 状态消息 200 302 304 403 404 500 分别表示什么?

200:请求已成功,请求所希望的响应头或数据体将随此响应返回。

302:请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当 继续向原有地址发送以后的请求。

只有在 Cache-Control 或 Expires 中进行了指定的情况下, 这个响应才是可缓存的

304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上 次访问以来或者根据请求的条件)并没有改变,

则服务器应当返回这个状态码。304 响应禁 止包含消息体,因此始终以消息头后的第一个空行结尾。

403:服务器已经理解请求,但是拒绝执行它。

404:请求失败,请求所希望得到的资源未被在服务器上发现。

500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

三十五:js循环语句都有哪些?

for循环、for in 循环、for of 循环、foreach循环、while、do while()

回顾一下 while do while()

    // while 循环
    var i = 1; //先循环起始值
    while (i <= 10) { // while(循环条件)
        console.log(i) //循环操作
        i++; //循环迭代
    }
    // do while 循环特点: 先执行,在判断,至少会执行一次循环操作。
    do {
    //     循环操作
    //     循环迭代
    // }
    while (循环条件) {}

    var i = 0;
    do {
        console.log('好好学习第' + i + '次')
        i++;
    } while (i <= 10);

三十六:正则表达式

1、题目1,以字母开头,其余都是字母匹配6-10位

var reg =/^[a-Z]\w{6,10}$/g

2、题目2,匹配手机号

var reg=/^1[3-9][0-9]{9}$/g

三十七:冒泡排序(目前所知道的两种方式)

    //冒泡排序(利用for循环的双重遍历)
    var arr = [7, 8, 4, 3, 7, 1, 6, 4, 9];
    console.log('原数组' + arr)
    for (var i = 0; i <= arr.length; i++) {
        for (j = i + 1; j <= arr.length; j++) {
            if (arr[i] < arr[j]) {
                // var c = arr[j];
                // arr[j] = arr[i]
                // arr[i] = c
                var c = arr[i];
                arr[i] = arr[j];
                arr[j] = c;
            }
        }
    }
    console.log('降序后的排序:' + arr)

    // sort排序方法
    // 对数组里面全是数字进行比较的时候
    数组名.sort(function (a, b) {
        return a - b //升序 小→大
        return b - a // 降序 大→ 小
    })
    var arrys = new Array(1, 2, 3)
    console.log(arrys)

三十七:数组去重(目前所知道的两种方式)

 // 数组去重(利用for循环的双重遍历)
    var nums = [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]
    console.log('去重前的nums' + nums)
    for (var i = 0; i < nums.length; i++) {
        for (var j = i + 1; j < nums.length; j++) {
            if (nums[i] == nums[j]) {
                nums.splice(j, 1);
                j--
            }
        }
    }
    console.log('去重后的nums:' + nums);
// ES6 数组去重(利用es6 的set(),该方法自带去重的属性)
 let num = [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]
 let set = new Set(num)
 console.log(num);// 1,2,3,4,5,6,

三十八:将var str='border-left-color'; 改为: BorderLeftColor 单词首字母变大写

思路:

1、通过-分割字符串为数组 通过split('-')

2、遍历数组

3、找到数组中每一个元素的首字母,subString(0,1),变为大写

4、把数组里面的元素通过改过首字母的单词重新拼接后面的 subString(1),

5、把数组通过join(''),拼接为字符串

var str='border-left-color';
var arr = str.split('-');
console.log(arr);
for(var i =0;i<arr.length;i++){
    arr[i] = arr[i].substring(0,1).toUpperCase() + arr[i].substring(1);
    console.log(arr[i]);
}

str = arr.join('');
console.log(str);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值