WebAPIs基础知识06

Wenn 于 2022-09-13 发布

BOM

Js执行机制

Js是单线程执行的;

console.log('1');
setTimeout(()=>{
    consle.log('2');
},0)
consle.log('3');   //最终输出1 3 2;此时拥有回调函数的都会进行异步处理
//js中先执行主线程,即执行栈中的进程,依次栈出;后执行任务队列,在依据条件栈出

本地存储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