8.什么是window对象?什么是document对象?
- window对象是指浏览器打开的窗口。
- document对象是Document对象(HTML 文档对象)的一个只读引用,window对象的一个属性。
闭包案例—数组每隔一秒打印一个数
// 方法一,利用立即执行函数闭包效果,时间要乘以i
function demo(arr) {
for (var i = 0; i < arr.length; i++) {
setTimeout(
((i) => {
return function () {
console.log(arr[i]);
};
})(i),
1000 * i
);
}
}
demo([1, 4, 6, 9]);
// 方法二,let命令在块作用域有效,相当于闭包
function demo1(array) {
for (let i = 0; i < array.length; i++) {
setTimeout(() => {
console.log(array[i]);
}, 1000 * i);
}
}
demo1([1, 4, 6, 7]);
提取URL中的各个GET参数, 详情
提取get参数,以对象的形式打包输出
例如http://item.taobao.com/item.htm?name=xiaoming&sex=boy&age=18&weight=70kg&e
输出为{name:“xiaoming”,sex:“boy”,age:“18”,weight:“70kg”,e=undefined};
var str =
"http:/\/item.taobao.com/item.htm?name=xiaoming&sex=boy&age=18&weight=70kg&e";
function serilizeUrl(url) {
var result = {
};
// 字符串split分割成数组, 数组split分割成字符串
// console.log(url.split("?")); //["http://item.taobao.com/item.htm", "name=xiaoming&sex=boy&age=18&weight=70kg&e"]
url = url.split("?")[1]; //name=xiaoming&sex=boy&age=18&weight=70kg&e
var map = url.split("&"); //["name=xiaoming", "sex=boy", "age=18", "weight=70kg", "e"]
len = map.length
for (var i = 0; i < len; i++) {
result[map[i].split("=")[0]] = map[i].split("=")[1];
}
return result;
}
console.log(serilizeUrl(str));
js生成1到100的随机数,js生成随机数使用math.random()函数
function random(min,max){
// Math.floor向下取整, ceil向上取整, round,四舍五入
return Math.floor(Math.random()*(max-min) )+ min
}
console.log(random(1,100));
页面出现空白,怎么排查定位问题?
1、先确保网络连接通畅。
2、查看网络url地址是否输入有误。
3、打开控制台查看报错信息。
4、查看接口访问是否有请求。
5、查看路由是否有path或者name的错误,导致加载了不存在的页面。
一般这几个步骤走完,基本能够定位问题了
9.JS 对象和字符串互转
JSON.stringify()用于从一个对象解析出字符串
例如:var a = {
a:1,b:2},JSON.stringify(a)
//输出‘{
“a”:1,“b”:2}’
JSON.parse()从一个json字符串解析出json对象.
var str = '{"name":"huangxiaojian","age":"23"}'
json.parse(str)
//输出
str = {
name:"huangxiaojian",
age:"23"
}
10.请用简单的语言描述数组方法pop(),push(),unshift(),shift()
- pop(),删除数组的最后一个元素,把数组长度减1,并返回它删除的元素的值,如果数组为空,则POP不改变数组,并返回undefined值
- push(),向数组的末尾添加一个或多个元素,并返回新的长度
- unshift(),向数组的开头添加一个或多个元素,并返回新的长度
- shift()方法,将数组的第一个元素从其中删除,并返回新的长度
11数组的截取和合并
11.1将数组拼接成字符串join
let arr = ['h', 'e', 'l', 'l', 'o'];
let str = arr.join('-'); // h-e-l-l-o
arr.join(); // 'h,e,l,l,o'
arr.join(''); // hello
11.2 array.concat([item1[, item2[, . . . [,itemN]]]]); -->合并数组;浅拷贝
let arr = [1,2,3];
let arr1 = [4,5,6]
arr.concat(arr1) //[1, 2, 3, 4, 5, 6]
11.3.数组截取slice(start, end)方法,start(包含)和end(不包含)来指定位置,负数从字符串的末尾进行开始。
let arr = [1,2,3,4,5];
arr.slice(1,3); // [2,3];
arr [1,2,3,4,5]//不改变原数组
arr.slice(-1); // [5]
114.数组截取splice(start, end)方法,start(包含)和end(包含)来指定位置
let arr = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
arr.splice(1,2); // ["Orange", "Lemon"] arr: ["Banana", "Apple", "Mango"]
//注意:当为0时会返回原数组,会改变原数组,原数组返回的就是截取剩余的部分。
12。将字符串分割成数组,split()方法,用于把一个字符串分割成数组
"2:3:4:5".split(":") //将返回["2", "3", "4", "5"]
"|a|b|c".split("|") //将返回["", "a", "b", "c"]
求[1, 10, 11, -1,’-5’,12, 13, 14, 15, 2, 3, 4, 7, 8, 9]内最大值与最小值之差
// 来一个很粗糙的版本,只当传入是数组且可以隐性转为数字的
function MaxMinPlus(arr) {
// 返回最大值与最小值之差
return Array.isArray(arr) ? Math.max.apply(Math, arr) - Math.min.apply(Math, arr) : console.log('传入的不是数组亦或者未能解决的错误')
}
// 结果是 20
一个数组中 par中存放了多个人员的信息,每个人员的信息由 name 和 age 构成({name:‘张三’,age:15}).请用 JS 实现年龄从小到大的排序;
var par