
js高级
rgpbrave
这个作者很懒,什么都没留下…
展开
-
Object.keys()、Object.values()、Object.entries()
一、Object.keys(obj)参数:要返回其枚举自身属性的对象返回值:一个表示给定对象的所有可枚举属性的字符串数组处理对象,返回可枚举的属性数组let person = {name:"张三",age:25,address:"深圳",getName:function(){}};console.log(Object.keys(person));在处理字符串或者数组时返回索引值数组**二、Object.values()返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值原创 2021-03-02 12:27:59 · 139 阅读 · 0 评论 -
js 中 new操作符的作用
1.在内存中创建一个新对象2.把新对象的_ _ proto_ _属性链接到构造函数的原型prototype属性上3.把构造函数内部的this指向新对象上4.执行构造函数(给新对象添加属性)5.如果构造函数返回的是非空对象(),则返回该对象;否则,返回刚创建的对象。(返回的是引用类型就返回引用类型对象,没有返回或者返回数据类型则返回新创建的对象)下面是一些小例子,加深一下理解function fn() { this.user = '11'; return {};原创 2021-02-19 23:41:35 · 131 阅读 · 0 评论 -
js 快速排序 插入排序 冒泡排序
等待更新原创 2021-01-27 10:28:20 · 73 阅读 · 0 评论 -
ajax 和 axios
ajax技术核心是XMLHttpRequest,无须刷新页面即可从服务器取得数据,然后在通过DOM将新数据插入到页面中。四部曲1.先创建 XMLHttpRequest构造函数var xhr = new XMLHttpRequest()2.创建连接 请求已备发送xhr.open("method",url,bollean)3.发送请求xhr.send(null)4.绑定监听事件,接收服务器发来的数据xhr.onreadystatechange = function(){if(this原创 2021-01-19 00:33:53 · 145 阅读 · 0 评论 -
原生实现vue的双向数据绑定
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <input type="text"原创 2021-01-07 11:11:51 · 97 阅读 · 0 评论 -
json 对象 stringify parse
*JSON.stringify()和JSON.parse() 都是深拷贝//JSON.stringify() 将js序列化为 json字符串//可以接受三个参数//第一个是 要序列化的对象//第二个是 过滤器(可以是数组或函数)//第三个是 用于缩进结果字符串的选项let book = { title:"平凡的世界", authors:["路遥","我"] }JSON.stringify(book,["authors"],4)JSON.stringify(book,(key,value原创 2020-12-09 18:52:37 · 139 阅读 · 0 评论 -
js 嵌套对象,替换属性值(递归)
//把 aa 里面a的属性为1的替换为1234//不知道 对象嵌套多长少层 利用递归原理 let aa = {a:1,b:2,c:{a:1,b:2,c:{a:1,b:2,c:{a:2}}}} function abc(aa){ for( var key in aa){ if(key=="a" && aa[key]=="1"){ aa[key]="1234" } if(typeof aa[key] =原创 2020-12-08 16:09:12 · 2200 阅读 · 0 评论 -
js sort、reserve排序(商品常用)
reserve 翻转数组 (灵活应用)sort()不加参数直接调用,会在每一项调用string()转型函数,然后按照字符编码顺序排序。var arr1 = ['a', 'd', 'c', 'b'];arr.sort(); //['a', 'b', 'c', 'd']var arr2 = [10, 5, 40, 25, 100, 1];arr2.sort(); //[1, 10 ,100, 25, 40, 5]这样没有达到我们想要的效果;sort()方法还可以接受一个比较函数,用于判断哪原创 2020-12-08 11:34:13 · 1888 阅读 · 0 评论 -
js 运行机制(Event Loop事件轮训)同步任务 异步任务(宏观任务和微观任务)(待更新详细介绍执行逻辑)
1、JS是单线程语言,包括同步任务、异步任务,异步任务又包括宏观任务和微观任务2、执行顺序:同步任务——>微观任务——>宏观任务3、宏观任务的方法有:script(整体代码)、setTimeout、setInterval、I/O、UI交互事件、postMessage、MessageChannel、setImmediate(Node.js 环境)4、微观任务的方法有:Promise.then、MutaionObserver、process.nextTick(Node.js 环境),as原创 2020-07-23 16:00:09 · 808 阅读 · 0 评论 -
js 防抖和截流
函数防抖节流防抖 //搜索监听响应在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时var timer; window.onscroll=function(){ if(timer){ clearTimeout(timer) } timer = setTimeout(function(){ console.log("哈哈") },2000); }节流 //滚动事件原创 2020-07-22 17:47:54 · 422 阅读 · 0 评论 -
js 数组常用api(包含fliter,some,map,every,reduce)
1.join 将数组转换成字符串,默认以逗号分隔 (不改变原数组)var arr = [1,2,3,4];console.log(arr.join()); //1,2,3,4console.log(arr.join("/")); //1/2/3/42.sort 按数组生序降序排列数组arr.sort(function(a,b){return a-b})升序arr.sort(function(a,b){return b-a})降序//数组里对象某隔属性值function compare(原创 2020-07-21 15:54:44 · 405 阅读 · 0 评论 -
js原生解决页面传值(乱码获取不到等)问题
进行页面传参时,里面有特殊符号或者有嵌套双引号等这类的,这个时候传参获取不到,或者有乱码问题,我们可以用转码来传递这类的参数值//传递的页面 把传递的值进行编码var send = btoa(encodeURI(string));//接收的页面 把接收来的值进行转码var receive = decodeURI(atob(send));encodeURL/decodeURL : 不能编码!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A原创 2020-06-10 17:53:21 · 337 阅读 · 0 评论 -
js 字符串常用api()
js 字符串常用api!!!所有字符串的方法都会返回新字符串。它们不会修改原始字符串。!!!所有字符串的方法都会返回新字符串。它们不会修改原始字符串。!!!所有字符串的方法都会返回新字符串。它们不会修改原始字符串。查找字符串一、 length: 返回字符串的长度 var str = "abcdef" var strLen = str.length // 6二、 indexOf( ): 返回字符串中指定文本首次出现的索引(位置***如果未找到返回 -1(可以利用这个做js判断)原创 2020-05-28 14:55:23 · 633 阅读 · 0 评论