
JS
文章平均质量分 91
function__
宁静致远
展开
-
js防抖和节流
防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者放任不管就容易引起浏览器卡死。所以还是很有必要早点掌握的。(信我,你看完肯定就懂了)从滚动条监听的例子说起先说一个常见的功能,很多网站会提供这么一个按钮:用于返回顶部。这个按钮只会在滚动到距离顶部一定位置之后才出现,那么我们现在抽象出这个功能需求--监听浏览器滚动事件,返回当前滚条与顶部的距离这个需求很简单,直接写:function showTop () { var scrollTop = do.转载 2021-02-22 10:50:20 · 350 阅读 · 0 评论 -
js中=,==,===号的区别
== 和 != 比较若类型不同,先尝试转换类型,再作值比较,最后返回值比较结果。而=== 和 !== 只有在相同类型下,才会比较其值。一."="叫做赋值运算符,用来赋值二. "==="叫做严格运算符。严格运算符的运算规则如下,(1)不同类型值如果两个值的类型不同,直接返回false。(2)同一类的原始类型值同一类型的原始类型的值(数值、字符串、布...原创 2017-02-06 18:14:18 · 519 阅读 · 0 评论 -
javascritp中false、0、空字符串、null和undefined区别
相等运算符 (==、!=) 如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。 NaN 与包括其本身在内的任何值都不相等。 负零等于正零。 null 与 null 和 undefined 相等。 相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。 其他比较均转载 2017-12-28 14:37:22 · 2538 阅读 · 0 评论 -
defer和async的区别
先来试个一句话解释仨,当浏览器碰到 script 脚本的时候:<script src="script.js"></script>没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。<script async src="script.js"&...转载 2018-02-13 14:50:00 · 861 阅读 · 0 评论 -
JS几种数组遍历方式总结
JS数组遍历的几种方式JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比第一种:普通for循环代码如下:for(j = 0; j < arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间第二种:优化版for循环代码如下...转载 2018-03-14 15:25:41 · 243219 阅读 · 14 评论 -
JS如何区分Object与Aarry的六种方法
一、经常遇见的问题:JS中判断一个对象的类型时,通常使用typeof,这时候问题就来了,因为typeof()辨别数组的时候返回的是object,所以JS中判断一个对象是不是数组需要一些特殊的处理方式,下面将介绍个人总结的六种处理方法。二、开门见山开发中要判断一个对象是不是数组,推荐使用下面这个函数:[javascript] view plain copyfunction isArray(obj){...转载 2018-03-27 13:38:06 · 1589 阅读 · 0 评论 -
单线程与多线程的区别
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程...原创 2018-07-02 13:33:12 · 50680 阅读 · 6 评论 -
事件冒泡与事件捕获
事件传递有两种方式:冒泡与捕获。事件传递定义了元素事件触发的顺序。 如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。在 捕获 中,外...原创 2018-07-03 14:52:13 · 815 阅读 · 0 评论 -
Math.round(),Math.ceil(),Math.floor(),toFixed()的区别
1.Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数,看下面几个例子就明白。小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11小数点后第一位>5正数:Math.round(11.68)=12负数:Math.round(-11.68)=-12...原创 2018-08-03 10:46:01 · 2033 阅读 · 0 评论 -
使用charCodeAt()和charAt()方法,根据Unicode 编码,转换字符
1.charCodeAt() 方法charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。2.charAt() 方法charAt() 方法可返回指定位置的字符。请注意,Ja...原创 2018-12-04 14:31:16 · 36178 阅读 · 0 评论 -
setInterval、setTimeout、animation、animate的区别
1.setIntervalsetInterval()方法可按照指定的周期来调用函数或者计算表达式(以毫秒为单位)语法:setInterval(函数表达式,毫秒数);setInterval()会不停的调用函数,直到clearInterval()被调用或者窗口被关闭,由 setInterval()返回的ID值可用作clearInterval()方法的参数。例如:setInter...原创 2018-11-27 17:06:53 · 1705 阅读 · 0 评论 -
slice()、splice()、substring()、substr()、split()、join()的用法与区别
1.JavaScript slice() 方法定义和用法slice() 方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)参数 描述 start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 end 可选。规定...原创 2018-12-18 10:55:51 · 2021 阅读 · 1 评论 -
defaultValue与value、placeholder的区别 (react.js)
1.value某些表单元素的设定值。例如<input> 标签的 value 属性2.defaultValuedefaultValue 属性可设置或返回文本域的默认值。注意: 该默认值是规定于 HTML "value" 属性的值。返回 defaultValue 属性:textObject.defaultValue设置 defaultValue 属性:...转载 2017-05-17 10:22:20 · 20732 阅读 · 1 评论 -
用 async/await 来处理异步
昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了。 先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数async function ...转载 2019-05-16 17:34:25 · 658 阅读 · 0 评论 -
ES6,import时如何正确使用花括号'{ }'
在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。而我们这里要说的是在使用import语法引用模块时,如何正确使用{}。假如有一个B.js,想要通过im转载 2018-01-12 08:47:45 · 12084 阅读 · 2 评论 -
clientHeight、scrollHeight、offsetHeight和scrollTop之间区别
屏幕可见区域高(内容的可视高度,不包括边框,边距或滚动条):document.body.clientHeight正文内容高(整个元素的高度,包括带滚动条的隐蔽的地方):document.body.scrollHeight内容高+padding+边框:document.body.offsetHeight滚动条已经滚动的高度:document.body.scrollTop屏幕分辨率高:原创 2017-09-29 16:36:17 · 1628 阅读 · 0 评论 -
i++和++i 的区别
i++是先把i的值拿来用,然后在自增1++i是想把i自增1然后拿来用如果有表达式 a = i++ 它等价于 a = i ; i = i + 1;如果有表达式 a = ++i 它等价于 i = i + 1; a = i; ++是一个自增运算符,而++i等价于i=i+1。出于语言的简洁性,程序员都是用++i和i++进行自增运算的。而两者的区别就在于先后顺序。可以这样理解:i++原创 2016-12-05 13:59:10 · 1527 阅读 · 0 评论 -
js单引号和双引号区别
单引号和双引号其实没啥区别,看你自己习惯了-------------------不正确-------------------正确双引号中再用双引号要这样:var str = "abc\"def\"ghi"用反斜杠来禁止解析双引号。下面是我摘录的,希望对你有用:在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:IE提示出错后,原创 2017-01-25 16:40:11 · 6044 阅读 · 0 评论 -
js获取url汇总
1,设置或获取对象指定的文件名或路径。alert(window.location.pathname)2,设置或获取整个 URL 为字符串。alert(window.location.href);3,设置或获取与 URL 关联的端口号码。alert(window.location.port)4,设置或获取 URL 的协议部分。alert(win原创 2017-03-30 10:37:27 · 552 阅读 · 0 评论 -
select标签如何设置默认选中的选项
方法有两种。第一种通过的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果。12345 select id = "sel" > option value = "1" >1 option > option value = "2" selected = "selected" >2 option > opti原创 2017-05-08 14:12:02 · 60669 阅读 · 0 评论 -
js判断数据类型
js六大数据类型:number、string、object、Boolean、null、undefinedstring: 由单引号或双引号来说明,如"string"number:什么整数啊浮点数啊都叫数字,你懂的~Boolean: 就是true和false啦undefined:未定义,就是你创建一个变量后却没给它赋值~null: 故名思久,null就是没有,什转载 2017-06-01 11:55:05 · 554 阅读 · 0 评论 -
js对象浅拷贝和深拷贝详解
1.浅拷贝拷贝就是把父对像的属性,全部拷贝给子对象。下面这个函数,就是在做拷贝:var Chinese = { nation:'中国'}var Doctor = { career:'医生'} function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; ...原创 2017-06-06 11:05:36 · 1088 阅读 · 0 评论 -
$(window).width()与window.innerWidth的区别
window.innerWidth能获得什么数据?在自适应设计中,需要用js来判断浏览器宽度,从而调整网页宽度和布局,我一开始用的是window.innerWidth。window.innerWidth能获取当前窗口的宽度(包含滚动条),当浏览器宽度调整时,这个值也会跟着变化。但是,window.innerWidth在IE8浏览器是无效的。所以,需要使用一个代替品,那就是$原创 2017-06-02 14:00:59 · 22948 阅读 · 2 评论 -
es6 扩展运算符 三个点(...)
1 含义扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。[javascript] view plain copyconsole.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5)转载 2017-07-04 14:12:22 · 503 阅读 · 0 评论 -
(function(){...})() 与 (function(){...}())
JS中函数有两种命名方式1、一种是声明式。而声明式会导致函数提升,function会被解释器优先编译。即我们用声明式写函数,可以在任何区域声明,不会影响我们调用。function XXX(){}112、一种是函数表达式函数表达式我们经常使用,而函数表达式中的function则不会出现函数提升。而是JS解释器逐行解释,到了这一句才会解释。因此如果调用在函数表达式之原创 2017-06-14 10:21:00 · 555 阅读 · 0 评论 -
window.open详解
语法window.open(URL,name,features,replace)参数描述URL一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。name一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符原创 2017-07-21 17:39:09 · 1348 阅读 · 0 评论 -
let和var定义变量的区别
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。声明后未赋值,表现相同(function() { var varTest; let letTest; console.log(varTest); //输出undefined console.log(letTest); //输出undefin...原创 2017-01-09 16:05:13 · 19791 阅读 · 3 评论 -
ES6新特性概览
箭头操作符如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=>便有异曲同工之妙。它简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了。请看下面的例子。转载 2017-09-08 16:54:26 · 395 阅读 · 0 评论 -
JS 控制CSS样式表
下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... .orig { display: none; } 你想要改变把他的display属性由none改为inline。 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display =转载 2017-09-29 11:20:29 · 1351 阅读 · 0 评论 -
js获取select标签选中的值
var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index = obj.selectedIndex; // 选中索引var text = obj.options[index].text; // 选中文本var value = obj.options[index].value; // 选中值jQuer转载 2016-12-12 15:56:13 · 887 阅读 · 0 评论