02 2021 档案
vue |关闭弹窗组件时销毁组件
摘要:弹窗组件的内容是动态的,每次打开弹窗组件时,我需要这个动态高度。然而不管进行多少次显示隐藏的操作,该弹窗组件的mounted只能触发一次,所以我无法动态实时获取dom的高度。 <van-popup v-model="showproducts"> <ProductCard :proList="prod
vue |数据更新了,但数组操作没有使用最新数据
摘要:在写vue项目,碰见一个问题,可把我愁死了。这首先有一个动态属性,它是一个数组对象,然后一个组件绑定了该属性里面的值,触发事件也会动态改变该值。大概是这样: data(){ list:[ {id:1,count:0}, {id:2,count:0}, ] } <div v-for="(item, k
js封装 |将多组数组按序转为数组对象
摘要:示例 let time=["10:12:16", "15:36:51", "15:37:55", "15:36:05", "15:36:25", "15:37:11"] let state=[3, 3, 4, 5, 1, 2] //合成数组对象: [ { id:1, time:"10:12:16",
兼容 |安卓上用border-radius无法显示圆
摘要:一开始我是这样写的的,这在ios可以显示正常圆: .point::after{ position: absolute; content: ' '; width: .3em; height: .3em; display: block; border-radius: 50%; top: 40%; lef
《红宝书》 |原始数据类型
摘要:相关文章:什么是引用类型 typeof操作符 判断变量的数据类型并返回字符串(主要用于判断原始数据类型): let message="str"; console.log(typeof message);//"string" console.log(typeof 95);//"number" Unde
《红宝书》 |生成器
摘要:生成器拥有在一个函数块内暂停和恢复代码执行的能力 生成器函数 生成器的形式是一个函数,而函数名前面加上一个*表示它是一个生成器。只要是可以定义函数的地方,就能定义生成器: //生成器函数声明 function * generatorFn(){} //生成器函数表达式 let generatorFn=
《红宝书》 |迭代器
摘要:理解迭代 在JavaScript中,计数循环是一种最简单的迭代。因为它可以指定迭代次数、每次迭代要执行什么操作;而且每次循环都在下一次迭代开始前完成、每次迭代的顺序都是事先定义好的: for(let i=1;i<=10;i++){ console.log(i) } 迭代会在一个有序集合上进行。“有序
综合 |TypeScript、React和webpack结合运用
摘要:官方文档:https://www.tslang.cn/docs/handbook/react-&-webpack.html 前提准备 项目结构 demo/ ├─ dist/ └─ src/ └─ components/ 初始化 npm init 安装依赖 npm install -g webpack
《红宝书》 |Set与WeakSet
摘要:Set Set也称集合 实例化 cont s=new Set() //可传入一个可迭代对象,其中是插入到Set实例的元素 const s=new Set(["val1","val2","val3"]) 基本API add(val):添加元素。(返回set实例,可连写) has(val):查询指定值是
《红宝书》 |Map与WeakMap
摘要:Map 在ES6以前,JavaScript通过Object来实现"键值"的储存,但这种方式有一定的问题。Map是一种新的集合类型,也称映射。它带来了真正的"键值"储存机制。Map的大多数特性可由Object类型实现,但两者有细微的差距。 实例化 let m1=new Map() //接收一个数组作为
《红宝书》 |Array数组介绍及用法
摘要:ECMAScript的Array数组中每个槽位可以储存任意类型的数据。 基本概念 创建数组 通过Array构造函数创建 let colors=new Array() let colors=new Array(10) //可传入数值 表示数组中元素的数量 let colors=new Array("r
《红宝书》 |单例内置对象 |Global和Math
摘要:单例内置对象:任何由ECMAScript实现提供、与宿主环境无关,并在ECMAScript程序开始执行时就存在的对象。即内置对象本身已经实例化好了。常见的内置对象有:Object、Array、String、Global和Math。 Global 它是最特别的对象,因为代码不会显示地访问它。事实上,全
js封装 |随机获取指定范围内的整数
摘要:function range(lowerValue,upperValue){ let total=upperValue-lowerValue+1 return Math.floor(Math.random()*total+lowerValue) } range(1,10)
《红宝书》 |原始包装类型
摘要:概念 为了方便操作原始值,ECMAScript提供了3种原始包装类型:Boolean、Number、String。它们在原始类型的基础上,同时具备了引用类型的特点。每当用到某个原始类型的方法或属性时,后台就会创建一个相应的原始包装类型对象,从而暴露出操作原始值的各种方法。 引用类型与原始包装类型的区
《红宝书》 |什么是对象
摘要:什么是对象 对象是一组数据和功能的集合。 创建对象 通过new操作符和Object构造函数创建 let obj=new Object() obj.width=100 obj.size="small" 通过字面量创建 let obj={ width:100, size:"small" } 存取属性 属
js封装 |时间对象相关方法
摘要:获取某年某月天数 //@params {String|Number} year 年份 //@params {String|Number} month 月份 function getDays(year,month){ let dayList=[31,'',31,30,31,30,31,31,30,31
兼容 |ios移动端的时间对象
摘要:整理一下安卓系统能正常运行,而ios显示异常的一些代码 通过new Date()创建时间对象时,下面的写法引起弹框报错,错误为“Number is Wrong”: let day=new Date(2021,02,08) 正确写法应该把前面的0去掉: let day=new Date(2021,2,
《红宝书》 |基本引用类型-正则表达式RegExp
摘要:正则表达式 正则表达式是按照一定的规则组成的表达式,用于匹配字符串。该表达式通常由普通字符、元字符、其他特殊字符和标记字符组成。 相关概念 元字符 元字符在正则表达式中有一种或多种特殊功能: 其他特殊字符 标记字符 实例创建方式 1. 字面量 let expression=/pattern/flag
《红宝书》 |什么是引用类型
摘要:引用类型 引用类型是把数据和功能组织在一起的结构,也称对象定义,它描述了自己的对象应有的属性和方法。 引用值 引用值(或者对象)是某个引用类型的实例。新对象通过使用new操作符后跟一个构造函数来创建。构造函数是用来创建对象的函数。 例子 上面例子中创建了引用类型Date的一个新实例,并把其保存在变量
《红宝书》 |基本引用类型-Date
摘要:创建对象 Date类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间1970年1月1日零时至今所经过的毫秒数。它接受一个毫秒数(1970年1月1日零时之后的毫秒数)作为参数,以创建其他日期和时间。 let now=new Date()//当前的日期和时间
《红宝书》 |什么是script元素
摘要:什么是script元素 将JavaScript插入HTML的主要方法是使用<script>元素。 script元素的8个属性 src:可选。指定要加载的外部JS文件。 type:可选。表示代码块中脚本语言的内容类型(也称MIME类型,在浏览器中,通常是text/javascript;如果加载或包含E
《红宝书》 |var、let和const的区别
摘要:概念 变量是一个用于保存任意值的命名占位符。 共通 定义多个变量,逗号隔开 var message="hi",found=false,age="29"; 声明与赋值 var和let允许先声明后赋值;const不允许,它声明变量时必须同时初始化变量。 var message; //undifined
《红宝书》 |执行上下文与垃圾回收
摘要:执行上下文 变量或函数的上下文决定了它们可以访问那些数据以及它们的行为。下面是一个例子: let first='box' function change(){ let second='bottle' function swap(){ let third=second second=first fir
《红宝书》 |原始值与引用值
摘要:原始值与引用值 ECMAScript变量包含两种类型:原始值和引用值。 动态属性:引用值可以随时添加、修改和删除其属下和方法;原始值不行 //引用值:将创建的对象赋值给person变量;给该对象添加了一个name属性 let person=new Object() person.name='小明'