JavaScript
文章平均质量分 71
一只野生饭卡丘
这个作者很懒,什么都没留下…
展开
-
JavaScript——for和for in 的性能比较与for循环的优化方案
在JavaScript中,我们遍历数组的时候经常需要用到for和for in。今天来比较一下这两个遍历方法的性能,并提供优化方案。1.for 和for in的性能比较我们都知道,for 和for in的时间复杂度一样,但是其性能有些许差距。具体有多大差距呢,下面我们来看一段代码。<!DOCTYPE html><html><head> <...原创 2018-10-02 19:21:23 · 2647 阅读 · 0 评论 -
JavaScript——实现伪继承的三种方式
JavaScript提供了三种伪继承的方式,分别是prototype实现伪继承、构造器实现伪继承、call()和apply()实现伪继承,这里介绍一下这三种方法。1.prototype实现伪继承JavaScript类的prototype属性代表了该类的原型对象,在默认情况下,JavaScript类的prototype属性值是一个Object类,将JavaScript类的prototype设...原创 2018-10-07 18:57:57 · 481 阅读 · 2 评论 -
JavaScript——this取值的六种情况
相信很多盆友在学习js的时候或者其他语言的时候都会因为this而头疼过一会儿。今天我们来讲讲JavaScript中的this。在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。因为this的取值是执行上下文环境的一部分,每次调用函数,都会产生一个新的执行上下文环境。在JavaScript中,this的取值一共有六种情况,具体是哪六种呢?我们一起来看看。...原创 2018-10-14 15:39:03 · 1782 阅读 · 0 评论 -
JavaScript——JS中的"=="转换规则
我们知道,“=”、“==” 和“===”这三者之间是不一样的。具体怎样的不一样呢?今天来说说“==”的转换规则。下面是一张“==”强制转换规则表。参数类型1 参数类型2 强制转换 null undefined 不转换,总是返回true null或undefined 其它任何非null或undefined的类型 不转换,总是返回false 原始...原创 2018-10-14 16:00:29 · 1196 阅读 · 2 评论 -
JavaScript——局部函数与函数独立性的理解
我们都知道,在JavaScript中,在函数内使用var定义的是局部变量,在函数内没有使用var定义的或者在函数外定义的则是全局变量。如果局部变量和全局变量的变量名字相同,那么局部变量会覆盖全局变量。全局变量只能在函数中访问,而全局变量可以在所有的函数中访问。其实,除了局部变量,还有一个概念叫做局部函数。什么叫布局函数呢?它与局部变量类似,其实就是在一个函数中定义的函数。如下面这段代码:...原创 2018-10-08 13:38:57 · 1059 阅读 · 2 评论 -
JavaScript——类型转换的五种特殊情况及实现方式
今天看了一篇关于类型转换的文章,总结了一下其中的几种情况。Biu~~现在开始起飞~~~1.变量转换var myVar = "3.14159",str = ""+ myVar,// to stringint = ~~myVar, // to integerfloat = 1*myVar, // to floatbool = !!myVar...原创 2018-10-15 01:01:44 · 373 阅读 · 0 评论 -
JavaScript——事件委派之详解
在看代码之前,我们先来了解一下什么叫事件委派。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。换句话说,就是把一个本来让下属干的事情交给上司做了。比如说,鼠标点击事件,本来页面上有很多的鼠标点击事件,需要一个个的去写实现函数,但是如果你把鼠标点击事件交个上司来完成,那么就是你鼠标点击那里的时候,就相当于上司找对应的下属来完成此事件,而不像前面的一...原创 2018-10-15 01:43:10 · 6302 阅读 · 2 评论 -
Javascript中的函数提升和变量提升以及变量作用域
今天复习到js中的函数提升和变量提升,发现这两个小东西很容易搞混淆,我自己一下子也被弄混了,因此写一篇博客来增强一下记忆。我看到的JavaScript代码如下:<script type="text/javascript"> console.log(add(2,5)); function add(a,b) { console.log("执...原创 2018-09-30 00:13:17 · 601 阅读 · 1 评论 -
前端——通过父元素获取同级元素的name属性
今天在写项目的时候需要将一个<img>的name值传送给controller,相应的htmll代码如下:<div class="seller_good"> <a href="#"><img class="shoe_img" id="shoe_img" src="${good_1_pic}" name=&q原创 2018-11-07 00:42:41 · 3580 阅读 · 0 评论 -
杂谈——window_onload=function(){}不执行的原因
今天写一个页面,发现有一部分js代码怎么都没有执行,但是把这段js和body中的代码单独提出来之后又可以运行了。后来才发现是window.onload = function(){}的特性造成的,因为当页面DOM对象加载完毕,web浏览器能够运行JS时,该方法才被触发。也就是说,window.onload是在页面加载完成之后执行的函数,如果你的你页面没有加载完毕,或者说某个东西没有加载出来,...原创 2019-02-21 14:23:24 · 4883 阅读 · 0 评论 -
JavaScript——内嵌函数定义类内方法的弊端以及解决办法(prototype)
由于JavaScript是一门弱语言,函数是它的“一等公民”,定义函数的同时也定义了一个类,这一点和其他强语言不同,定义类内方法也和别的不一样。下面看一段代码。<script type="text/javascript"> // 创建Person函数 function Person(name , age) { this.name = name; this.age =...原创 2018-10-07 17:52:59 · 537 阅读 · 1 评论 -
JavaScript——调用函数的三种方法
上次说了定义函数的三种方式:https://blog.csdn.net/Searchin_R/article/details/82951962这次说一下函数调用的三种方法。JavaScript定义了三种调用函数的方法,分别是 直接调用函数、以call()方法调用函数以及以apply()方法调用函数。下面介绍一下这三种方法。1.直接调用函数这个方法是我们最常用的,也是最普通的方式...原创 2018-10-07 16:17:18 · 1106 阅读 · 1 评论 -
JavaScript——自由变量以及作用域链
切入正题之前,我们先看一段代码~var x=10;function fn(){ console.log(x);}function show(f){ var x=20; (function(){//内部匿名函数不属于当前对象的函数 f(); })();}show(fn)注:(function(){})表示一个匿名函数。functio...原创 2018-10-14 00:54:08 · 415 阅读 · 0 评论 -
JavaScript——for-in的使用以及注意事项
在JavaScript中,我们经常用到for-in,它虽然在有些时候功能与for一样,但它的性能却比for差太多啦。下面先来了解一下for-in。for...in 语句用于对数组或者对象的属性进行循环操作,循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作,因此大多数的时候for-in用来遍历对象,遍历数组建议用for循环。语法:for(变量 in 对象){ ...原创 2018-10-02 20:34:43 · 1240 阅读 · 1 评论 -
Javascript——动态添加div的两种方法
1.使用js添加。 <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <div id=&qu原创 2018-10-11 12:02:15 · 20198 阅读 · 2 评论 -
JavaScript——setTimeout()制作简易计时器
不得不说,setTimeout()是一个非常神奇的东西,我们可以用它来掌控时间,从而达到意想不到的结果。这里先看一下setTimeout()的定义。 定义和用法setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。提示: 1000 毫秒= 1 秒。提示: 如果你只想重复执行可以使用 setInterval() 方法。提示: 使用 clearTimeout...原创 2018-10-03 19:01:24 · 1691 阅读 · 0 评论 -
JavaScript——eval全局作用域的两种实现方式
先认识一下eval():eval() 函数执行表示为字符串形式的JavaScript代码。语法eval(string) 参数string一个字符串表示了一个JavaScript运算式,语句, 或者是一系列语句。运算式可以包括变量和已存在对象的属性。返回值执行指定的代码之后的完整值。如果完整值为空,返回undefinedeval在JavaScript中有两种...原创 2018-10-04 00:18:47 · 1461 阅读 · 1 评论 -
JavaScript——从setTimeout()的执行了解js的单线程和异步
众所周知,JavaScript是单线程的,那么到底什么是单线程呢?今天我们就用setTimeout()举例,看看单线程到底是什么样的。单线程,从名字就能知道,它只有一个主线程。单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。对于js来说,它是一门单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只...原创 2018-10-04 11:05:11 · 1776 阅读 · 0 评论 -
前端——如何用js和setTimeout( ) 实现简易小动画
今天用js制作了一幅海上生明月的图。首先,从网上找一张大海的图片作为背景,如下图:其次,我们再找一张含有月亮的图片,用抠图软件将月亮扣下来,如图:方法实现代码如下: <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; ...原创 2018-09-21 23:19:07 · 1345 阅读 · 0 评论 -
JavaScript——垃圾收集机制
Javascript为了避免内存占用问题,提供了两种策略:第一种是标记清除,第二种是引用计数。1.标记清除(最常用的方法)原理:当变量进入环境时,就将这个变量标记为“进入环境”。从逻辑上讲,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到它们。当变量离开环境时,则将其标记为“离开环境”执行方式:垃圾收集器在运行时给存储在内存中的所有变量都加上标记,然后...原创 2018-10-13 00:41:52 · 276 阅读 · 0 评论 -
JavaScript——undefined与null的区别
undefined类型的值仅有一个,即undefined,该值用于表示某个变量不存在或者没有为其分配值,此外,它还表示对象的属性不存在,该值不属于JavaScript保留字。注:如果定义了一个变量却没有为其赋值,则该变量的值默认为undefined,这个值是系统默认分配的。此外,访问对象并不存在的属性时,该属性也返回undefined。null则用于表示变量的值为空,是JavaScript...原创 2018-10-06 16:23:26 · 422 阅读 · 1 评论 -
JavaScript——定义函数的三种方式
JavaScript是弱类型语言,定义函数时既不需要声明函数的返回值类型,也不需要声明函数的参数类型。JS目前共支持三种函数定义方式,定义命名函数、定义匿名函数、使用Function类匿名函数,这里介绍一下这三种方式。1.定义命名函数这个方法是我们最常用的。语法格式:function functionName(parameter-list){statements}...原创 2018-10-06 16:59:14 · 708 阅读 · 0 评论 -
笔记——setInterval()设置停止和循环
与setTimeout不同,setInterval会无限反复执行。可我非要用setInterval,又想要能让它听我号令,随时停止,要怎么做呢?很简单——只需要把setInterval()赋值给一个变量,然后clearInterval()这个变量即可停止。如下例子:使用一个变量 var timer = setInterval(fun,2000);将setInterval赋值给一...原创 2019-03-19 20:37:03 · 2732 阅读 · 0 评论