![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript学习
文章平均质量分 53
兔子juan
我是一个性格活泼外向的女孩,现如今是一名计算机科学与技术专业的学生,喜欢前端,开始学习,差的我就努力追赶,加油↖(^ω^)↗
展开
-
JavaScript:void(0)含义
相信很多人经常会看到:javascript: void(0),那么你知道它是什么意思吗? javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。 为什么要使用href=”javascript:void(0);”href=”javascript:void(0);”...原创 2018-07-09 11:00:17 · 10190 阅读 · 2 评论 -
前端开发中的正则表达式 以及 常用的正则表达式大全
RegExp 是正则表达式(Regular expression)的缩写,就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 ‘a’ 和 任意个 ‘b’ ”,那么 ‘ab’, ‘abb’, ‘abbbbbbbbbb’ 都符合这个特征。正则表达式可以用来:验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。用来...原创 2018-08-20 12:13:23 · 523 阅读 · 0 评论 -
JS的各种数据类型判断
JS的各种数据类型判断1.typeoftypeof 用来判断各种数据类型,有两种写法:typeof xxx , typeof(xxx) 例如: typeof 2 输出 number typeof null 输出 object typeof {} 输出 object typeof [] 输出 ...原创 2018-08-30 16:57:59 · 495 阅读 · 0 评论 -
将嵌套的数组扁平化
对于一个像这样的嵌套数组:a=[1,[2,[3,4]],5,6]我们想要把它变成一个一维数组,有下面几种方法: 方法一 :递归function parseArr(arr,res){ var i=0; for(i=0;i<arr.length;i...转载 2018-08-23 19:47:16 · 1678 阅读 · 0 评论 -
原型和原型链的理解
因为这个概念的理解,总是让我绕进去,有点怀疑智商…… 今天好好理解一下这个概念!先看一个例子:function Person(){ this.name = 'Mike';}var person = new Person();Person.prototype.say = function(){ console.log('Hello,'+this.name);};...原创 2018-08-23 22:41:56 · 1019 阅读 · 0 评论 -
js实现字符串重复的repeat函数
使用javascript编写一个实现字符串重复的repeat函数:例如:repeat("abc",4) //abcabcabcabc方法一:function repeat(src, n) { return (new Array(n + 1)).join(src);}方法二:function repeat(src, n) { var s = src, tot...转载 2018-08-31 09:48:04 · 1627 阅读 · 0 评论 -
重绘和重排是什么?如何减少重绘和重排
一个页面由两部分组成:DOM:描述该页面的结构render:描述 DOM 节点 (nodes) 在页面上如何呈现当 DOM 元素的属性发生变化 (如 color) 时, 浏览器会通知 render 重新描绘相应的元素, 此过程称为 repaint。如果该次变化涉及元素布局 (如 width), 浏览器则抛弃原有属性, 重新计算并把结果传递给 render 以重新描绘页面元...转载 2018-08-24 15:44:12 · 4990 阅读 · 0 评论 -
JavaScript创建对象的几种方式
JavaScript创建对象的几种方式 通过字面量的方式创建对象var obj{ name:"张学友", job:"歌手", sing:functi...转载 2018-08-31 20:20:27 · 189 阅读 · 0 评论 -
面试问题:对象的深拷贝和浅拷贝区别以及详解
深拷贝和浅拷贝的区别 JavaScript中有两种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。 最根本的区别在于是否是真正获取了一个对象的复制实体,而不是引用。浅拷贝 —-只是拷贝了基本类型的数据,而引用类型数据,复制后也是会发生引用,我们把这种拷贝叫做“(浅复制)浅拷贝”,换句话说,浅复制仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅复...原创 2018-08-21 19:52:04 · 4898 阅读 · 0 评论 -
总结JS中的继承
ECMAScript没有明确的继承机制,而是通过模仿实现的,而且ECMAScript只支持实现继承(即继承实际的方法,还有接口继承),实现继承主要是依靠原型链来实现的。昨天总结了创建对象的几种方法:JavaScript创建对象的几种方式,既然创建了对象,那么我们就要给它实际用起来,这一节就好好总结一下JS中的继承方法,这也是一道重要的面试题目!**实现继承的4种方法**1....原创 2018-09-01 21:49:14 · 249 阅读 · 0 评论 -
区分callee和caller
callee和caller是对象的两个属性,今天就来区分一下这两个:callee是arguments对象的一个属性,指向 arguments 对象的函数,即当前函数。 caller是函数对象的一个属性,指向调用当前函数的函数体引用。 用处1、递归 我们可能用到一些函数调用自身,即递归。平时我们计算阶乘是用下述方法:function factorial(x) { ret...原创 2018-08-30 12:18:10 · 1018 阅读 · 1 评论 -
apply() call() bind()区别总结
apply() 、call() 、bind()每个函数都包含两个非继承而来的方法:apply() 和 call() 用途:都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply() apply()接收两个参数:一个是在其中运行函数的作用域(this),二是参数数组。 其中第二个参数可以使Array的实例,也可以是arguments对象。function ...原创 2018-08-30 15:36:50 · 190 阅读 · 0 评论 -
JavaScript的作用域链及闭包
闭包概念:指有权访问另一个函数作用域中的变量的函数。 创建方式:在一个函数内部创建另一个函数。但是,在我们了解闭包之前,有个很重要的概念需要先了解清楚,那就是作用域链,我们需要彻底理解作用域链。1.JavaScript的作用域及作用域链作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScri...原创 2018-09-02 15:35:30 · 284 阅读 · 0 评论 -
高性能JavaScript---作用域链, 闭包, 原型, 原型链
作用域链及和标识符解析每一个JavaScript函数都表示为一个对象, 要确切的说, 是Function对象的一个实例. Function对象同其他对象一样, 拥有可以编程访问的属性, 和一系列不能通过代码访问而仅供JavaScript引擎存取的内部属性. 其中有一个内部属性是[[Scope]].内部属性[[Scope]]包含了一个函数被创建的作用域中对象的集合. 这个集合被称为函数...转载 2018-09-02 15:53:14 · 254 阅读 · 0 评论 -
js延迟加载的几种方法
这是一个面试经常问到的问题:js的延迟加载方法 (js的延迟加载有助与提高页面的加载速度)主要考察对程序的性能方面是否有研究,程序的性能是一个项目不断地追求的,通常也是项目完成后需要长期做的一件事情,像腾讯QQ依然对程序的性能不断地做优化,让用户的体验更好,性能优化的核心思想就是快,可以预先准备数据(如缓存的使用),可以按需获取,可以分段获取等都是常见的优化手段。解题思路 : 1.de...原创 2018-09-03 15:55:49 · 1447 阅读 · 0 评论 -
JS延迟加载的几种方式
JS延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件。 JS延迟加载有助于提高页面加载速度。 一般的几种方法如下:defer 属性async 属性动态创建DOM方式使用jQuery的getScript方法使用setTimeout延迟方法让JS最后加载1.defer属性 HTML 4.01 为 <script>标签定义了 defer属性。...原创 2018-08-22 11:05:16 · 658 阅读 · 0 评论 -
JavaScript原生代码实现楼层跳跃
<!doctype html><html lang=“en”><head> <meta charset=“UTF-8”> <meta name=“viewport” content=“width=device-width...转载 2018-08-08 22:12:58 · 767 阅读 · 0 评论 -
总结:常见正则表达式(记住)
1. 校验基本日期格式var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/</span>;</div></div></li><li><div class="hljs...转载 2018-08-03 17:23:17 · 597 阅读 · 0 评论 -
javascript 中函数调用方法:apply() 和 call()
每个函数都包含两根非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。 首先,apply()方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中第二个参数可以是Array的实例,也可以是arguments对象。例如:...转载 2018-07-31 18:12:48 · 1108 阅读 · 1 评论 -
js中arguments到底是什么?
类数组对象:arguments总所周知,js是一门相当灵活的语言。当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments的东西里面,那么这到底是什么东西?在js中万物皆对象,甚至数组字符串函数都是对象。所以这个叫做arguments的东西...转载 2018-07-31 19:41:43 · 264 阅读 · 0 评论 -
js实现轮播图原理及示例(转)
网上有很多的例子介绍,在这里我所做的无缝滚动就是 通过改变元素的left值让图片呈现左右滚动的效果。 我们首先看一下 div+css 的结构样式: div+css代码&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt; &amp;lt;head&amp;gt;转载 2018-07-27 21:25:44 · 12673 阅读 · 0 评论 -
轮播图的实现原理
一、实现轮播图最主要的就是定时器 (setInterval 函数和 clearInterval 函数),他们分别是定时和清除定时。二 、html代码如下:<div class="warp"> <div class="mod-tab"> <ul id="list"> <li class="转载 2018-07-27 22:11:46 · 4693 阅读 · 0 评论 -
javascript中一些相对位置
scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度offsetLeft:...原创 2018-07-27 22:43:43 · 877 阅读 · 0 评论 -
终于弄懂了事件冒泡和事件捕获!
总结了两个人的博客,写了这篇:总算是搞清楚事件捕获和事件冒泡了!参考资料浅谈事件冒泡与事件捕获 理解事件捕获和事件冒泡1、事件捕获 捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定)2、事件...原创 2018-08-01 20:30:47 · 54690 阅读 · 10 评论 -
如何获取UA?
通过JS获取浏览器UA(User Agent,用户代理)&lt;script&gt;function whatBrowser() {//获取完整的浏览器名称document.Browser.Name.value=navigator.appName; //获取浏览器的版本,一般不与实际的浏览器版本对应document.Browser.Version.value=navigator.ap...原创 2018-08-01 21:03:04 · 5968 阅读 · 0 评论 -
es6 javascript的Iterator 和 for...of 循环
1 Iterator( 遍历器) 的概念JavaScript 原有的表示“ 集合” 的数据结构, 主要是数组( Array) 和对象( Object), ES6 又添加了 Map 和 Set。 这样就有了四种数据集合, 用户还可以组合使用它们, 定义自己的数据结构, 比如数...转载 2018-08-14 14:03:55 · 144 阅读 · 0 评论 -
Javascript中的shift() 、unshift() 和 pop()、push()区别
1.shift()函数定义:该函数从从数组中删除第一项,并返回该删除项。var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits.shift() //Bananaconsole.log(fruits); //Orange,Apple,Mango注:该方法会改变数组的长度。2.unshift()函数...原创 2018-08-14 16:11:07 · 7679 阅读 · 0 评论 -
px和em的区别
px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。em是相对长度单位。相对于当前对象内文本的字体尺寸,多理解父级设定font-size的尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化f...原创 2018-08-02 12:07:55 · 10310 阅读 · 0 评论 -
八种方式实现跨域请求
前端开发中我们经常会遇到跨域请求的情况,处理跨域请求方式很多,特整理如下:浏览器的同源策略 提到跨域不能不先说一下”同源策略”。 同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。 何为同源?只有当协议、端口、和域名都相同的页面,则两个页面具有相同的源。只要网站的 ...转载 2018-08-02 16:26:38 · 317 阅读 · 0 评论 -
三种垂直居中的方法
总结三种常用的垂直居中的方法 1.多个块级元素垂直居中,利用绝对定位以及transform,适用于不知道元素的宽度和高度。.parent{ position:relative; }.child{ position:relative; top: 50%; transform: translateY(-50%); /*CSS3的新属性*/}2、使用dipla...原创 2018-08-15 17:07:57 · 1174 阅读 · 0 评论 -
面试题之一 —— 手写一个promise
Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。一旦成功就不允许失败,一旦失败就不允许成功。function Promise(excutor) { let self = this self.status = 'pending'...转载 2018-08-13 16:34:02 · 8357 阅读 · 0 评论 -
区别js中两种定时器,setTimeout和setInterval
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。 setTimeout只在指定时间后执行一次,代码如下:<script>//定时器 异步运行function hello(){alert("hello");}//使用方法名字执行方法var t1...原创 2018-09-03 16:33:08 · 850 阅读 · 0 评论