javascript
coucouxie
这个作者很懒,什么都没留下…
展开
-
封装一个简单的本地存储工具
由于JSON.parse转化的时候如果遇到非标准JSON的时候经常会报错,所以封装一个工具来实现本地存储,并且封装好一个工具就不用频繁的去写JSON.parse和JSON.stringify来转化JSON和常用数据类型封装的过程其实就是对本地存储的数据进行判断并且捕获异常。export const setItem = (key: string, value: object | string | null) => { if(typeof value === 'object') { val原创 2022-05-31 09:43:04 · 126 阅读 · 0 评论 -
el-tree后端返回节点中包含父节点,回显时子节点全部选中问题
res.forEach(item => { var node = this.$refs.authorityTreeRefs.getNode(item); if(node.isLeaf){ this.$refs.authorityTreeRefs.setChecked(node, true); }});res为从后端拿到的节点数组[1,2,3,4,5]这种,判断是否是叶子节点,如果是叶子节点那么通过方法的形式选中该节点。...原创 2022-02-09 15:58:50 · 1162 阅读 · 0 评论 -
JS中如何快速将字符串的“true“和“false“转换成Bool类型
JSON.parse('true')JSON.parse('false')转载 2022-02-08 17:17:01 · 3788 阅读 · 0 评论 -
彻底搞清楚javascript中的require、import和export
为什么有模块概念理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持”类”(class),所以也就没有”模块”(module)了。require时代Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。原始写法模块就是实现特定功能的一组方法。只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。原始写法模块就是实现特定功能的一组方法。只要把不同的函数转载 2021-09-02 11:38:36 · 383 阅读 · 0 评论 -
JS对象属性中get/set与getter/setter是什么
在js属性描述符这部分有几个较难理解的名词概念,本文旨在描述自己对它们的理解,主要包括:[[Get]]/[[Put]]、get/set、getter/setter几个概念的阐述,数据属性和访问器属性属性属性描述符用来描述属性特性的(只有在内部才能用的特性),配置属性是否可读,是否可写,是否可枚举,值是多少,读写。属性描述符对象Object.definePrOperty(obj,‘a’,{value:2,writable:true,configurable:true})第三个参数就是属性描述符对象 ,转载 2021-09-01 17:33:00 · 810 阅读 · 0 评论 -
js导出json数据到excel 文件
导出json数据到excel文件,在网上查的方法。能导出。但是余留个问题,就是打开的excel的时候提示,文件名和扩展名不一致…查了半天资料,没有办法解决有的说: 返回xml格式的Excel数据,这种都会有提示的。你要没有提示,导出csv格式的数据或者服务器端用组件导出Excel才行。或者使用插件来解决,方法地址如下,还没验证,留个印儿,有时间再说。 <a id="exportBtn">导出</a> $("#exportBtn").click(function() {转载 2021-08-09 17:54:12 · 334 阅读 · 0 评论 -
JavaScript根据对象的key重新排序
const sortArr=['aaa','bbb','ccc'];//指定排序顺序//未排序的对象const arr={ "aaa":{ "id":"a"}, "ccc":{"id":"c+"}, "bbb":{ "id":"b+"}}let getArr={}//接收新顺序sortArr.forEach(item => { Object.keys(arr).forEach(key=>{ if(item===key){转载 2021-08-09 15:49:39 · 1341 阅读 · 0 评论 -
Object.defineProperty()介绍及使用
对象是由多个键/值对组成的无序的集合。对象中每个属性可以是任意类型的值。定义对象可以使用构造函数或字面量的形式:var obj = new Object; //obj = {}obj.name = “张三”; //添加描述obj.say = function(){}; //添加行为123除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原有的属性。Object.defineProperty()语法:Object.definePropert转载 2020-10-08 00:47:01 · 354 阅读 · 0 评论 -
如何自己实现一个发布观察者模式
什么是观察者模式?观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。观察者模式有一个别名叫“发布-订阅模式”,或者说是“订阅-发布模式”,订阅者和订阅目标是联系在一起的,当订阅目标发生改变时,逐个通知订阅者。我们可以用报纸期刊的订阅来形象的说明,当你订阅了一份报纸,每天都会有一份最新的报纸送到你手上,有多少人订阅报纸,报社就会发多少份报原创 2020-10-08 00:22:24 · 302 阅读 · 0 评论 -
构造函数、实例、原型对象三者之间的关系
构造函数、实例、原型对象三者之间的关系<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body原创 2020-09-10 11:36:30 · 197 阅读 · 0 评论 -
javascript中split()方法和splice()方法
javascript中split()方法和splice()方法定义和用法split() 方法用于把一个字符串分割成字符串数组。语法stringObject.split(separator,howmany)定义和用法splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。注释:该方法会改变原始数组。语法arrayObject.splice(index,howmany,item1,.....,itemX)...原创 2020-08-29 22:25:13 · 265 阅读 · 0 评论 -
DOM事件流
有关DOM事件流从页面中接受事件的顺序事件流发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。比如我们给一个div 注册了点击事件:DOM事件流分为3个阶段:1.捕获阶段2.当前目标阶段3.冒泡阶段●事件冒泡: IE最早提出,事件开始时由最具体的元素接收,然后逐级向上传播到到DOM最顶层节点的过程。●事件捕获:网景最早提出,由DOM最顶层节点开始,然后逐级向下传播到到最具体的元素接收的过程。事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。原创 2020-07-12 17:36:44 · 244 阅读 · 0 评论