- 博客(13)
- 收藏
- 关注
原创 ES6系列之【解构赋值】
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值解构是一种打破数据结构,将其拆分为更小部分的过程let details = { firstName:'Code', lastName:'Burst', age:22}//1、对象的解构赋值const {firstName,age} = details;console.log(firstName); // Codeconsole.log(age); // 22//2、自定义变量名称
2022-03-01 21:51:06
336
原创 ES6系列之【箭头函数】
MDN上是这么说的:箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。1、没有单独的this箭头函数没有 this,所以需要通过查找作用域链来确定 this 的值。且,不能直接修改箭头函数的this指向2、不绑定 argumentsarguments是一个类数组对象,在函数调用时创建,它存储的是实际传递给函数的参数。3..
2022-03-01 18:16:40
114
原创 JS中数组的api方法 及数组案例
分两类记忆,一类改变原数组,另一类不会改变原数组改变原数组1、push() ---------- 向数组的末尾添加多个元素,并返回新的长度。 let a = [1,2]; let item = a.push(4); // 3,返回新的长度。 console.log(a); // [1,2,4]2、pop() ---------- 删除数组的最后一个元素,并且返回这个元素。 let a = [1,2]; let item = a.p.
2022-02-27 23:02:28
309
原创 JS中遍历数组和对象的几种方法
遍历数组的几种方法对象1、for...in..for in遍历对象键值(key) 使用for in会遍历对象自身和继承的所有的可枚举属性。let obj = { Id: 001, Name: 'Lily', Age: 18,}//1、for...in..for (const key in obj) { console.log(key + ' --- ' + obj[key]);}2、Obje......
2022-02-27 21:58:54
3221
原创 数据类型转换
1、转成字符串num.toString() String(num) 加号拼接字符串 【num + "我是字符串"】2、转成数字型 *重点*parseInt(string) parseFloat(string)3、转成布尔值Boolean() 除了表示空、否定的值输出false,其余都输出true4、字符串转成数组 *面试常考*使用split方法切割字符串变成数组 str.split(",")...
2022-02-25 19:05:57
250
原创 前端工程化 | Webpack
webpack是一个模块打包工具,他依赖于nodejs环境。 与其他打包工具(grunt/gulp 前端流程的自动化)对比,webpack更强调模块化(AMD,CMD,CommonJ,ES6)开发管理。 功能:自动处理js之间相关的依赖、ES6 转ES5 scss、less转成css .vue文件转成js文件 打包后的文件放在dist文件夹下,将所有依赖打包成一个bundle.js package.json 版本信息 中的script定义执行脚本 script:{..
2022-01-15 12:45:39
421
原创 JS中的 this指向
一、this是什么?所有函数内部都有一个变量this,它的值是调用函数的当前对象二、如何确定this的值?1、默认绑定默认情况下,this会被绑定到全局对象上,比如在浏览器环境中就为window对象,在node.js环境下为global对象。test() //window2、隐式绑定谁调用,this指向谁。p.test() //p3、显式绑定又叫做硬绑定上下文调用模式,想让this指向谁,this就指向谁。硬绑定 => call ...
2021-12-30 21:50:14
1224
原创 JS实现继承的几种方式
一、原型继承通过改造原型链,利用原型链的特征,实现继承。语法: 子构造函数.prototype = new 父构造函数()二、组合继承借用 原型链 和 借用构造函数 call 技术 ,实现继承。三、寄生组合继承利用Object.create(参数对象),1. Object.create 会创建一个新对象,2. 并且这个新对象的__proto__会指向传入的参数对象四、class实现继承 extendses6新增的...
2021-12-30 18:35:35
478
原创 JS中的 构造函数 原型对象 实例
【构造函数】一、构造函数的工作原理:1.检测到new关键字,开辟一块内存2. 内存中产生一个空的对象:this3. 为对象赋值4. 将创建好的对象的地址返回给new【原型对象】prototype只要是函数 系统一定会自动给函数产生一个原型对象原型中有一个属性:constructor构造器,指向构造函数自身[JS中,构造函数负责提供属性,原型负责提供方法]【原型链】所有的函数,都是由一个特殊的函数创建的,那就是Function构造函数。换言之,所有的构造函数都是Funct
2021-12-29 22:27:51
531
原创 JS 闭包
一、闭包的定义闭包就是能够读取其他函数内部变量的函数二、产生闭包的条件:1、函数嵌套 (有外部、内部函数)2、内部函数引用了外部函数的数据3、外部函数被调用※ 外部函数被调用 执行函数定义就会产生一个闭包(不用调用内部函数)举个栗子三、闭包的作用实现变量私有,使得在函数外部可以读取函数内部的变量,让这些变量的值始终保持在内存中。四、闭包的缺点函数执行完后,函数内的局部变量没有释放,占用内存空间,造成内存泄漏五、加深理解栗子...
2021-12-29 14:48:34
209
原创 作用域 | 作用域链 | 执行上下文
一、作用域分类:全局作用域、函数作用域、块作用域(ES6新增的)作用:隔离变量,不同作用域下同名变量不会有冲突块作用域:ES6新增的,块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。举个栗子if(true) { var c = 3; }console.log(c); // 3//if语句中用var定义的变量可以在外面访问到,可见,if语句属于块作用域,不属于函数作用域。区分一下var let 和 const1、var定义的变量,没有块级作用
2021-12-28 23:59:19
255
原创 JS变量提升
console.log(a) //undefinedvar a = 1 function b() { console.log(a) }b() // 1使用 let 就没有这个变量提升的问题※先提升变量,再提升函数var c=1function c(c){ console.log(c)}c(2) //报错 c is not a function上⾯这段代码的实际执⾏顺序为:var c = undefinedfunction c(c){.
2021-12-28 18:46:24
222
原创 JS中的 参数传递 深拷贝 浅拷贝
var a={c:1}var b=1function test(a,b){b=3//此处是把 3指向的内存地址 赋值给局部变量b,即b指向了一个新内存地址(原本这个局部b和外部b指向的是同一内存地址),函数外部b指向的内存地址并未改变,即从赋值这一刻开始 这两个b相互之间 就没有任何关联a.c=100// 函数内部a和外部a指向同一内存地址,即外部的a.c的值也会改变为100a={};//将一个新内存地址赋值给函数内部的a,即从赋值这刻开始 函数内部的a和外部a 拥有的是不同的内存指向.
2021-12-26 18:40:57
1010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人