
javascript
js相关内容
alihlz_39337506
这个作者很懒,什么都没留下…
展开
-
javascript 类数组转数组的五种姿势
什么是类数组拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)varaDivs=document.querySelectorAll('div');//类数组functionhello(){console.log(arguments);//类数组console.log(arguments...原创 2020-04-09 14:03:52 · 295 阅读 · 0 评论 -
ES6中export和import详解
1.Export模块是独立的文件,该文件内部的所有的变量外部都无法获取。如果希望获取某个变量,必须通过export输出,// profile.jsexport var firstName = 'Michael';export var lastName = 'Jackson';export var year = 1958;或者用更好的方式:用大括号指定要输出的一组变量...原创 2020-04-09 10:44:43 · 532 阅读 · 0 评论 -
ES6-对象解构与数组解构
1.对象解构//原始获取对象属性时的写法,需要不停的声明变量来获取const Asher = { name: 'Asher Zhang', age: 5, family: { mother: 'North Zhang', father: 'Richard Zhang', brother: 'Howard Zhang'...原创 2020-04-09 10:20:52 · 512 阅读 · 0 评论 -
ES6 动态计算属性名
在ES5之前,如果属性名是个变量或者需要动态计算,则只能通过 对象.[变量名] 的方式去访问。<script type="text/javascript"> var p = { name : '李四', age : 20 } var attName = 'name'; console.log(p[attName]) ...原创 2020-04-08 18:24:01 · 200 阅读 · 0 评论 -
理解js防抖和节流
在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。resize 对浏览器窗口调整大小函数防抖函数防抖(debounce):当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执...原创 2020-04-07 11:38:55 · 188 阅读 · 0 评论 -
js检测数据类型四种办法
typeof类型检测 作用:用于判断一个一个表达式,(对象或者原始值),返回一个字符串。var a;var b=null;var c=true;var d=1;var e='s';var f=[1,2];var g={name:'kk'};var h=function(){};var i=new h();console.log(typeof(a...原创 2020-04-02 14:44:13 · 1259 阅读 · 0 评论 -
js 数组sort, 多条件排序
Array.sort();sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序。一般用法:(数组元素从小大进行排序) 1 2 vara = [9, 6, 5, 7, 11, 52, 15]; a.sort(function(returna-b;)); sort()方法,接收了一个函数作为参数时...原创 2020-04-01 22:55:58 · 3739 阅读 · 0 评论 -
js实现数组去重简洁代码(filter,Set,reduce,Map)
1、通过filter实现数组去重filter中传入的函数有三个参数。第一个item表示当前元素的值,第二个index表示当前元素的索引值,第三个self表示当前元素属于的数组对象。vararr = [2,4,3,3,4,2,3,254,234,4];functionunique(arr) {returnarr.filter((item, index, self) =&...原创 2020-04-01 18:19:53 · 901 阅读 · 0 评论 -
理解ES6,新增数据结构Set的用法
ES6 提供了新的数据结构 Set。特性似于数组,但它的一大特性就是所有元素都是唯一的,没有重复。我们可以利用这一唯一特性进行数组的去重工作。单一数组的去重。let set6 = new Set([1, 2, 2, 3, 4, 3, 5])console.log('distinct 1:', set6)结果:distinct 1: Set { 1, 2, 3, 4...原创 2020-04-01 10:46:21 · 200 阅读 · 1 评论 -
理解Array.prototype.slice.call()方法详解
JavaScript中的Array.prototype.slice.call(arguments)能将有length属性的对象转换为数组(特别注意: 这个对象一定要有length属性). 但有一个例外,IE下的节点集合它不能转换(因为IE下的dom对象是以com对象的形式实现,js对象和com对象不能进行转换)首先,我们来看看JavaScript中的slice用法, 在JavaScript中A...原创 2020-03-31 21:21:57 · 6543 阅读 · 3 评论 -
面试官问:面试题之 JS 篇
1.闭包理解父函数将子函数作为返回值,再将子函数赋值给一个变量,所以子函数会存在于内存中,而子函数依赖于父函数存在,所以父函数也会存在于内存中,也就不会被垃圾回收机制回收。Js高级程序中解释为:有权访问另一个函数作用域中的变量的函数let val = 7function createAdder() {function addNumbers(a, b) {...原创 2020-03-31 18:22:57 · 444 阅读 · 0 评论 -
jsonp的原理与实现
概述 动态创建script标签,因为script标签是没有同源策略限制,可以跨域的jsonp是一种跨域通信的手段,它的原理其实很简单:首先是利用script标签的src属性来实现跨域。通过将前端方法作为参数传递到服务器端,然后由服务器端注入参数之后再返回,实现服务器端向客户端通信。由于使用script标签的src属性,因此只支持get方法2、实现流程1)、设定一个s...原创 2020-03-31 15:49:05 · 296 阅读 · 0 评论 -
js获取对象长度和名称
1.对象的长度不能用.length获取,用js原生的Object.keys可以获取到var obj = {'name' : 'Tom' , 'sex' : 'male' , 'age' : '14'};var arr = Object.keys(obj);console.log(arr); // ['name','sex','age']console.log(arr.len...原创 2020-03-31 15:22:12 · 194 阅读 · 0 评论 -
理解js中==和===、Object.is()区别
简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢,这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false.操作数1 == 操作数2,操作数1 === 操作数2比较过程: 双等号==: (1)...原创 2020-03-31 09:01:30 · 167 阅读 · 0 评论 -
JavaScript深入系列之浮点数精度
前言0.1+0.2是否等于0.3作为一道经典的面试题,已经广外熟知,说起原因,大家能回答出这是浮点数精度问题导致,也能辩证的看待这并非是ECMAScript这门语言的问题,今天就是具体看一下背后的原因。数字类型ECMAScript中的Number类型使用IEEE754标准来表示整数和浮点数值。所谓IEEE754标准,全称IEEE二进制浮点数算术标准,这个标准定义了表示浮点数的格式等内容...原创 2020-03-30 19:42:59 · 296 阅读 · 0 评论 -
前端同学经常忽视的一个 JavaScript 面试题
题目functionFoo() {getName=function() { alert(1); };returnthis;}Foo.getName=function() { alert(2);};Foo.prototype.getName=function() { alert(3);};vargetName=f...原创 2020-03-30 15:29:25 · 203 阅读 · 0 评论