随笔分类 - js
记录对js的学习
摘要:阿里的模拟笔试题,当时时间有限没写出来,其实是因为自己对原生dom操作不熟悉,这里补一下。 题目的大意是有一个表格,如代码所示 大概长这样吧,注意有表头,然后让你写一个函数对表中的记录,比如按idx升序排序 思路:就将表中的数据全都取出来,排序之后重新建表。 代码 要记住的点就是,querySele
阅读全文
摘要:一般来讲深复制主要是为了复制js对象中的引用类型,引用类型在普通的赋值操作下相当于是引用,修改复制对象也会影响原对象,简单的方法的话可以使用JSON.parse(JSON.stringify(obj)) 来实现深复制 然而这是没有考虑对象中有函数的情况,用var b = JSON.parse(JSO
阅读全文
摘要:闭包:其实就是js代码在执行的时候会创建变量对象的一个作用域链,标识符解析的时候会沿着作用域链一级一级的网上搜索,最后到达全局变量停止。所以某个函数可以访问外层的局部变量和全局变量,但是访问不了里层的变量 with和catch语句都会在作用域的前端添加一个变量对象 如果一个函数对象要访问内层函数中的
阅读全文
摘要:快排的思路:选定一个基准数,要使得基数的左边的数字全部小于它,右边的数字全部大于它。分别设i和j从左右开始寻找,从左边找到第一个比基数大的数,从右边找到第一个比基数小的数,然后交换这两个数。 当i和j相遇时,交换基数和i。再以同样的方式处理两边的数组。注意:如果基数取的是a[0]那么一定是先从右边开
阅读全文
摘要:先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟关系,在同一个父元素下渲染。现在我们要在点击A的时候调用B中的方法 解决思路:主要是用到ref获取B
阅读全文
摘要:看了网上的资料感觉有两种实现,一种是发布的时候有关键字key,然后就执行所有订阅了key的事件,还有一种是没有key直接绑定在发布对象上,对象调用public方法然后执行所有绑定的函数 说到底区别就是前者是多个不同键值的数组存事件,后者是只有一个数组存所有时间,下面的代码是属于前一种
阅读全文
摘要:遇到面试的一个编程题:三个返回promise对象的异步操作,让你写一个函数可以将这些操作顺序执行,并返回一个数组包含三个异步对象的结果 异步对象: 注意:promise对象在实例化的时候就会执行,所以函数都是返回promise对象,这样执行函数的时候就会执行promise对象中的内容 我们期望的结果
阅读全文
摘要:在学习react的时候,经常用create-react-app来创建web应用,然而写到后面总有连自己服务器和数据库的需求,create-react-app创建的是一个webpack-dev-server,主要用来进行webpack的编译和热加载(HMR),所以想要把这两个东西融合,就是既能监听修改
阅读全文
摘要:事件委托主要用于一个父容器下面有很多功能相仿的子容器,这时候就需要将子容器的事件监听交给父容器来做。父容器之所以能够帮子容器监听其原理是事件冒泡,对于子容器的点击在冒泡时会被父容器捕获到,然后用e.target来判断到底是哪个子容器触发了事件 示例代码: 点击第二个li,console输出<li>2
阅读全文
摘要:问题:跨域有哪些方法?jsonp的原理是什么? jsonp: 先说jsonp,jsonp的主要原理是利用script标签的src可以跨域请求,据说有src属性的都可以跨域请求,但script标签返回的会直接执行,所以都是用script请求。jsonp=json+padding,padding是指服务
阅读全文
摘要:接到电话面试,有一些送分题答的不好,在这里整理一下 问题:原生ajax的工作流程是怎么样的? 老用封装好的工具,原生的ajax其实并不熟悉,今天复习一下。主要参考http://www.w3school.com.cn/ajax/ 要发一个ajax请求首先要创建XMLHttp对象 其中,new Acti
阅读全文
摘要:最近想用LayaBox做个小游戏,然而Laya本身不自带构建工具。然后觉得写模块化的东西还是用webpack好使,用es6的语法也比较清晰。 于是就装了webpack,只用babel-loader来编译用es6写的代码。配置文件如下: 一开始我没有设定mode,虽然我在babelrc里面写了comp
阅读全文
摘要:原题:https://leetcode.com/problems/reverse-nodes-in-k-group/ 题意就是给你一个有序链表。如1->2->3->4->5,还有一个输入K,让你以k为长度单位一段一段的翻转链表,如果长度不够k的部分则不翻转。 比如k=2,就两个两个翻转2->1->4
阅读全文
摘要:leecode可以用js刷题了,我大js越来越被认可了是吧。但是刷题中会因为忽略js的一些特性掉入坑里。我这里总结一下我掉过的坑。 坑1:js中数组对象是引用对象 js中除了object还有数组对象也是引用对象,这点常常被忽视,所以在递归的时候传递数组要用arr.slice(0)这样复制一个一样的新
阅读全文
摘要:自己对canvas,但又有一颗做游戏的心TT。然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习。(编程时用了一些es6的语法) 示例的html很简单,只有一个canvas元素: 这里可以看到我在canvas标签里直接定义了宽和高,这和在css里面定义是不同的,canvas元素其
阅读全文
摘要:使用构建工具之前我觉得前端好蠢,css没有变量,不能写循环,为了兼容要写好多前缀,hmtl写多页面中有同一个header,我就粘贴复制,然后修改的时候每个都要改。
我还不会压缩和合并,每次都要按F5刷新。其实这些问题也是网页优化的问题。构建工具正是解决这些问题的集合。虽然网上gulp和webpack的教程很多,我还是根据自己的需求整理了一下。
阅读全文
摘要:什么是echarts?这是官网:http://echarts.baidu.com/简单的说就是百度提供的一些画图表的库,用它你可以简便的画出一些你想要的图表效果。虽然蛮好用的,但对于不知道模块化的新手(比如说我~)感觉不是很好入门,我这里大概梳理一下我的认知吧,希望能帮助到内些想尝试echarts的...
阅读全文
摘要:1.客户区坐标位置:clientX,clientY 鼠标相对于在当前页面可视范围左上角的位置2.页面坐标位置:pageX,pageY 鼠标相对于页面左上角的位置(受滑动等影响,例如pageY=clientY+scrollTop)3.屏幕坐标位置:screenX,screenY 鼠标相对于电脑左上角的...
阅读全文
摘要:typeof操作符:返回字符串,可能是“undefined”,“boolean”,“ string”,“number”,“object”,“function”中的一种,所以不能判断数组。NaN(Not a Number):用法NaN(val)如果val能被转化成一个数就返回false,否则返回tru...
阅读全文