三十二:请问前端优化的方式都有哪些?
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);