随笔分类 -  JS

摘要:前言 Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值。我的理解是,在javascript中所有表达式为true的值。同理Falsy指的是在javascript中所有表达式为false的值。所有值都是真值,除非它们被定义为 falsy (即, 除了false,0,“ 阅读全文
posted @ 2018-12-05 09:23 风雨后见彩虹 阅读(795) 评论(0) 推荐(0)
摘要:比如下面的代码,从服务端请求回来的订单数据如下,需要进行以下处理1.根据 status 进行对应值得显示(0-进行中,1-已完成,2-订单异常)2.把 startTime 由时间戳显示成 yyyy-mm-dd3.如果字段值为空字符串 ,设置字段值为 ‘--’ 下面就使用单一职责的原则设置 statu 阅读全文
posted @ 2018-11-19 20:44 风雨后见彩虹 阅读(786) 评论(0) 推荐(0)
摘要:工作中经常会遇到这样的需求:1.购物车列表中勾选某些,点击任意一项,前往详情页,再返回购物车依旧需要呈现勾选状态2.勾选人员后,前往别的页面,再次返回,人员依旧程勾选状态3.等等.... 离开页面的时候将勾选的数据缓存,再次返回到页面时,将最新添加的数据和缓存的数据做对比,如果缓存中存在勾选,则更改 阅读全文
posted @ 2018-10-29 10:37 风雨后见彩虹 阅读(1503) 评论(1) 推荐(1)
摘要:base64转blob对象 压缩图片 图片预览 详细图片预览可参考地址:《搞清Image加载事件(onload)、加载状态(complete)后,实现图片的本地预览,并自适应于父元素内(完成)》 图片旋转到正确的角度(验证可行) 参考地址: file上传图片,base64转换、压缩图片、预览图片、将 阅读全文
posted @ 2018-04-27 15:58 风雨后见彩虹 阅读(12863) 评论(0) 推荐(0)
摘要:for..in循环 使用for..in循环时,返回的是所有能够通过对象访问的、可枚举的属性,既包括存在于实例中的属性,也包括存在于原型中的实例。这里需要注意的是使用for-in返回的属性因各个浏览器厂商遵循的标准不一致导致对象属性遍历的顺序有可能不是当初构建时的顺序。 虽然for..in主要用于遍历 阅读全文
posted @ 2018-03-27 14:33 风雨后见彩虹 阅读(1383) 评论(0) 推荐(0)
摘要:什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-f 阅读全文
posted @ 2018-03-14 15:19 风雨后见彩虹 阅读(1442) 评论(0) 推荐(0)
摘要:1.什么是Promise? Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一 2.对于几种常见异步编程方案 回调函数 事件监听 发布/订阅 Promise对象 这里就拿回调函数说说 (1) 对于回调函数 我们用Jquery的ajax获 阅读全文
posted @ 2018-03-14 10:27 风雨后见彩虹 阅读(2592) 评论(0) 推荐(2)
摘要:一般使用 使用正则: 循环替换 如下这种情况,表情标签的替换,我们需要正常的字符串替换,例如结合 while + indexOf 实现。 这样,基本功能实现,不过这是有问题的,如果有一个键值相同的,就会死循环例如: 修改为如下代码解决死循环问题: 再进行简单封装一下: 使用RegExp封装 参考地址 阅读全文
posted @ 2018-02-23 18:25 风雨后见彩虹 阅读(10285) 评论(0) 推荐(0)
摘要:在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的结合 先看一下这个方式: 结果:0.9kfiead48ntoString后的参数规定可以是2-36之 阅读全文
posted @ 2018-01-04 09:08 风雨后见彩虹 阅读(6853) 评论(0) 推荐(1)
摘要:console.log() 基本用法 console.log,前端常用它来调试分析代码,你可以在任何的js代码中调用console.log(),然后你就可以在浏览器控制台看到你刚才打印的常量,变量,数组,对象,表达式等的值。 首先看最基本的用法: 我们可以通过上面的方式进行单个变量(表达式)、多个变 阅读全文
posted @ 2017-11-23 14:49 风雨后见彩虹 阅读(5504) 评论(1) 推荐(1)
摘要:ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到1 阅读全文
posted @ 2017-11-16 11:11 风雨后见彩虹 阅读(22621) 评论(0) 推荐(3)
摘要:简介 form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。 当action为get时候,浏览器用x-www-form- 阅读全文
posted @ 2017-11-04 09:23 风雨后见彩虹 阅读(7630) 评论(1) 推荐(1)
摘要:简介 onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来调用。区别在于onbeforeunload在onunload之前执行,它还可 以阻止onunload的执行。 onbeforeunload 是正要去服务器读 阅读全文
posted @ 2017-11-03 16:10 风雨后见彩虹 阅读(31652) 评论(0) 推荐(7)
摘要:简介 在SF上看到这样一个提问: 如题,因为不得已的原因,需要写若干个全局函数。但又不想这样: 题主问有什么好的写法? 解答: 如果你用 jQuery,你可以这样写 如果你不用 jQuery,可以直接实现类似的 extend: 在JavaScript中,命名空间可以帮助我们防止与全局命名空间下的其他 阅读全文
posted @ 2017-09-19 18:40 风雨后见彩虹 阅读(865) 评论(0) 推荐(0)
摘要:什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给docum 阅读全文
posted @ 2017-09-13 18:16 风雨后见彩虹 阅读(14924) 评论(0) 推荐(1)
摘要:JS数值之间的转换 Number(), parseInt(),parseFloat() Number()函数的转换规则如下: 1.如果boolean值,true和false将分别被转换为1和02.如果是数字值,只是简单的传入和返回3.如果是null值,返回04.如果是undefined,返回NaN 阅读全文
posted @ 2017-09-12 16:43 风雨后见彩虹 阅读(360) 评论(0) 推荐(0)
摘要:浅拷贝: 深拷贝: 浅拷贝的问题:如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,而不是真正拷贝,因此存在父对象被篡改的可能。 下面来个实例: 存在的问题,如果经常改写这个函数的方法extendCopy,内部再调用这个方法名就会出错,还得修改一下这个方法名,那么下面这 阅读全文
posted @ 2017-09-12 16:38 风雨后见彩虹 阅读(435) 评论(0) 推荐(0)
摘要:介绍 typeof typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number boolean string function(函数) object(NULL,数组,对象) undefined。 例子: 我们可以使用typeof来获取一个变量是否存在,如if( 阅读全文
posted @ 2017-09-12 16:34 风雨后见彩虹 阅读(456) 评论(0) 推荐(0)
摘要:在函数内部,有两个特殊的对象:arguments 和 this。其中, arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。 如下,一般在非严格模式下递归调用一般这样使用: 但是如果代码是在严格 阅读全文
posted @ 2017-09-12 14:31 风雨后见彩虹 阅读(9933) 评论(1) 推荐(0)
摘要:来分析下调用的结果: 第一行代码跟平常一样调用了object.getName()返回了My Object ,因为this.name就是object.name。 第二行代码在调用这个方法之前给它加了一个括号。虽然加了一个括号后,就好像只是在引用一个函数,但是this的值得到了维持,因为object.g 阅读全文
posted @ 2017-09-12 14:28 风雨后见彩虹 阅读(1194) 评论(0) 推荐(0)