![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 64
Selfimpr欧
持续更新,js+浏览器相关+网络协议+webpack从0搭建+react+node+算法相关知识以及原理,想要一起学习的点个关注吧!!!
展开
-
深入学习JSON.stringify()
首先看一下MDN上对JSON.stringify()的解释JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性语法:JSON.stringify(value[, replacer [, space]])value :要转换的值replacer :如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该原创 2021-05-12 18:54:15 · 825 阅读 · 2 评论 -
正则入门
想看看模板编译这块,想看看vue源码的的时候,发现开头就是一大堆正则,各种匹配,这都匹配个啥啊,无奈,只能翻了翻已经长毛了的正则小册子挨个对了…创建正则的方式字面量创建字面量创建的方式是使用/ /包裹,也是使用最多的方式了吧,就是不能在里面使用变量let reg = 'www.selfimpr.com'console.log(/e/.test(reg)) //true//如果是使用变量的话 let a = 'u'console.log(/a/.test(reg)) //false对象.原创 2021-04-28 17:17:51 · 319 阅读 · 4 评论 -
call,apply和bind
在学习this的时候,看到了几个方法call,apply和bind还有一个new 运算符,就学习了一下它们的概念和原理Function.prototype.call()function.call(thisArg,arg1,arg2…)使用一个指定的this值 和单独给出的一个或多个参数来调用函数,返回值是调用有指定this值和参数的函数的结果注意:1.非严格模式下如果thisArg是null 或者是 undefined 则自动替换为全局对象2.thisArg可以是基本数据类型,call会自.原创 2021-04-24 22:37:20 · 1127 阅读 · 6 评论 -
this解析
this指向的问题也是JavaScript中的难点之一了,也是面试常问的问题,很多时候对this指向的问题就很懵逼,明明应该是指向他,为什么又指向他了…所以我就学习了一下这方面的知识,整理了一下,希望能够帮助大家为什么要用this?首先看一段代码function identify(){ return this.name.toUpperCase()}function speak(){ var greeting = '你好,我是'+identify.call(this) .原创 2021-04-21 15:26:24 · 1150 阅读 · 18 评论 -
宏任务,微任务与队列
console.log('script start');setTimeout(function () { console.log('setTimeout');}, 0);Promise.resolve() .then(function () { console.log('promise1'); }) .then(function () { console.log('promise2'); });console.log('script end');上面的原创 2021-04-17 20:57:32 · 1144 阅读 · 3 评论 -
死磕javascript的手写面试题
1.实现lodash的_.get方法function _getValue(target, valuePath, defalutVal) { let valueType = Object.prototype.toString.call(target) console.log(valueType) // if (valueType == "[object Array]") { let paths = valuePath.replace(/\[(\d+)\]/, `.$1`).split('原创 2021-04-13 15:45:25 · 3540 阅读 · 34 评论 -
理解闭包
前言闭包可以说是最最最最最最常见的面试题之一了,很多人面试的时候都被问到过闭包的知识,闭包的概念是什么?闭包的好处和坏处是什么?闭包有哪些应用场景了?前两天朋友面试的时候也被问到过这个问题,网上的答案也有很多:有的说能够读取其他函数内部作用域的函数就是闭包,也有的说所有的函数都是闭包,哪怕是全局作用域上的,因为它能获取到全局作用域上的变量.....答案也是很不统一,这就让还是新手的我对于答案有点举棋不定了,于是重温了一下《你不知道的javascript上卷》和《javascript高级程序第四版》,看了原创 2021-04-10 17:30:12 · 5432 阅读 · 32 评论 -
理解ES6Class的继承
基本用法class之间可以通过extends关键字实现继承,写法上比es5更加清晰 class Point{} class FriendPoint extends Point{ //FriendPoint 继承了Point类的所有属性和方法 constructor(x,y,name){ super(x,y) //调用父类的constructor(x,y) this.friend= color } toString(){原创 2021-04-08 14:27:51 · 3461 阅读 · 17 评论 -
理解js继承的六种方式
原型链继承原型链继承是ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。什么是原型链?每个构造函数都会有一个原型对象,调用构造函数创建的实例会有一个指针__proto__指向原型对象,这个原型可能是另一个类型的实例,所以内部可能也有一个指针指向另一个原型,然后就这样形成了一条原型链。代码:function SuperType() { this.property = true;}SuperType.prototype.getSuperValue = fun原创 2021-04-05 22:33:30 · 7593 阅读 · 29 评论 -
理解javascript中的原型
原型模式每个函数都会创建一个prototype属性,这个属性是一个对象,包含着由特定引用类型的实例共享的属性和方法,这个对象就是调用构造函数创建的对象的原型,好处就是,在它上面定义的属性和方法可以被对象实例共享,原来在构造函数中直接赋值给对象实例的值可以直接赋值给他们的原型。function Person(){}Person.prototype.name = '小白'Person.prototype.age = 22Person.prototype.job = '开发'Person.protot原创 2021-04-02 23:59:31 · 2633 阅读 · 10 评论 -
整理九道关于javascript字符串的笔试题
1.写一个方法去掉字符串的空格let str = ' abc aa s '//第一种function trim(str){ let reg = /\s+/g if(typeof str == 'string'){ return str.replace(reg,'') }}trim(str)//第二种str.split(' ').join('')2.去除字符串中最后一个指定的字符或者是字符串let str = 'abaaaaeaad'function原创 2021-03-30 16:21:56 · 2515 阅读 · 3 评论 -
数组的常用方法整理
1.创建数组的方法第一种是使用Array构造函数参数: 1.new Array(arg1,arg2....) //传入的参数会成为数组的每一项 2.new Array(length) //length为数字的话返回长度为length的数组 否则创建一个只有一项length的数组第二种是Array.form() /** Array.form(arg1,arg2,arg3) 第一个参数 类数组对象,即任何可迭代的结构,或者是有一个length属性和可索引元素的结构 第二个原创 2021-03-28 03:18:55 · 6694 阅读 · 14 评论