js基础学习
Zhou1Monster
这个作者很懒,什么都没留下…
展开
-
js匹配括号里面的内容,不包含括号
js匹配括号里面的内容语法实现 语法 .表示除\n之外的任意字符 +匹配前面的子表达式一次或多次。 (?<=exp)是以exp开头的字符串, 但不包含本身。 (?=exp)就匹配为exp结尾的字符串, 但不包含本身。 注:语句外面的括号不可省略 g匹配全局 实现 获取括号的内容,包换括号 var str="123{456}hhh[789]zzz[yyy]bbb(90ba)kkk"; var regex1 = /\((.+?)\)/g; // () 小括号 var regex2 = /\[(.+原创 2021-11-01 15:27:03 · 2326 阅读 · 1 评论 -
js的继承(一)
继承Array 原型继承 function Arr(...args){ args.forEach(item=>this.push(item)) this.first = function(){ return this[0] } this.max = function(){ return this.sort((a,b)=>b-a)[0] //注意:sort会改变原数组的顺序 } } Arr.prototyp原创 2020-09-13 16:56:18 · 112 阅读 · 0 评论 -
instanceof
instanceof运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 instanceof 会根据原型链查找,直到找到为止或找到null为止。 如下:定义Controller,让Lesson继承Controller,在通过Lesson创建a对象。 class Controller{ } class Lesson extends Controller{ constructor(){ super() } } let a= new Lesson(原创 2020-09-13 15:16:47 · 99 阅读 · 0 评论 -
super原理分析
super原理分析 对象中的继承,zw的show方法调用父级user的show方法可以通过this.proto .show(),但是this._proto_是User,也就是说是User调用了User的show方法,所以User的show方法中的指向的是User。 let User = { name:'user.name', show(){ console.log(this.name) // console.log('User的show()') } }原创 2020-09-13 14:46:28 · 383 阅读 · 0 评论 -
import模块导入、导出
import模块导入、导出 模块延时解析 如果script放在body的前面,查找元素,是找不到的,因为按顺序执行。 <script> console.log(document.querySelector('button'))//null </script> <body> <button>za</button> </body> 但是如果换成模块,就可以找到,因为模块之间会有依赖关系,所以系统在处理模块任务的时候要把原创 2020-09-12 16:06:22 · 581 阅读 · 1 评论 -
js数据结构:set和map
数据结构js数据结构:set和map js数据结构:set和map set 用于存储任何类型的唯一值。 let s = new Set() //可通过这种链式的方法添加,结果:{1,2,3} s.add(1).add(2).add(2).add(3) 感觉js的set类似python的set(集合,不能保存重复的数据,具有过滤数据的功能),所以set的很常用的一个用法就是去重: let a = [1,2,3,3] let b = Array.from(new Set(a)) //let b = [原创 2020-09-12 10:39:34 · 129 阅读 · 0 评论 -
箭头函数
箭头函数箭头函数 箭头函数 基本语法 let a = x=>x;//变量名 = 参数=>返回值(函数体) //等同 let a = function (x){ return x; } //也可多个参数,用括号括起来 let a1 = (x,y)=>x+y 如果无参数,又想返回值(无参数时可以用括号或下划线占位): let a = function(){ return 123; } //等同 let a =()=>123; console.log(a()) //123 //或者原创 2020-09-12 10:37:09 · 128 阅读 · 0 评论 -
let,const和var的区别
ES6:var,let,constlet,const和var的区别 let,const和var的区别 不存在变量提升 同一作用域不能重复定义 有严格的作用域 以下详细解释: 不存在变量提升 js解析器在执行js代码的时候会进行预解析,对var声明的变量进行变量提升(只是声明提升,提升后相当于没有赋值),如下: console.log(a)//undefinde var a = 1 console.log(b)//报错:变量未定义 let b = 0; 同一作用域不能重复定义 {let原创 2020-09-11 11:59:27 · 127 阅读 · 0 评论