随笔分类 -  Javascript

1
摘要:一、RxJS是什么?官方文档使用了一句话总结RxJS: Think of RxJS as Lodash for events。那么Lodash主要解决了什么问题?Lodash主要集成了一系列关于数组、对象、字符串等集合操作,极大的方便了对这些集合数据进行衍生。举个简单的例子:求数组偶数元素的平方和const { pipe, filter, map, reduce } = require('loda... 阅读全文
posted @ 2019-11-28 13:27 FeMiner 阅读(1024) 评论(1) 推荐(2) 编辑
摘要:JS复制文本基本分为两步-First: 选中需要复制的节点,及选区;Second: 执行document.execCommand('copy')命令复制对于选区,属于HTMLInputElement 的 和元素支持element.select()方法 点击复制文字 // 复制输入框文字const target1 = document.querySelector('#test1>inpu... 阅读全文
posted @ 2019-04-23 10:29 FeMiner 阅读(888) 评论(0) 推荐(0) 编辑
摘要:我在开发中使用canvas的机会不是很多,但是第一次实际使用中就遇到了问题,“很久很久以前,我自己画了一个雷达图,线宽都是1像素,但是显示效果不如期望,这才发现canvas中的画线还是有坑的”,对比一下两个图,可以发现下图比较清晰。我们先画一个线宽为1像素的线,代码和显示效果如下: const ctx = document.getElementById(canvas).getContext(... 阅读全文
posted @ 2019-04-08 21:08 FeMiner 阅读(2253) 评论(1) 推荐(1) 编辑
摘要:函数式编程中有一种模式是通过组合多个函数的功能来实现一个组合函数。一般支持函数式编程的工具库都实现了这种模式,这种模式一般被称作compose与pipe。以函数式著称的Ramda工具库为例。const R = require('ramda');function inc (num) { return ++num;}const fun1 = R.compose(Math.abs, inc, Math... 阅读全文
posted @ 2018-10-15 21:45 FeMiner 阅读(1820) 评论(0) 推荐(0) 编辑
摘要:数组的元素可能是数组,这样一层层嵌套,可能得到一个嵌套很深的数组,数组降维要做的事就是把嵌套很深的数组展开,一般最后得到一个一维数组,其中的元素都是非数组元素,比如数组[1, [2, 3, [4, 5], 6], 7, 8]降维展开后是[1, 2, 3, 4, 5, 6, 7, 8].1.普通方法2.数组concat方法3.数组join和split方法的结合(有缺陷)4.最佳实践方法1.普通方法f... 阅读全文
posted @ 2018-05-09 14:05 FeMiner 阅读(1605) 评论(0) 推荐(0) 编辑
摘要:装饰器模式(Decorator Pattern)允许向一个现有的对象动态添加新的功能,同时又不改变其结构。相比JavaScript中通过鸡肋的继承来给对象增加功能来说,装饰器模式相比生成子类更为灵活。装饰模式和适配器模式都是 包装模式 (Wrapper Pattern),它们都是通过封装其他对象达到设计的目的的,但是它们的形态有很大区别。适配器模式我们使用的场景比较多,比如连接不同数据库的情况,你... 阅读全文
posted @ 2017-08-20 21:52 FeMiner 阅读(4674) 评论(1) 推荐(2) 编辑
摘要:1. JavaScript是一门什么样的语言,它有什么特点?2.JavaScript的数据类型都有什么?3.请描述一下 cookies,sessionStorage 和 localStorage 的区别?4.webSocket如何兼容低浏览器?(阿里)5.this和它声明环境无关,而完全取决于他的执行环境6.JavaScript异步编程常用的四种方法7、在严格模式('use strict')下进行... 阅读全文
posted @ 2016-10-18 15:31 FeMiner 阅读(407) 评论(0) 推荐(0) 编辑
摘要:数组的元素可能是数组,这样一层层嵌套,可能得到一个嵌套很深的数组,数组降维要做的事就是把嵌套很深的数组展开,一般最后得到一个一维数组,其中的元素都是非数组元素,比如数组[1, [2, 3, [4, 5], 6], 7, 8]降维展开后是[1, 2, 3, 4, 5, 6, 7, 8]. 1.普通方法2.数组concat方法3.数组join和split方法的结合(有缺陷) 1.普通方法 fun... 阅读全文
posted @ 2016-08-30 15:14 FeMiner 阅读(663) 评论(0) 推荐(0) 编辑
摘要:众所周知(这也忒夸张了吧?),Javascript通过事件驱动机制,在单线程模型下,以异步的形式来实现非阻塞的IO操作。这种模式使得JavaScript在处理事务时非常高效,但这带来了很多问题,比如异常处理困难、函数嵌套过深。下面介绍几种目前已知的实现异步操作的解决方案。 [TOC](操蛋,不支持T 阅读全文
posted @ 2016-08-04 18:12 FeMiner 阅读(1724) 评论(2) 推荐(2) 编辑
摘要:最近作死又去做了一遍javascript-puzzlers上的44道变态题,这些题号称“JS语言专业八级”的水准,建议可以去试试,这里我不去解析这44道题了,网上已经有很多的答案了。我只介绍让我意想不到的几种特殊情况下的数组操作方法结果。关于数组原生方法的基本操作我在另一篇博客里已经做了简介:吃透Javascript数组操作的正确姿势—再读《Js高程》.....下面的输出... 阅读全文
posted @ 2016-07-18 22:39 FeMiner 阅读(1121) 评论(0) 推荐(0) 编辑
摘要:1.通过jsonp跨域2、通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 CORS6.WebSockets JS跨域方法学习了很多,也实践了很多,一直没有完整的整理一下。 js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或... 阅读全文
posted @ 2016-07-18 16:34 FeMiner 阅读(876) 评论(0) 推荐(0) 编辑
摘要:Javascript小学生都知道了javascript中的函数调用时会 隐性的接收两个附加的参数:this和arguments。参数this在javascript编程中占据中非常重要的地位,它的值取决于调用的模式。总的来说Javascript中函数一共有4中调用模式:方法调用模式、普通函数调用模式、构造器调用模式、apply/call调用模式。这些模式在如何初始化关键参数this上存在差异。“... 阅读全文
posted @ 2016-07-10 10:52 FeMiner 阅读(3126) 评论(0) 推荐(1) 编辑
摘要:正所谓“一山不容二虎,一渊不藏两蛟”,在某些“矫情”的需求中,数组中不能存在重复的元素,于是就有了对数组去重方法的讨论,关于数组去重的方法由来已久,我当然也想不出什么原创的方法了,这里只是简单的总结一下以备忘。 不过,我们要先声明一下,上面的这句强行组成的谚语还有下一句叫做“除非一公一母” ;也就是说如果是一公一母的两个元素是可以同时存在的,为了避免混淆,这里规定元素之间的比较为严格相等,两... 阅读全文
posted @ 2016-07-01 15:42 FeMiner 阅读(433) 评论(1) 推荐(0) 编辑
摘要:今天我很郁闷,在实验室凑合睡了一晚,准备白天大干一场,结果一整天就只做出了一道算法题。看来还是经验不足呀,同志仍需努力呀。算法题目要求是这样的:Return the number of total permutations of the provided string that don't have repeated consecutive letters. Assume that all cha... 阅读全文
posted @ 2016-06-24 20:53 FeMiner 阅读(7143) 评论(0) 推荐(1) 编辑
摘要:最近在做JS算法项目时发现一个令我匪夷所思的问题, 这里想记录一下问题。 首先介绍一下字符串replace()方法的基本用法。 replace() 方法使用一个替换值(replacement)替换掉一个匹配模式(pattern)在原字符串中某些或所有的匹配项,并返回替换后的字符串。这个替换模式可以是 阅读全文
posted @ 2016-06-21 15:01 FeMiner 阅读(3046) 评论(1) 推荐(2) 编辑
摘要:<!--more--> <!-- --> 首先,请允许我抄袭一段你知道的parseInt 以下节选自parseInt - JavaScript | MDN 实际上你连这些基础都没掌握 概述 parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。 语法 1 parse 阅读全文
posted @ 2016-06-17 14:59 FeMiner 阅读(1195) 评论(0) 推荐(0) 编辑
摘要:1.What's is 函数重载? Function or method overloading is declaring functions with the same name that accept different arguments thus have different behaviors depending on passed arguments.函数重载(方法重载)是指声明一组具... 阅读全文
posted @ 2016-06-17 10:25 FeMiner 阅读(392) 评论(0) 推荐(0) 编辑
摘要:Javascript是一门解释型的语言,是基于对象的,严格来说并不怎么符合的面向对象的标准,显著的特点就是函数就是“一等对象”,与传统的面向对象语言不同的时,Javascript有“一千种”方法来创建对象,(尽管猿们找个对象的方法基本为零)。《Js高程》为我们讲解了多种创建对象的方法,这些方法之间并 阅读全文
posted @ 2016-06-02 19:54 FeMiner 阅读(461) 评论(0) 推荐(0) 编辑
摘要:Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起《Javascript高级程序设计》来读,把它们一一总结梳理了一下:方法类别方法名称方法描述参数返回值备注转换方法toString()把数组转换为字符串,并返回结果。无以逗号分隔的字符串调用每一项的toString()方法valueOf()返回数组对象的原始值。无原数组 toLocaleString()把数组转换为字符串,并返... 阅读全文
posted @ 2016-05-29 20:31 FeMiner 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:Javascript有5种简单数据类型和一种复杂数据类型基本数据类型:String,Boolean,Number,Undefined, Null引用数据类型:Object(Array,Date,RegExp,Function)1.typeof操作符要检测一个变量是不是基本数据类型, typeof 操作符是最佳的工具。var s = "Nicholas";var b = true;var i = 2... 阅读全文
posted @ 2016-03-17 18:50 FeMiner 阅读(698) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示