- 博客(181)
- 资源 (2)
- 收藏
- 关注
原创 js中字符串截取substring()、substr()、slice()的区别
在js中字符串截取常用的三个函数:第一个 substring() 方法用于提取字符串介于两个指定下标之间的字符。语法: stringObjec.substring(start, stop)参数介绍 参数 描述 start 必需。一个非负的整数,表示截取字符串的开始位置。 stop 可选。一个非负的整数,表示截取到某个字符串的前一个字符;如果省略该参数,表示截取到字符串结尾。 let str = "hello world";co...
2021-04-21 13:48:12 324
原创 数据结构--数组常见操作
数组大白话理解就是使用一个变量名来存一系列的值。一、创建数组,获取数组的长度及遍历:let arr1 = new Array(); let arr2 = new Array(3);let arr3 = new Array('apple','banana','grape')// length属性用来获取数组的长度console.log(arr1.length) // 0console.log(arr2.length) // 3 console.log(arr3.length) // 3
2021-04-18 22:38:47 636 2
原创 JavaScript 浅拷贝、深拷贝知识点整理
JS中,数据类型分为基本数据类型和引用数据类型,对于基本数据类型来说,它的值直接存储在栈内存中,而对于引用来说,它在栈内存中仅仅存储来一个引用,而真正的数据存储在堆内存中。一、基本数据类型var a = 1;var b = a;b = 3;console.log(a); //1console.log(b); // 3可以发现对于基本数据类型,我们将一个基本类型的值赋予a变量,接着将a的值赋予变量b;然后我们修改b,可以看到b被修改了,而a的值没有被修改,两个变量都使用的是独立数据。
2021-04-16 16:31:25 213
原创 浅谈JavaScript函数中this的指向
1.setTimeout 中的thislet timeout = setTimeout(function(){ console.log(this); // window对象})let timeout = setTimeout(() => { console.log(this); // window对象})2.普通函数中的thisfunction Demo() { console.log(this) // window对象}Demo()//
2021-04-12 18:11:43 136
原创 vue表单单独移除一个字段验证
下面的代码以登录功能为例。功能描述: 用户输入密码时,失去焦点进行密码校验,当输入有误时,显示错误提示信息;只有密码值发生了变化,错误提示信息就移除。<template> <div> <el-form :model="form" :rules="rules" ref="form" label-width="140px"> <el-form-item label="用户名" prop="username"&.
2020-12-21 18:10:41 4711
原创 JavaScript设计模式之策略模式
策略模式(Strategy)强调的是行为的灵活切换,比如一个类的多个方法有着类似的行为接口,可以将它们抽离出来作为一系列策略类,在运行时灵活对接,变更其算法策略,以适应不同的场景。
2023-03-24 14:10:51 467 1
原创 Cannot find module ‘node:url‘
在运行vite搭建的项目时,遇到Cannot find module 'node:url'报错
2023-03-20 15:42:28 1650 1
原创 集合引用类型——对象
集合引用类型——对象。ECMA-262将对象定义为一组属性的无序集合。严格来说,这意味着对象就是一组没有特定顺序的值。对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值。可以把ECMAScript的对象想象成一张散列表,其中的内容就是一组名/值对,值可以是数据或者函数。
2022-12-31 13:39:27 902
原创 RxJS——创建数据流
在日常工作中,我们应该尽量使用创建类操作符,避免直接利用Observable的构造函数来创造Observable对象,RxJS提供的创建类操作符覆盖了几乎所有的数据流创建模式,没有必要重复造轮子。
2022-12-30 15:36:25 936
原创 JavaScript中this的指向
this的指向大致可以分为以下4种:作为对象的方法调用。作为普通函数调用。构造器调用。Function.prototype.call 或 Function.prototype.apply调用。
2022-12-30 14:37:01 780
原创 RxJS初认识
RxJS的运行就是Observable和Observer之间的互动游戏。 Observable就是“可以被观察的对象”,即“可被观察者”,而Observer就是‘观察者’,连接两者的桥梁就是Observable对象的函数subscribe。
2022-12-25 14:14:21 867
原创 JavaScript到底算不算函数式编程语言?
JavaScript不算一个纯粹意义上的函数式编程语言,但是JavaScript中的函数有第一公民的身份,因为函数本身就是一个对象,可以被赋值给一个变量,可以作为参数传递,由此可以很方便地应用函数式编程的许多思想。RxJS兼具函数式和响应式两种编程方式的特点
2022-12-25 13:53:47 817
原创 对JavaScript对象解构的理解
ECMAScript6新增了对象解构语法,可以在一条语句中使用嵌套数据实现一个或多个赋值操作。简单地说,对象解构就是使用与对象匹配的结构来实现对象属性赋值。
2022-12-25 13:41:49 182
原创 antd 表格内嵌children,且不展示第一列加号
antd 表格内嵌children,children有数据就默认展开,且不展示第一列加号
2022-12-03 18:51:06 1820
原创 Module parse failed: Unexpected token
vue打包Module parse failed: Unexpected token
2022-12-02 13:34:26 1172
原创 微前端的概念及常见的几种实现方式
微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端。微前端的实现意味着对前端应用的拆分,拆分应用的目的并不只是为了架构上好看,各个前端应用可以独立开发、独立部署,可以提升开发效率。同时,也可以进行并行开发——这些组件可以通过NPM、GitTagGit或者Submodule来管理
2022-09-23 22:40:47 1939
原创 浅谈前端微服务背景及Micro-app的使用
微服务架构并不只是为了在架构上好看,还可以提升开发效率,尤其是庞大的应用系统,由单一应用拆分为多个小型前端应用,每个应用可以实现独立开发和独立部署,项目维护起来也会变得容易很多。
2022-09-04 13:42:15 1577
原创 package.json文件中常见的版本号及限定符
在package.json文件中经常会见到类似^0.1.0,~0.1.0,0.1.0和>=之类的限定符的版本号。
2022-08-29 14:20:41 2566
原创 TypeScript简介及语言特性
简介TypeScript对我们来说可能有点儿陌生,我们可以先简单的介绍下JS,它是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,是数据类型可以被忽略的语言,一个变量可以赋不同类型的值,俗称弱类型语言。TypeScript是一种强类型语言。// JavaScript的demo案例var a = "abc";a = 123;console.log(`a: ${a}`); // a: 123TypeScript的语言特性与现存的JavaScript代码有非常高的兼容性。TypeScri
2022-05-31 09:48:32 1028
原创 if-else还是switch及策略模式
首先,条件判断到底是该用if-else还是switch,似乎是所有编程语言都存在的讨论。// if语句:if ( val == 0) { // 对于0的相关处理} else if(val == 1) { // 对于1的相关处理} else if( val == 2) { // 对于2的相关处理} else { // 对于其他情况的相关处理}// switch语句:switch(val) { case 0: // 对于0的相关
2022-03-20 16:21:09 940
原创 CSS3单冒号与双冒号的用法与区别
CSS3除了伪类,还支持访问伪元素。CSS3对伪元素进行了一定的调整,在以前的基础上增加了一个冒号,如“::before”,"::after"等,还增加了一个新的伪元素“::selection”。目前浏览器对::selection伪元素单支持并不完美,在IE浏览器中只有IE9以上版本才支持。使用方式:::selection { background: #F30; color: #FFF;}为什么要使用双冒号?对于IE6~IE8浏览器,仅支持单冒号的表示方法,而现代浏览
2022-03-20 10:18:01 2765
原创 操作符:concatAll,mergeAll,switch和exhaust的区别
concatAll:多个数据流以收尾相连方式合并mergeAll:多个数据流以先到先得方式合并switch:“切换”,多个数据流,后面的会取消前面的订阅exhaust:“耗尽”,多个数据流,首先被订阅的,终止之后,后面的才会被订阅
2021-11-17 19:26:03 426
原创 操作符:map与filter的区别
map代码demo:import { interval } from 'rxjs/observable/interval';import 'rxjs/add/operator/map';const source$ = interval(1000);source$.map(x => x % 2 == 0 ).subscribe( console.log, null, () => 'complete')打印结果:filter代码demo:import
2021-11-17 17:24:46 134
原创 转化类操作符:map、mapTo和pluck
map介绍:import {Observable} from 'rxjs/Observable';import 'rxjs/add/observable/of';import 'rxjs/add/operator/map';// 第一种const source$ = Observable.of(3, 1, 4);const mapFunc = function(value, index) { return `${value} ${this.separator} ${index}`;
2021-11-15 14:28:40 1698
原创 编程范式:声明式/命令式编程
以数学运算加1,乘2为例。一、命令式编程:告诉编辑器如何做function addOne(arr) { const result = []; for(let i = 0; i < arr.length; i++) { result.push(arr[i] + 1) } return result;}function double(arr) { const result = []; for(let i = 0; i &l
2021-11-12 14:33:44 913
node-v10.16.0-x64.msi
2019-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人