- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 浅拷贝与深拷贝思考(深入了解什么是拷贝及数据类型)
浅拷贝与深拷思考前言在写这篇文章之前,如果有人问我什么是深拷贝/浅拷贝?如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝。这句话面试回答可以勉强蒙混过关,也是最通俗易懂的一个答案了。但实际开发过程中确总是出现各种“意外事件”。1、javascript数据类型内容:1、了解基本数据类型与引用类型的存储方式2、拷贝概念只针对引用类型1.1、基本数据类型string、number、null、undef
2021-04-26 10:30:08
570
2
原创 深入理解Event Loop(事件循环)、宏任务,微任务
前言众所周知,JavaScript 是一门单线程语言,虽然在 html5 中提出了 Web-Worker ,但这并未改变 JavaScript 是单线程这一核心。可看HTML规范中的这段话:To coordinate events, user interaction, scripts, rendering, networking, and so forth, user agents must use event loops as described in this section. There are
2020-12-09 18:55:11
355
原创 2020 前端高频面试题!!!(前端基础篇)
前端基础篇1、如何理解执行上下文JavaScript执行上下文(context)主要指代码执行环境的抽象概念。执行上下文分为三种:全局执行上下文函数执行上下文eval执行上下文### 每一段js代码执行,都会先创建一个上下文环境。2、如何理解作用域链前沿知识:js代码执行前会创建上下文环境,这个上下文环境包含了变量、作用域链和this.简单理解就是从当前环境向父级一层一层查找变量的过程称之为作用域链。var name = '前端未来';function hello(){ con
2020-05-19 17:11:45
3633
原创 vue-cli3配置proxy解决跨域(涉及内容什么是跨域,跨域的原理,跨域的解决。axios的封装,axios请求的封装,封装函数在组件中的具体使用,添加请求拦截器,添加响应拦截器)
跨域问题是前端开发中较常见的问题,因为javascript的浏览器会支持同源策略,如果域名、协议、端口任意不同就会产生跨域,如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问,错误信息如下:Access to XMLHttpRequest at ‘http://baidu.cn/api/b1/auth/login’ from origin ‘http://localhost:...
2020-01-06 11:22:09
981
1
原创 react元素渲染
一,元素的渲染首先我们在一个 HTML 页面中添加一个 id=“example” 的div<div id="example"></div>在此 div 中的所有内容都将由 React DOM 来管理,所以我们将其称为 “根” DOM 节点。我们用 React 开发应用时一般只会定义一个根节点。但如果你是在一个已有的项目当中引入 React 的话,你可能会需要在不同的...
2020-01-02 17:48:21
231
原创 如何实现在使用element-ui中table的组件时可以实现编辑和增删改查功能(1.使用失去焦点事件,调用后端接口进行input框的查重。2.使用element UI 的row-click)
element前端ui组件挺美观的,我们也使用了他们的table组件,但是默认没有提供行编辑功能,我们可以通过将table的每个单元格换成input框来巧妙实现。默认每个单元格就是一个template数据填充,不可编辑;我们可以在template里面包裹一个input框来实现单元格可编辑;等每一个单元格都可编辑的时候,我们可以在每一行后面加一个按钮来控制只可编辑当前行。先来看一下原始不可编辑的写...
2020-01-02 17:40:54
1009
原创 element中this.$message 失效问题解决方法(使用全局调用,重新定义this)
这两天写项目的时候发现了这个问题。问题再现:在Model框中操作数据,在使用this.$message进行消息提示时发现,提示框失效。本人解决方案(具体原因我没有找出来,写这个出来也是为了让大佬指点指点) // 保存修改数据 handleSaveMu(row) { let srcColumnSqc = row.srcColumnSqc; ...
2020-01-02 16:58:19
10127
3
原创 新增和修改数据,封装一个组件,运用于不同页面和不同类型,form表单中有可编辑的表格(父子传值,antd-Form表单的二次封装)
import React, { Component } from 'react';import { Table,Button,Input,Icon,Form,message,Modal,Select,DatePicker,Upload,Pagination,Tooltip,InputNumber,Col, Row,Radio,Tabs, Layout} from 'antd';import {...
2019-12-26 16:14:47
885
原创 Model-Ant Design- 打开弹出框,编辑form表单时,model框会出现抖动是什么原因
这两天写项目的时候发现了这个问题。项目再现:当时做的是一个弹框形式的form表单,运用的是Ant Design中的Model+Form组件。问题再现:当我操作input框时,Model框会出现抖动。当把窗口缩小时,该情况就不会出现。本人解决方案(具体原因我没有找出来,写这个出来也是为了让大佬指点指点).ant-modal-body{ width:99%; ...
2019-12-25 15:42:33
1996
原创 React高频面试题,值得珍藏!
说明+感悟:以下所有面试题在本人面试时基本都有出现,当初我在面试时和很多朋友一样,网上搜寻了大量的面试题,疯狂的背诵。说实话,很多面试题确实会被问道,你回答的可能也很标准,但不一定是面试官想要的答案。回答出面试官想要的答案尤为重要。本篇内容,我希望给大家带来的是知识而不是枯燥的背文前言:React 特点 1.声明式设计−React采用声明范式,可以轻松描述应用。 2.高效−...
2019-12-24 14:57:07
994
原创 Vue基础(父子组件传值、兄弟组件传值、ref的使用、slot插槽)
组件Vue.component(’组件名称’,’组件’)组件包括:templatedatamethods生命周期钩子函数computedwatch…….1、父组件给子组件传值:<ChildComponent title="我是子组件"></ChildComponent>子组件用props接受:第一种方式:props:[‘title’] //数组...
2019-07-17 12:06:40
1285
原创 Vue中表单控件(实现多选/反选、删除、单选功能)
Vue中表单控件(实现多选/反选、删除、单选功能) <html lang="en"><head> <meta charset="UTF-8"> <title>全选/反选</title> <style> /*v-cloak:解决加载闪烁时出现的Vue标签或者指令(一般出现在cdn引...
2019-07-16 23:03:21
1178
原创 Vue基础(Vue中使用css样式、模板语法、常用指令、事件处理)
1、在Vue中使用CSS样式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>CSS样式</title> <style> /*v-cloak:解决加载闪烁时出现的Vue标签或者指令(一...
2019-07-16 22:49:09
1365
原创 VUE数据驱动和双向绑定
1、安装VUE(1)、CDN引入:对于制作原型或学习,你可以这样使用最新版本:<script src="https://cdn.jsdelivr.net/npm/vue"></script>对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏:<script src="https://cdn.jsdelivr.net/n...
2019-07-16 22:37:34
408
原创 VUE前端框架介绍(基础)
一、设计模式(MVC/MVP/MVVM)的区别1、Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式MVVM框架。设计模式(MVC/MVP/MVVM)的对比(1)MVC (Model View Controller ):a、视图(View):用户界面。b、控制器(Controller):业务逻辑c、模型(Model):数据保存MVC特点...
2019-07-16 22:26:21
2088
1
原创 关于闭包的详解,以及为什么要用它
关于闭包的详解,以及为什么要用它闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以冲破作用域链,将函数内部的变量和方法传递到外部。闭包的特性:1、函数内再嵌套函数2、内部函数可以引用外层的参数和变量3、参数和变量不会被垃圾回收机制回收例如://li节点的onclick事件能正确的弹出当前被...
2019-07-13 14:03:46
220
原创 http状态码有那些,分别代表什么意思
http状态码有那些,分别代表什么意思1(信息类):表示接收到请求并且继续处理**100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本2(响应成功):表示动作被成功接收、理解和接受**200——表明该请求被成功地完成,所请求的资源发送回客户端201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请...
2019-07-13 11:29:51
834
原创 Html5中本地存储概念是什么,有什么优点,与cookie有什么区别?
html5中web storage包括了两种存储方式:sessionstorage和localstorage。sessionstorage用于本地存储一个会话(session)中的数据,这些数据只在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionstorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localstorage用于持久化的本地存储,除非主动删除数...
2019-07-13 11:21:24
841
原创 用js代码简单的介绍自己
在JavaScript中使用prototype扩展对象属性和方法JavaScript是基于对象的程序开发语言,在JavaScript中可以创建对象和函数,但创建好的对象有时也需要prototype对象对其属性和方法进行拓展<script> function person(name , jingli,jineng){ this.name = name; this.jingl...
2019-07-13 10:56:13
2960
原创 javaScript中常见的五种排序(冒泡、快速、插入、选择、sort)详解
1、冒泡排序实现思路:相邻两个数进行比较,大数下沉,小数向上浮。如果前一个数比后一个数大就交换function fnSort( arr ){ var temp = null; for ( var i = 0 ; i < arr.length - 1 ; i++){ for( var j = 0 ; j < arr.length - i -1 ; j++){//i每循环一次,...
2019-07-11 10:57:06
304
原创 5种方法实现数组元素去重(详解)
1.遍历数组法最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下://最简单的数组去重function noReapet1(arry){ //定义一个临时的空数组 var arr = [ ]; for ( var...
2019-07-11 09:51:41
2033
原创 利用 NodeJS 实现静态服务器
一、什么是服务器服务器,也称伺服器,是提供计算服务的设备,由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力常见的HTTP服务器软件:Apache、Nginx、IISnode服务器:如果我们使用PHP来写后端的代码时,需要Apache或者Nginx的HTTP服务器来处理客户端的请求响应。不过对Node.js来说,概念完全不一样了。使用Node.js时...
2019-07-08 21:14:04
503
原创 js中关于时间对象的两个小案例(跳动的时钟、倒计时设计)
// 案例一 : 跳动的时钟/*实现思路获取当时时间,再根据当前时间分别获取年、月、日、小时、分、秒将这些拼接为字符串判断月、日、小时、分、秒为以为数时,在前面加一个0将拼接的字符串放入页面中设置一个定时器,每一秒获取一次当前时间、实现时间的动态变化*/ function dateToString( d ){ var y = d.getFullYear(); var m = ...
2019-07-02 17:33:04
673
原创 git、模块化开发知识点总结
gitgit 分布式版本管理控制工具git优点:适合分布式开发,强调个体公共服务器压力和数据量都不会太大速度快,灵活可以离线工作svn优点 :管理方便,逻辑明确集中式管理更能保证安全性适合开发人数不多的项目开发三个概念:版本库 : 在初始化git版本库之后会生成一个隐藏的文件 .git ,可以将该文件理解为git的版本库 repository工作区 : 项目目录暂存...
2019-07-01 19:27:27
533
原创 gulp的安装与使用、sass的正确使用总结
gulp的安装步骤 window下哪个命令能够进入命令行窗口 :cmd1、先安装nodejs2、全局安装gulp 打开cmd命令行窗口安装命令 : npm install -g gulp@3.9.1 gulp的全局安装检查gulp是否安装成功 : gulp -v3、局部安装 在项目目录中安装gulp在该项目目录下进行局部安装gulp 命令是 :进入到项目目...
2019-07-01 19:16:58
987
原创 node 、搭环境的具体流程相关知识点总结
1、什么是nodea、概念Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。什么是npm?npm是一个node的包管理工具 ,也是一个网站 ,还是一条命令b、安装安装nodenpm是和Nodejs一起并存的,只要安装了Nodejs,npm也安装好了,安装好Nodejs...
2019-07-01 17:49:25
255
原创 ajax请求数据和跨域、 jquery插件、SVN知识点总结
ajax请求数据和跨域1、ajax的异步请求之 load 加载公共的html文件load()方法是异步(局部)的,加载的信息中如果需要事件响应,必须通过回调函数来实现(或者委托),也就是说所有load加载的数据中的事件都要写在回调函数中load()方法如果想要请求不同结构的内容,可以把这些内容写到一个文件中,请求数据时,在url后加一个请求容器的选择器名称即可(这里选择器建议使用基本选择器)...
2019-07-01 17:33:11
207
原创 jquery动画、事件绑定、事件委托知识点总结
jquery的动画基本动画 :show() 没有参数 等价 css:display:block可以有三个参数第一个参数 :动画执行的时间第二个参数 : 动画执行方式 linear swing第三个参数 :动画完成后的回调函数hide() 隐藏 等价 css:display:nonetoggle() 切换 显示 / 隐藏上拉/下拉 :slideDown...
2019-07-01 15:45:40
275
原创 jquery相关知识点总结
1、jquery概念是js的一个类库 (对js中某些功能的封装)用jq实现的功能一定能用js实现 反过来 不一定,js实现的功能jq不一定能实现。2、jquery好处a、代码简洁 b、兼容性好 c、最少的代码做多的事情 d、性能支持比较好e、节约学习成本 f、让DOM操作变的简单jQuery框架支持链式写法jQuery框架实现了跨浏览器的兼容包括IE低版...
2019-06-29 22:44:01
537
原创 JavaScript兼容问题总结
01、获取滚动条滚动的距离var sTop = document.documentElement.scrollTop || document.body.scrollTop002、获取非行间样式IE: currentStyle[attr]标准: getComputedStyle[attr]003、获取事件对象var e = e || event;004获取键盘信息e.keyCo...
2019-06-28 17:30:25
204
原创 三种方式实现banner图的轮播(jq实现淡入淡出、jq实现层级轮播、js面向对象实现无缝轮播)
三种方式实现banner图的轮播(jq实现淡入淡出、jq实现层级轮播、js实现无缝轮播)//1、jq实现淡入淡出思路:a、使用JQ库里面的.fadeIn()\fadeOut()方法**fadeIn()
2019-06-28 15:31:51
1197
原创 使用jq实现电商网站“楼梯”效果制作(左侧显示楼层号、显示对应楼层信息)
使用jq实现电商网站“楼梯”效果制作思路 :1、点击左侧的楼层号 显示对应的楼层信息操作当前点击的楼层号的高亮显示点击不同楼层号 设置页面滚走的距离 为当前楼层距离内容窗口的top值2、点击 top 回到顶部3、操作滚动条显示对应的楼层号4、技术点:滚动条的获取、页面滚走的距离、jq操作样式、对应下标显示楼层内容(在代码中我都会详细注释)//代码分享<!DOCTYP...
2019-06-28 12:03:43
796
原创 点击a标签,实现路径的转换并发生跳转
//购物车按钮html<a title="我的购物车" href="javascript:void(0)" id = "goodsCar"> <span class="icon-shop-car"></span> <span class="f12 text-shop-car">购物车</span></a>//...
2019-06-28 11:25:14
949
原创 JavaScript基础题、联系题、面试题(六)
1.gulp的配置文件要放在哪个目录A 项目的根目录B C盘的根目录C 项目的父级目录D 项目的子级目录正确答案: A解析:2.sass中怎么定义变量A var a="#333"B a="#333"C $primaryColor: #333D $ a="#333"正确答案: C解析:$变量:值3.下面关于sass的描述那个是正确的A SASS(Syntactical...
2019-06-27 22:57:24
11767
原创 JavaScript基础题、练习题、面试题(五)
1.闭包的好处说法不对的A 缓存变量B 防止命名冲突C 可能造成内存泄露D 减少内存使用率正确答案: D解析:无2.不属于同源策略限制条件的A 端口B 协议C 域名D 网址正确答案: D解析:3.ES5中不能实现继承的关键字A prototypeB callC applyD extends正确答案: D解析:无4.alert(username);var...
2019-06-27 22:39:58
8910
原创 JavaScript基础题、练习题、面试题(四)
1.一个.php后缀的文件,可以在什么环境下执行A mysql数据库B 浏览器C apache服务器D Windows系统正确答案: C解析:php运行环境apache2.http协议的默认端口号是A 80B 8888C 8080D 3306正确答案: A解析:服务器安装好之后,默认端口号是803.ajax跨域的前端解决方案是哪个A corsB jsonpC ...
2019-06-27 22:34:34
20791
原创 JavaScript基础题、练习题、面试题(三)
1.下列哪些属性不是事件对象event的属性A clientXB offsetXC offsetLeftD target正确答案: C解析:offsetLeft为元素针对offsetParent的水平坐标,并不是事件对象中的鼠标位置2.下列关于事件委托说法错误的是A 事件委托可以解决事件绑定程序过多的问题B 事件委托利用了事件捕获原理C 事件委托可以提高代码性能D 事件委托...
2019-06-27 22:27:44
14747
原创 原型对象、原型链知识点总结
1、扩展几个面向对象术语OOA 面向对象分析OOD 面向对象设计OOP 面向对象编程2、对象创建的几种方式字面量方式创建对象(类似json格式)上面创建对象的方式有一个共同的特点 : 一次只能创建一个对象缺点 : 多个同类的对象在创建时,代码会重复编写4、工厂模式 (设计模式的一种)了解可以通过函数调用的方式创建对象工厂模式创建对象的过程 :优点 :解决了多个同...
2019-06-27 20:09:28
461
原创 cookie 会话跟踪技术
cookie 会话跟踪技术1、cookie就是会话跟踪技术会话 : 从浏览器打开(网站打开) 到浏览器关闭的这样一个过程称为一次会话会话跟踪技术 : 在打开浏览器操作cookie后,再次打开其他页面,这个cookie数据在几个浏览器中是 数据共享的 cookie数据存储在浏览器上,也就是存储在计算机的硬盘上 而不是内存中 , cookie的数据也可以理解成一个全局变量2、cookie的操...
2019-06-27 17:45:27
1743
原创 登录注册功能的实现详解(多用户名注册、案例补充)
登录注册功能的实现详解(多用户名注册、案例补充)案例功能说明1、可以保存多个注册用户2、注册时判断用户名是否存在,不存在可注册3、注册成功后,跳转到登录页面4、取出cookie里面的值,进行判断,若用户输入的用户名和密码匹配成功则成功登录//登录界面<body> 用户名 : <input type="text" id="uname" /><br>...
2019-06-27 16:47:19
4656
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人