js
文章平均质量分 57
Liu_Jun_Tao
这个作者很懒,什么都没留下…
展开
-
javascript中new关键字的理解
使用构造函数方式创建对象时,用new操作符来创建这个构造函数的实例JS在执行第8行代码var person1 = new Person('tom') 时,其实模拟了这样的流程: 1.创建一个空对象obj 2.把obj的_proto_指向Person的原型对象prototype,这样就创建了obj对象的原型链:obj->Person.prototype->Obje...原创 2018-07-23 17:54:06 · 508 阅读 · 0 评论 -
js中的事件委托
最近面试的过程中,经常被问到这个问题,那么这里记录一下,加深印象。在使用js中的事件时,比如click、focus、mouseenter、mouseover等等常用的事件,我们知道这么给一个元素添加事件监听:var btn = document.getElementById('myButton');// DOM0级添加事件btn.onclick = function(e){ /...原创 2018-09-14 23:48:39 · 254 阅读 · 0 评论 -
理解async和await 和其他异步操作
在学习wepy做小程序开发时,经常看到.wpy文件中会声明异步函数,于是专门去找了这块儿的东西看了看。结合之前使用的promise,写一下自己的理解:之前做异步操作时,比较常用promise和then(),由于then()返回的仍然是priomise对象,所以这是一种链式的书写方式。例如当我写一个请求时:import axios from 'axios'function send...原创 2018-10-13 16:58:32 · 212 阅读 · 0 评论 -
&& ||的使用
在js中经常会用到&&和||进行赋值操作,例如在获取返回值时,var data = res.data || res获取res.data的值,如果res.data存在就直接返回res.data,否则返回res&&的作用:var a = 1 && 0; // 0var a = 1 && 2; // 2如果&...原创 2018-10-21 22:55:03 · 301 阅读 · 0 评论 -
jquery中的prop和attr
上周在做业务时,遇到的一个小问题,根据后台传的值,初始化表单页面的状态,在设置下拉列表的选中值时,有些没有生效。$("#card_type").attr('selected','selected');后面改成了$("#card_type").prop('selected',true);找了下两者的区别,这里记录下: 对于checkbox,select这类的标签,...转载 2019-03-04 10:55:28 · 493 阅读 · 0 评论 -
常见的POST提交数据方式
HTTP的请求方法POST是再常见不过的了,这里详细地说明四种常用的提交数据方案,巩固下基础。在说POST之前,先看下HTTP请求的结构,分为三个部分:状态行、请求头、消息主体<method> <request-URL> <version><headers><entity-body>我们在代码中,通过new一个XMLH...转载 2019-03-12 17:21:27 · 9358 阅读 · 0 评论 -
HTTP 400错误
向后端发送ajax请求时,当出现http 400错误-请求无效(bad request);首先,请求没有进入到后端的服务里,问题一般出现在前端代码里:1.前端提交的数据字段名称和后端获取的不一致2.前端提交的数据类型,和Content-Type中设置的类型不符,应该是json字符串,但是传的是json对象开发中常见的小坑,这里记录一下~...原创 2019-03-12 17:26:23 · 4211 阅读 · 0 评论 -
js关闭页面提示Scripts may close only the windows that were opened by it
在页面中触发window.close(),页面没有按照预期那样关闭,控制台提示警告:Scripts may close only the windows that were opened by it意思是脚本只能关闭通过脚本打开的页面,当我们在浏览器地址栏输入URL打开页面,是不会通过window.close()关闭的网上找到的解决方法,亲测有效:function closeP...转载 2019-03-13 17:36:16 · 23869 阅读 · 16 评论 -
js函数柯里化
最近在学习js的路上,遇到函数柯里化相关的内容,这里记录下自己的理解:首先,什么是柯里化?函数的柯里化,就是把一个接收多个参数的函数,转化成可以接收单一参数的函数。举个简单的栗子:// 一个接收两个参数的函数,实现加法function add(a, b){ return a+b;}add(1,2);// 转化成接收一个参数function add(a){ ...转载 2019-04-24 17:23:46 · 664 阅读 · 0 评论 -
前端web登录
了解为啥要登录我们知道HTTP是无状态的协议,就是在两次请求之间服务器不会保存任何的数据。所以,登录就是用某种方法让服务器在多次请求之间能够识别出你,而不是每次请求的时候都带上用户名和密码这样的信息。从登录成功到登出的这个过程,服务器一直维护了一个可以识别出用户信息的数据结构,广义上来说,这个过程就叫做session,也就是保持了一个会话。常见的两种登录方式:服务端session + ...转载 2019-04-24 18:41:33 · 3123 阅读 · 0 评论 -
CSRF介绍和防御
CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式。CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行一些需要认证身份的操作。举例说明,比如现在存在正常需要访问的A网站,黑客的B网站,和用户C。要完成一次CSRF攻击,用户需要完成两步:1.登录受信任网站,并在本地生成Cook...转载 2019-04-25 15:44:42 · 2064 阅读 · 0 评论 -
Object的一些方法记录
今天在和一个腾讯出来的面试官聊天,被问到了几个关于对象和原型的基础问题。用的比较少,所以有些知识就忘记了,晚上重新温故一下。1.如何获取一个对象的原型对象,或者重新设置一个对象的原型对象?第一反应想到的是通过_proto_来获取,重新指向新的对象。然而,这个是现代浏览器提供的一个指针对象,而JS提供了这样的方法Object.getPrototypeOf(obj)和Object.setPro...原创 2018-09-18 21:48:15 · 139 阅读 · 0 评论 -
原生ajax和jQuery中的ajax使用
Ajax是一种能够向服务器请求额外的数据而不需刷新页面,会带来更好的用户体验。Ajax技术的核心是XMLHttpRequest对象。IE7及现在浏览器中,使用原生XHR创建:var xhr = new XMLHttpRequest();ajax请求有两种,同步请求和异步请求,在open()中第三个参数设置是否异步(true代表该次请求异步,false代表同步)同步请求时,代码必须等待请...原创 2018-09-17 22:00:35 · 129 阅读 · 0 评论 -
web存储
常见的web存储主要有cookie、sessionstorage、localstorage三个,这里分别记录三者的用法以及区别1.cookie每次http请求都会在请求头cookie中发送到服务器,比如我们打开csdn时,在控制台找到一个XHRcookie是有大小限制的,差不多4KB,当超过这个最大尺寸限制,该cookie会被默认丢掉。cookie有几个信息组成:名称、值、域、...原创 2018-09-16 18:20:50 · 650 阅读 · 0 评论 -
javascript的函数new()和直接调用的区别
看一个构造函数:运行结果:在浏览器运行时监控person1的结果:person1是使用new操作符产生的,这里对比一下,直接使用Person(name, age)函数的返回结果,测试一下运行结果:浏览器监控person1的结果:进一步验证,我们对Person构造函数稍微做下修改,添加一行 this.a = 123;运行结果:这里可以看...原创 2018-07-23 20:05:22 · 1929 阅读 · 0 评论 -
javascript中this关键字详解
在理解this之前,先清楚函数的几种调用方式:1.普通函数调用 2.作为方法来调用3.作为构造函数来调用4.使用apply、call方法来调用5.Function.prototype.bind方法6.es6箭头函数但是不管函数是按哪种方法来调用的,请记住一点:谁调用这个函数或方法,this关键字就指向谁。接下来就分情况来讨论下这些不同的情况(在浏览器环境下)...原创 2018-07-25 10:00:30 · 414 阅读 · 0 评论 -
window的load事件理解
网页中的某些JavaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免类似情况的发生,可以使用以下两种方式:(1).将脚本代码放在网页的底端,运行脚本代码的时候,可以确保要操作的对象已经加载完成。(2).通过window.onload来执行脚本代码。举个栗子:浏览器看下:div#bg的颜色未设置成功,说明script标签中...原创 2018-07-25 11:22:31 · 22394 阅读 · 0 评论 -
js中的原型链和继承
js中将原型链作为实现继承的主要方法,基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。先来捋清楚一下实例、构造函数、原型三者的关系:定义一个构造函数:function Test() { //some code} var a = Test();实例a是一个obj对象,在js中所有对象都有一个隐藏属性_proto_,通过a._proto_可以访问到...原创 2018-07-26 14:26:59 · 221 阅读 · 0 评论 -
原型链中Object Function 实例关系
每个函数对象都有一个显示的prototype属性,指向了对象的原型(Function.prototype函数对象是个例外,没有prototype属性)__proto__:每个对象都有一个名为__proto__的内部隐藏属性,指向于它所对应的原型对象(chrome、firefox中名称为__proto__,并且可以被访问到)。原型链正是基于__proto__才得以形成(note:不是基于函数对象...转载 2018-07-26 19:49:45 · 875 阅读 · 2 评论 -
js中的创建对象几种方式
1.最简单的方式就是创建一个Object的实例,再为它添加属性和方法2.使用对象字面量模式3.工厂模式虽然Object构造函数或对象字面量都可以创建单个对象,但是缺点很明显:使用同一个接口创建对象,会产生大量重复代码。使用工厂模式,抽象了创建对象的具体过程,用函数来封装以特定接口创建对象的细节工厂模式解决了创建多个相似对象的问题,但却没有解决对象识别的问题,无法知道...原创 2018-07-22 20:18:13 · 787 阅读 · 0 评论 -
理解javascript中的class
转载自https://segmentfault.com/a/1190000008338987在 ES6 规范中,引入了 class 的概念。使得 JS 开发者终于告别了,直接使用原型对象模仿面向对象中的类和类继承时代。但是JS 中并没有一个真正的 class 原始类型, class 仅仅只是对原型对象运用语法糖。所以,只有理解如何使用原型对象实现类和类继承,才能真正地用好 class...转载 2018-07-30 19:50:36 · 1566 阅读 · 0 评论 -
js单例模式及应用场景
单例模式单例就是保证一个类只有一个实例,实现方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。单例模式的思路:一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名...转载 2018-07-27 15:08:14 · 6042 阅读 · 0 评论 -
Array的几种常用的遍历方法
forEach、map、filter、every、some五个常用的数组方法,用于处理数组中子项1.forEach()方法用于调用数组的每个元素,并将元素传递给回调函数array.forEach(function(currentValue, index, arr), thisValue)参数描述:currentValue:必需,当前元素index:可选,当前元素的索引值ar...原创 2018-08-14 11:41:42 · 3730 阅读 · 0 评论 -
js中的浅拷贝和深拷贝
谈浅拷贝和深拷贝之前,先了解js中的值类型,我们知道的类型有Number、string、Array、Boolean、Object、null、undefined、Function,其中基础类型包括Number 、string、Boolean、null、undefined,他们是按值访问的,我们可以直接操作保存在变量中的值。引用类型包括Array、Object、Function,他们的值是存在堆内存中...原创 2018-08-31 23:07:58 · 125 阅读 · 0 评论 -
safari返回后页面不刷新的解决问题
这几天在开发项目时,遇到的一个问题:1.自己封装了按钮组件,文字有3个状态,点击前,点击中,点击后。2.在购买商品页面,初始化了购买按钮,点击购买时,文字从‘购买’ -> ‘正在购买’ -> ‘购买成功’,再跳转到其他页面3.点击浏览器的返回,在chrome里面按钮会重新渲染初始化,显示‘购买’;在safari中仍然显示‘购买成功’初步认为safari的返回页面没有刷新...转载 2019-05-10 10:30:34 · 4015 阅读 · 2 评论