js
光芒万丈母娘
爱好アニメ&드라마的程序媛小白
展开
-
函数声明和原型链
今天整理了一天的二叉树,却还是一头雾水,不知道大家有没有学习的好方法,之前以为前端不需要数据结构和算法如此精通。看了一些笔试题之后心灰意冷了。今后整理好会发布的相比起来函数声明和原型链问题更像脑筋急转弯一点。整理几个看起来有点绕的问题吧。第一题:关于原型链和运算符优先级 var A=function(name){ if(name)this.name=...原创 2018-04-14 21:15:44 · 567 阅读 · 0 评论 -
javascript类型转换
可以分为4大类:奇葩NaNNaN是一种奇葩的number,究竟有多奇葩呢?和自己各种不等够不够!number中还有一个比较特殊的东西Infinity。用typeof查看可知Infinity属于number型。浮点数计算精度javascript的世界中对整数和小数一视同仁都看作双精度浮点数2^64位。0.1+0.2 !== 0.3:0.1和0.2会先被转成二进制再相加...原创 2018-07-13 16:38:32 · 240 阅读 · 0 评论 -
图片懒加载
图片按需加载当用户触发了某项动作才加载对应的功能。比如图片的按需加载,图片默认开始不加载,等接近可视区域范围时再进行加载,俗称懒加载,图片一下子全加载,那请求数必然超级多,肯定会影响性能。当滚动条拉动到某个位置时,即将进入可视范围的图片需要加载。比如内容按需加载,可以先将html结构放在textarea标签中,当触发的时候把textarea的value赋值给父元素的innerHTML。 ...原创 2018-04-28 11:22:24 · 263 阅读 · 0 评论 -
js之高级技巧
安全的类型检测js内置的类型检测方法并不安全。①typeOf 不能用于检测array只能返回object,不能检测null只能返回object,但是出乎意料的是可以检测symbol、function和undefined。类型返回值都是字符串、而且都是小写打头。②instanceOf是用来判断是不是某个东西的实例对象的,比如一道经典的题:var isArray = value in...原创 2018-04-24 22:54:04 · 767 阅读 · 0 评论 -
JS之图片无缝滚动
无缝滚动的图片是非常常见的一道面试题~代码很简单,但思路一定要清晰。首先是准备的几张图片:因为图片个数有限,移动的过程中难免会移完,所以我们需要先将这几张图片拷贝一份附到后面。但是再多的图片也有走完的一天,我们需要弄一个循环图片,所以在ul移动一半的时候自动将left赋为0,实现循环假象。最后一步就是让我们的div可以隐藏溢出。总代码是:<!DOCTYPE html><html...原创 2018-04-23 22:11:18 · 197 阅读 · 0 评论 -
js之数组去重
面试常考的点之一吧(我也只被考过set的用法而已)先上最简单版~①利用set[... new Set(arr)]ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。new Set(array)得到的是一个Set数组(没有重复值),三个点为扩展运算符,得到用逗号分隔的参数序列,最外的中括号使得我们最终得到的还是一个数组。这句话也可以写成Array.from(new...原创 2018-04-13 20:58:22 · 153 阅读 · 0 评论 -
一道题引发的对于自执行函数、异步调用与event loop、作用域链的思考
依旧是由一道面试题引发的思考: for(var i=0;i<5;i++){ setTimeout(function(){console.log(i)},i*1000); }大家知道出来的结果是什么吗?5 5 5 5 5 隔1秒出来一个数首先,我们需要明确的是setTimeout()是一个异步函数。异步函数在写项目的过...原创 2018-04-13 15:55:23 · 409 阅读 · 0 评论 -
字符串与数组
substring、slice和substr也是一道经典面试题(虽然人家没问过我)var str = "I am 一个好人";str.substring(2,7);//am 一个str.substr(2,7);//am 一个好人str.substr(2,10);//am 一个好人str.slice(2,7);//am 一个str.substring(2,-2);//am 一...原创 2018-04-13 11:02:26 · 181 阅读 · 0 评论 -
关于事件对象event的一些整理
今天整理大红书上第13章事件,发现很多以前没注意到的东西,特此整理下来:坑1:移除事件监听我们知道addEventListener所添加的事件处理程序只能通过removeEventListener来移除,但是两次的参数必须一致,所以如果第二个参数是匿名函数就永远无法移除了: var btn = document.getElementById("myBtn"); btn...原创 2018-04-22 21:29:40 · 377 阅读 · 0 评论 -
js算法题
1. == 与 === 的区别①如果是两个相同类型的原始类型数据相比,==和===一样,都是比较他们的值。②如果两个都是引用类型,==和===一样,都是看他们是否指向同一个对象。③如果两个类型不同,===直接返回false,==会进行数据格式。如果是两个基本类型相比,==会把他们都转换为Number型,比较他们实际的值;如果是一个基本类型一个引用类型,则会调用引用类型的valueOf函...原创 2018-04-17 21:11:46 · 770 阅读 · 0 评论 -
前端性能优化
页面的加载和渲染过程 浏览器请求服务器,获取html文档并开始从上到下解析,构建DOM树; 构建DOM过程中,如果遇到<link>和<script>标签暂停文档解析,开始下载css文件和js文件; css文件下载完成后,构建CSSDOM;同时一个js文件下载完成后解释执行,紧接着另一个js文件进行下载,必须前面的执行完才会下载后面的。 等js文件全部执行完成,继...原创 2018-04-17 15:37:54 · 117 阅读 · 0 评论 -
牛客网错题记录(不断更新中~
1.一个值为false的Boolean对象被if强制转换时为true var x = new Boolean(false);//x为Boolean引用类型 var y = Boolean(false);//y为Boolean原始类型 console.log(x);//Boolean {false} console....原创 2018-04-15 20:19:26 · 416 阅读 · 0 评论 -
类型判断の四种方法
var num = 1234;var str = "qwer";var b = true;var arr = [1,2,3];var f = function(){ return "f";}var obj = { a: 123, b: { c: "qwer", d: { rd: num }...原创 2018-07-20 10:45:52 · 235 阅读 · 0 评论