BOM
-
window is a global object
-
定时器-延时函数(一次性)
setTimeout(function,ms) const timer = setTImeout(()=>{ console.log('Hello,World!') },1000) //一秒后输出 clearTimeout(timerID); //清除延时函数 clearTimeout(timer)
Js执行机制
Js是单线程执行的;
console.log('1');
setTimeout(()=>{
consle.log('2');
},0)
consle.log('3'); //最终输出1 3 2;此时拥有回调函数的都会进行异步处理
//js中先执行主线程,即执行栈中的进程,依次栈出;后执行任务队列,在依据条件栈出
-
navigator 浏览器对象
-
location
//打开谷歌翻译的界面 location.href consle.log(location.href); //'https://translate.google.cn/?hl=zh-CN&tab=TT#hashValue //协议 域名 端口80 路径 数据参数 哈希值 console.log(location.search); //'?hl=zh-CN&tab=TT' 输出?之后的所有数据 console.log(loaction.hash); //输出#之后的哈希值 location.reload(true); //重新加载 location.assign(https:网址); //加载指定的网址,产生历史记录 location.replace(https:网址); //替换指定的网址,不产生历史记录
-
history
history.length history.back(); history.forward(); history.go(num); //num为正前进=forward(),num为负后退=back()
-
screen
本地存储LocalStorage
localStroage.setItem(key,value) //存到本地
const uname = 'Google';
localStorage.setItem('username', uname);
localStorage.getItem(key) //获取
localStorage.getItem('username');
localStorage.removeItem(key) //删除
localStoprage.removeItem('username');
sessionStorage
sessionStroage.setItem(key,value) //存到本地
const uname = 'Google';
sessionStorage.setItem('username', uname);
sessionStorage.getItem(key) //获取
sessionStorage.getItem('username');
sessionStorage.removeItem(key) //删除
sessionStoprage.removeItem('username');
本地存储仅支持字符串类型,不支持复杂数据类型,可以使用json方法转换为json字符串
const obj = {
app : 'Google',
city : 'usa',
uname : '川建国',
}
localStorage.setItem('google', obj);
//[object Object] 存储错误,无法使用
const result = JSON.stringify(obj);
localStorage.setItem('google',result);
//{"app":"Google","city":"usa","uname":"川建国"} 字符串类型存储
//获取时依旧为字符串类型,需要使用JSON.parse进行转换为原始类型
JSON.parse(localStorage.getItem('google'));
//{app: 'Google', city: 'usa', uname: '川建国'} 对象类型
数组映射map
//array.map(function(item, index, o)) map遍历数组
//item -> 数组中每一项 index -> 每项的索引值 o -> 数组本身
const arr = [1, 2, 3, 4, 5];
arr.map(function(item, index){consle.log(item, index)})
//1 0, 2 1, 3 2, 4 3, 5 4
const newArr = arr.map(function(item){
return item;
})
console.log(newArr); //[1, 2, 3, 4, 5] 当map时使用return此时输出为一个数组
数组拼接join
const arr = ['a', 'b', 'c', '123']
const result = arr.join('-');
console.log(result); //a-b-c-123
const re = arr.join('');
console.log(re); //abc123
过滤filter
//Array.filter(function(ietem,index,o){return xx})
//此函数接收boolean值,当值为true时返回新数组,否则不返回
const arr = [1,2,3]
var newArrs = arr.filter(function(item,index,o){return false});
console.log(newArrs); //[]空数组
var newArrs2 = arr.filter(function(item){return true});
console.log(newArrs2); // [1,2,3]
var newArrs3 = arr.filter(item => item>2);
console.log(newArrs3); // [3]
迭代forEach
//Array.forEach9(function(item){console.log(item)});
//多数是用作迭代输出
const arr = [1,2,3]
arr.forEach(function(item){consoel.log(item)}); //1,2,3
find/findIndex
const arr = [{name:'wu',age:20},{name:'xi',age:30},{name:'hi',age:40}]
var item = arr.find(function(item){return item.name === 'wu'})
var itemIndex = arr.findIndex(function(item){return item.age === 40})
console.log(item); //{name:'wu',age:20}
cosnole.log(itemIndex); //2
累加reduce
//Array.prototype.reduce(function(prev,item),initvalue);//prev为上一次值,当initvalue有值时,prev第一次值为initvalue,否则为数组第一项
const arr = [10,11,12]
var count = arr.reduce((prev,item)=>prev+item,0)
console.log(count); //33