javascript
文章平均质量分 81
flying_huixia
希望在编程的道路上一直进步,结识更多志同道合的人!
展开
-
项目实际开发中知识点整理
一、css篇1. 对于text-overflow:ellpisis;在flex布局下不生效;2. @import '../out.less' 这样引入的样式会作用于全局,尽管是写在当前文件的scoped下的解决办法:在less文件中的最外面套一层自己自定义的唯一的样式,这样里面重名的样式就不会应用到其他页面组件了二、js篇1. for in循环用来遍历对象,可以遍历数组,但最好不要,因为遍历数组时会遍历数组原型链的属性;2....原创 2020-11-22 16:12:13 · 302 阅读 · 0 评论 -
canvas实现图片压缩
1、 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下:获取上传 Input 中的图片对象 File 将图片转换成 base64 格式 base64 编码的图片通过 Canvas 转换压缩,这里会用到的 Canvas 的 drawImage 以及 toDataURL 这两个 Api,一个调节图片的分辨率的,一个是调节图片压缩质量并且输出的,后续会...原创 2020-04-28 19:31:30 · 2916 阅读 · 0 评论 -
JavaScript经典案例
一、跨浏览器添加事件\移除function addEvent(eventObj,tyoe,fn){ if(eventObj.addEventListener){ eventObj.addEventListener(type,fn,false) }else if(eventObj.attachEvent){ eventObj.attachEvent('o...原创 2020-04-17 15:51:56 · 3450 阅读 · 1 评论 -
.txt文件转为json文件,本地json文件读取
最近遇到一个问题,客户给了一个.txt文件,里面有上万条数据,需要从文件中查询数据并进行计算。1、首先的思路是.txt文件转为.json文件用fileReader 来对数据进行处理2、处理后得到一个json数组对象,但是不能每次用到的时候都去读取.txt文件,毕竟里面的数据可不少,还是本地生成一个json文件function trans(){ var _FileData...原创 2020-04-03 12:01:45 · 7860 阅读 · 0 评论 -
图书销售系统项目知识点总结
1、实现购物车问题1:点击物品的加减,需要给当前物品的数目变化;因为物品列表是动态增加的,每次点击增加,数目会增加,但是点击下一物品,还是这个物品的数目增加,最后用了一个本办法给当前元素span一个唯一的ID,通过i来获取 div1.innerHTML = '<input type="button" value="-" onClick="less('+i+')"><...原创 2020-03-22 17:18:51 · 878 阅读 · 0 评论 -
layui项目知识点总结
1、input单选框——获取选中值和设置选中值需求:修改数据段时候,需要先去取到用户类型,然后让单选框对应的值选中。原生js获取选中值 & 设置选中值//获取if(document.getElementById("reserve_yes").checked){ reserve=yes;}else if(document.getElementById("reser...原创 2019-12-10 21:42:03 · 632 阅读 · 0 评论 -
前端实现请求进度条
1、前端实现请求进度条一般使用readyStatechange事件探测HTTP请求的完成。当正在加载服务器的响应时,XMLHttpRequest对象会发生progress事件,通常每隔50毫秒左右。所以用这些事件可以给用户反馈请求的进度。下载的progress事件属于XMLHttpRequest对象 上传的progress事件属于XMLHttpRequest.upload对象。ev...原创 2019-11-09 10:33:35 · 10315 阅读 · 0 评论 -
中国工商银行编程题 & 面经整理
一、中国工商银行编程题aabccccc 输出a2bc5(js实现)let optr = readline().split("");var result=''; result=optr[0]; var count=1; for(var i =1;i< optr.length;i++){ if(optr[i]===optr[i-1]){ ...原创 2019-10-14 21:19:12 · 3805 阅读 · 0 评论 -
js单元测试框架 jasmine
一、jasmine 简介Jasmine就是一个行动驱动开发模式的JS的单元测试工具。Suites(describe)是Jasmine的核心,是一个测试集,里面包括多个specs(it),而每个specs里面可能包含多个断言(expect)。jasmine.js:整个框架的核心代码。 jasmine-html.js:用来展示测试结果的js文件。 boot.js:jasmine框架...原创 2019-03-12 21:37:08 · 595 阅读 · 0 评论 -
js数据结构与算法
一、javascript基础1.javascript的数据类型有:数字、字符串、函数、对象、undefined、null和数组、日期、正则表达式。2.变量作用域:本地变量和全局变量。在一个函数里,变量没有使用var 关键字,则是申明或者引用了全局变量。3.转换为布尔值为假值的有|undefined||-null-|| +0,-0,NaN |"" 空字符串4.创建对象两种方式:构造函...原创 2019-04-13 17:06:40 · 2352 阅读 · 1 评论 -
promise和fetch
1、promise是一个对象,代表异步操作,有3种状态,pending\resolved\rejected特点(1)对象的状态不受外界影响(2)一旦状态改变就不会再改变构造一个promise实例var mypromise = new Promise(function(resolve,reject){ //...some code if(成功){ ...原创 2019-03-21 15:51:03 · 726 阅读 · 0 评论 -
bind实现
一、原生js实现Bindbind的三个特点(1)保存this,返回新的函数(2)可以传入参数(3)一个绑定函数也可以使用new操作符创建对象,这种行为就像把原函数当成构造器,提供的this值被忽略,同时调用时的参数被提供给模拟函数根据三个特点,分为3个步骤来实现bind(1)保存this,返回新的函数 var foo={ value:1 }; func...原创 2019-03-17 11:03:17 · 1697 阅读 · 0 评论 -
数组乱序实现 & 懒加载 & http缓存
一、数组乱序实现方法一:实现算法性能不好ary.sort(function(){ return Math.random()>0.5?1:-1})方法二:var len = ary.length; for (var i = 0; i < len - 1; i++) { var index = parseInt(Math.random() * ...原创 2019-09-10 18:07:48 · 247 阅读 · 0 评论 -
总结:iview(基于vue.js的开源ui组件)学习的一些坑(三)
1、深入理解vue传参数(1)params传参数---参数在url中不显示。需要name:页面路由的名字,需要传递的参数为对象,放在params里面。 this.$router.push({ name: "list-item-edit", params: {reportItemData:datas} }) 接收参数:$route.params.reportItemData....原创 2019-01-09 09:23:52 · 534 阅读 · 0 评论 -
函数柯里化
一、柯里化:把接收多个参数的函数变换成接收一个单一参数的函数(单一参数为多个参数中的第一个)函数柯里化思想:一个JS预处理的思想,降低通用性,提高适用性。特点:参数复用 需要输入多个参数,最终只需输入一个,其余通过arguments来获取 提前返回 避免重复去判断某一条件是否符合,不符合则return 不再继续执行下面的操作 延迟执行 避免重复的去执行程序,等...原创 2019-04-27 12:22:46 · 20301 阅读 · 1 评论 -
TDD介绍与demo练习
1、TDD 测试驱动开发(Test Driven Development)TDD三定律 1、在编写不能通过的单元测试前,不可编写生产代码。 2、只可编写刚好无法通过的单元测试,不能编译也算不通过。 3、只可编写刚好足以通过当前失败测试的生产代码。 总的来说就是先写测试再写生产代码,写一个测试就应该立即写它的实现代码。2、环境安装及准备(1)模块的引入方式...原创 2019-05-02 18:17:04 · 846 阅读 · 0 评论 -
发布订阅模式与观察者模式
一、概念观察者模式(Observer Pattern):观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。观察者模式有一个别名叫“发布-订阅模式”发布订阅模式(Pub-Sub Pattern):经过时间的沉淀,已经独立...原创 2019-05-05 15:52:34 · 568 阅读 · 0 评论 -
JS的防抖与节流
1、提出以下一种场景(1)搜索框搜索条目的时候,每次onkeyup都会触发一次请求,返回xhr文件,一直输入11111,则每次都会请求。(2)IE中使用onresize事件处理程序的时候,需根据浏览器窗口大小,来对dom进行频繁操作,改事件也会连续触发。只要是代码是周期性执行的,都应该使用节流。目的:防止回调函数每一次都执行定义:函数防抖是要在每完成等待某个时间后去...原创 2019-04-30 15:56:23 · 280 阅读 · 1 评论 -
js的一些有用技巧&字符串、数组操作
1、保留数字两位小数实现一:number.toFixed(2)参数:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0该方法不会改变原数值。该方法会返回一个数值的字符串表现形式,保留 digits 位小数。修改了数据类型:从数字到字符串实现二:Math.round()Math.round()方法:四舍五入,取得是...原创 2019-06-25 11:57:26 · 1301 阅读 · 1 评论 -
javascript 面向对象精要 第六章 对象模式
6.1 私有成员和特权成员JavaScipt 对象的所有属性都是公有的,没有显式的方法指定某个属性不能被外界访问。在不希望公有的属性名字前面加上下划线。6.1.1 模块模式模块模式是一种用于创建拥有私有数据的单件对象的模式。 基本做法是使用立即调用函数表达式(IIFE)来返回一个对象。该函数表达可以包括任意数量的本地变量,在函数外不可见。模块模式的基本格式如下:var yourObj = (fun...原创 2018-04-08 14:08:40 · 157 阅读 · 0 评论 -
node.js写后台搭建的一个图书管理系统知识点总结
1、遇到的问题向数据库插入一条记录,插入失败,但是Ajax请求接口以后不成功,不走succeess函数,试过了也不走error函数。要向用户提示,数据插入失败,直觉是靠return,但是发现请求总会进入Ajax代Ajax({})内部,所以用flag。 var flag=true var loans_url = "/loan...原创 2019-01-13 18:18:41 · 1025 阅读 · 0 评论 -
BOM之window对象及location对象
一、window对象1、浏览器中,window对象既是通过javascript访问浏览器窗口的一个接口,又是ECMAscript规定的global对象。在全局作用域中声明的变量、函数都会成为window 对象的属性和方法。(通过.可以访问)差别:定义全局变量和在window对象上直接定义属性有差别。全局变量不能通过delete操作符来删除,window对象上定义的属性可以 尝试...原创 2018-07-23 17:52:09 · 351 阅读 · 0 评论 -
跨域问题小记
一、跨域出现的原因浏览器的同源策略:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。只要网站的 协议名protocol、 主机host、 端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用。在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。浏览器的 Cookie 策略...原创 2018-07-17 20:18:31 · 173 阅读 · 0 评论 -
javascript中Array map()与forEach()的用法
1 map()介绍map()方法返回一个新数组,数组中的元素为原始元素经过函数处理后输出的元素。不会改变原始数组map()按照原数组顺序一次处理数组元素语法:array.map(function(currentValue,index,arr), thisValue)参数说明:currentValue: 必须,当前元素的值index:可选,当前元素的索引值arr:可选,当前元素所属的数组thisVa...原创 2018-06-06 16:28:25 · 2733 阅读 · 0 评论 -
JS的事件处理机制以及事件代理(事件委托)
一、先记个小知识点。cssTextcssText 本质:设置 HTML 元素的 style 属性值。用法:document.getElementById("d1").style.cssText= "color:red; font-size:13px;";cssText 返回值:在某些浏览器中(比如 Chrome),你给他赋什么值,它就返回什么值。在 IE 中则比较痛苦,它会格式化输出、会把属性大写...原创 2018-05-17 19:26:43 · 8947 阅读 · 0 评论 -
javascript 面向对象精要 第五章 继承
第五章 继承引言: 理解面向对象编程 第一步 创建对象 第二步 理解继承5.1 原型对象链和Object.prototypeJavascript内建的继承方法被称为原型对象链,又可称为原型对象继承。原型对象的属性可经由对象实例访问,这就是继承的一种形式。原型对象也是一个对象,它也有自己的原型对象并继承其属性,这就是原型对象链。所有的对象包括你自己定义的对象,都自动继承自Object,除非你另有...原创 2018-04-02 16:39:26 · 174 阅读 · 0 评论 -
javascript 面向对象精要 第四章 构造函数和原型对象
第四章 构造函数和原型对象4.1 构造函数构造函数就是你用new创建对象时调用的函数。使用构造函数的好处/目的:所有用同一个构造函数创建的对象都具有同样的属性和方法。构造函数也是函数,你可以用同样的方法定义它。唯一的区别是构造函数名首字母应该大写。function Person(){}var person1= new Person();var person2= new Person();co...原创 2018-04-01 18:07:41 · 201 阅读 · 0 评论 -
javascript 面向对象精要 第三章 理解对象
第三章 理解对象引言:尽管javascript里有大量内建引用类型,很可能你还是会频繁创建自己的对象。javascript编程一大重点就是管理那些对象。3.1 定义属性有两种创建自己的对象的方式:使用Object构造函数或者使用对象的字面形式。你可以在对象定义之后,立即给它添加属性,也可以改变属性的值。你定义的对象总是由你随意修改。当一个属性第一次被添加给对象时,javascript在对象上调用一...原创 2018-04-01 16:07:34 · 163 阅读 · 0 评论 -
javascript 面向对象精要 第二章 函数
第二章 函数引言:函数就是对象。函数不同于其他对象的决定性特点是函数存在一个被称为[[call]]的内部属性。内部属性无法通过代码访问而是定义了代码执行时的行为。[[call]]属性是函数独有的,表明该对象可以被执行。理解函数的行为是理解javascript 的核心。2.1 声明还是表达式函数有两种字面形式。第一种:函数声明function add(num1,num2){ return...原创 2018-03-31 15:47:29 · 203 阅读 · 0 评论 -
前端json文件模拟数据与后台交互
一、在前端写一个json文件data.json放置位置如下{ "code":"1", "list": [{ "uid":"88", "imgurl": "image/upload/jz57N9RivnPstW11hUva0x0PdkEEZ7NJ5oQ6Ngp63j4CMcTr3jpDFQKC86Em7HMd.jpg" },原创 2018-07-28 20:53:22 · 10448 阅读 · 1 评论 -
cvte前端笔试题
1 以下代码运行结果为 var setPerson=function(person){ person.name="kevin"; person={name:"nick"}; }; var person={name:"alan"}; setPerson(person); alert(person.name);答案:Kevin首先,调用全局函数setPerson,传入pers...原创 2018-07-21 13:37:28 · 7252 阅读 · 6 评论 -
node.js安装、配置、测试及服务器端搭建文件返回给前台响应
一、node.js的安装安装教程很多,自己查询,安装完以后,检查一下版本确认安装成功二、测试文件放在桌面,向service.js写入如下代码var http = require('http');http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 :...原创 2019-03-21 11:46:12 · 317 阅读 · 0 评论 -
网路与http协议一些知识点整理
1、网络的五层结构常见的ISP,有分层,自己连到区域,区域再连到国际。ISP(Internet Service Provider),互联网服务提供商。网络边缘:外界设备连接到服务器,端系统如何接入因特网网络中心:网络核心就是由互联网端系统的分组交换机和链路构成的网状网络。主机:与网络相连的设备。网络分层:2、协议 3、Http协议和tcp的协议...原创 2019-05-17 15:56:34 · 207 阅读 · 0 评论 -
vue项目报错的以及echarts动态获取数据并展示折线图的几点整理
1、在npm run dev时报错 This relative module was not found:views/inform/setting/type.vue没有找到相关模块,一直以为是router路由没配置。后来才发现。是../../components/wrapper-content模块没找到,路径写错了,对应目录还应该再上一级,为../../../,即遇到这个报错,就看自己引入的模...原创 2018-12-26 20:04:48 · 2884 阅读 · 6 评论 -
模拟搜索jsonp跨域案例以及js动态创建元素总结
一、模拟搜索jsonp跨域案例jsonp 跨域原理:XMLHttpRequest不能发生跨域请求,但是可以通过script标签去发生请求。原生js 处理:动态生成script标签,并且把src 属性设置为我们需要访问的跨域的地址jQuery AJAX处理:只需把dataType:“jsonp”,(底层原理,这个属性一设置,$.ajax就没有使用XMLHttpRequest这个对象,而是...原创 2018-12-04 21:00:14 · 260 阅读 · 0 评论 -
正则深入理解及常用案例
1、正则的概念:是一种规则,用来处理字符串的一个规则 正则的作用:匹配:判断一个字符串是否符合限定的规则 test()捕获: 获取到字符串中符合我们正则的内容 exec()2、创建一个正则两种方式:实例创建:var reg=new RegExp("");//传入的是一个字符串字面量方式:var reg=/\d/;创建正则的两种方式的区别:在字面量方式...原创 2018-11-12 22:21:55 · 147 阅读 · 0 评论 -
搜索框实现,常用搜索,历史搜索等
1、实现功能2、页面布局HTML共三部分(1)搜索栏input 框,右边是一个a标签,可以跳转回前一页面。之后写元素用来放置历史搜索和常用搜索。 <form class="weui-search-bar__form" id="search-form"> <div class="weui-search-bar__box"> ...原创 2018-11-03 11:24:32 · 7051 阅读 · 0 评论 -
签到系统、评价系统、后台审核系统前后端接口实现总结
1、签到系统实现点击签到,用户账户金币值更新,同时按钮变灰,今天不能再签到,第二天可以再次签到。 /*设置页面顶部点击事件*/ function clickEvent() { /*点击头像*/ $(".personal-main-top-user .personal-main-top-user-img").off("click").on("cl...原创 2018-10-21 20:32:38 · 4162 阅读 · 0 评论 -
今日头条实习面试总结
1、实现数组扁平化数组扁平化是指将一个多维数组变为一维数组[1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5](1)toString & split或者jion & split调用数组的toString方法,将数组变为字符串然后再用split分割还原为数组 function flatten(Ary){ ...原创 2018-10-21 14:19:39 · 1097 阅读 · 0 评论 -
大华试题总结
1、以下js 表达式返回false 的是 C EA 1==trueB “”==falseC false==nullD null==undefinedE NaN==NaNF typeof NaN==="number"解析:考察js中的隐式转换,js中==运算会自动进行类型转换。null,undefined,"".有一个规则:布尔值true 和false 在==运算中...原创 2018-09-14 16:10:14 · 1167 阅读 · 0 评论