JS
文章平均质量分 87
聂一
这个作者很懒,什么都没留下…
展开
-
前端面试题
事件循环js是单线程的,将任务放在主线程中执行,碰到同步任务的时候就直接执行,碰到异步任务的时候就将任务放到异步处理模块中,异步处理模块处理完了以后会把异步任务放到任务队里中,主线程执行完全部任务以后会查看任务队列中是否任务需要执行,有的话就那一个过来执行,又执行完以后主线程又是空的就又去任务队列里面看有没有需要执行的任务,反复这个过程,就叫时间循环(event loop)宏任务和微任务宏任务就是定时器任务,微任务就是promise的then catch finally。代码执行原则是优先执行宏任务原创 2021-02-25 11:22:22 · 148 阅读 · 0 评论 -
JS难点总结
JS作用域作用域就是分为全局作用域和函数作用域,函数作用域只有function才算,if,while那些算是块级作用域,那些里面的变量到最后执行完会被提升为全局变量,还有在作用域里面,一个变量和函数的声明会被提到开头,比如就算在最后一行var一个a=5,也会被拆分成声明和赋值两步,声明的位置会被提升到当前作用域头部,函数也一样,但是函数的提升更领先于变量的声明。JS thisfunction里面的this默认指向window,这是默认绑定。写在对象里面的this默认指向这个对象,这是隐式绑定。用b原创 2020-12-08 12:41:10 · 1045 阅读 · 0 评论 -
正则表达式
2020年10月18日真是痛苦的一天正则表达式概述正则表达式特点创建正则表达式利用 RegExp对象来创建 正则表达式var regexp = new RegExp(/123/);利用字面量创建 正则表达式var rg = /123/;测试正则表达式rg.test(123)正则表达式中的特殊字符边界符用来提示字符所处的位置,主要有两个字符如果^$在一起则表示精确匹配// 边界符 ^ $ var rg = /abc/; // 正则表达式里面不需要原创 2020-10-18 22:42:16 · 186 阅读 · 0 评论 -
递归、拷贝
2020年10月18日真是痛苦的一天递归概念如果一个函数在内部可以调用其自身,那么这个函数就是递归函数简单理解:函数内部自己调用自己,这个函数就是递归函数作用和循环效果一样措施由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return案例:递归求阶层<script> // 利用递归函数求1~n的阶乘 1 * 2 * 3 * 4 * ..n function fn(n) { if (原创 2020-10-18 21:07:22 · 494 阅读 · 0 评论 -
严格模式、高阶函数、闭包
2020年10月18日真是痛苦的一天严格模式概述JS除了提供正常模式外,还提供了严格模式。ES5的严格模式是采用具有限制性JS变体的一种方式,即在严格的条件下运行JS代码(IE10)JS语义更改开启严格模式严格模式可以应用到整个脚本或个别函数中。因此在使用时,我们可以将严格模式分为为脚本开启严格模式和为函数开启严格模式两种情况为脚本开启严格模式为整个脚本文件开启严格模式,需要在所有语句之前放一个特定语句"use strict";(或'use strict';)<script&g原创 2020-10-18 15:09:03 · 192 阅读 · 0 评论 -
JS函数声明调用、this指向转移函数
2020年10月17日真是痛苦的一天原创 2020-10-18 00:18:40 · 307 阅读 · 2 评论 -
ES5新增数组方法foreach()、filter()、some(),字符串方法trim(),对象方法Object.keys()、Object.defineProperty()
2020年10月17日真是痛苦的一天数组方法迭代(遍历)方法forEach()array.forEach(function(currentValue,index,arr))currentValue数组当前项的值index数组当前项的索引arr数组对象本身<script> // forEach 迭代(遍历) 数组 var arr = [1, 2, 3]; var sum = 0; arr.forEach(funct原创 2020-10-17 20:34:40 · 363 阅读 · 0 评论 -
构造函数、原型链、继承
2020年10月17日真是痛苦的一天构造函数概述在ES6之前,对象不是基于类创建的,而是用一种称为构造函数和特殊函数来定义对象和它们的特征构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new一起使用。我们可以把对象中一些公共的属性和方法抽出出来,然后封装到这个函数里面在JS中,使用构造函数要注意以下两点:构造函数用于构建某一类对象,其首字母要大写构造函数要和new一起使用才有意义new在执行时会做四件事情在内存中创建一个新的空对象让this指向这个新转载 2020-10-17 15:41:32 · 197 阅读 · 0 评论 -
面向对象编程
2020年10月15日真是痛苦的一天面向对象编程介绍两大编程思想面向过程面向对象面向过程编程POP面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了面向对象编程OOP面向对象是吧失误分解成为一个个对象,然后由对象之间分工与合作在面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工面向对象编程具有灵活、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目面向对象的特性封装性继承性多态性面原创 2020-10-17 13:18:26 · 167 阅读 · 0 评论 -
移动click延时、Swiper插件、本地存储
2020年10月15日真是痛苦的一天移动click延时解决原因移动端双击屏幕会缩放页面解决方案禁用缩放<meta name= "viewport" content="user-scalable=no">利用touch事件封装事件解决原理当我们手指触摸屏幕,记录当前触摸时间当我们手指离开屏幕,用离开的时间减去触摸的事件如果时间小于150ms,并且没有滑动过屏幕,那么我们就定义为点击使用插件。fastclick插件解决300ms延迟GitHub官方地址Swiper原创 2020-10-15 20:07:04 · 244 阅读 · 0 评论 -
移动端轮播图、classList属性
2020年10月15日真是痛苦的一天移动端轮播图要求 // 1. 获取元素 var focus = document.querySelector('.focus'); var ul = focus.children[0]; // 获得focus 的宽度 var w = focus.offsetWidth; var ol = focus.children[1]; // 2. 利用定时器自动轮播图图片 var index = 0; va原创 2020-10-15 14:39:33 · 267 阅读 · 0 评论 -
移动端事件、对象
2020年10月14日真是痛苦的一天触屏事件原创 2020-10-15 12:02:20 · 360 阅读 · 0 评论 -
焦点轮播图
2020年10月13日真是痛苦的一天轮播图功能需求原创 2020-10-14 18:56:33 · 239 阅读 · 0 评论 -
返回顶部、筋斗云
2020年10月14日真是痛苦的一天原创 2020-10-14 16:29:55 · 211 阅读 · 0 评论 -
JS动画函数封装
2020年10月12日真是痛苦的一天动画函数动画实现原理setInterval()//不断移动盒子位置实现步骤获取盒子当前位置让盒子在当前位置加上1个移动距离利用定时器不断重复这个操作加一个结束定时器的条件注意此元素需要添加定位,才能使用element.style.left<body> <div></div> <script> var div = document.querySelector('div原创 2020-10-12 23:29:15 · 868 阅读 · 1 评论 -
元素可视区client系列、元素滚动scroll系列
2020年10月12日真是痛苦的一天原创 2020-10-12 15:56:47 · 228 阅读 · 0 评论 -
元素偏移量offset系列
2020年10月11日真是痛苦的一天元素偏移量offset系列offset概述offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(便宜)、大小等获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不带单位offset系列常用属性offset与style区别案例:获取鼠标在盒子内的坐标<body> <div class="box"></div> <scrip原创 2020-10-12 11:33:10 · 1240 阅读 · 0 评论 -
JS执行机制、(location,navigator,histiory)对象
2020年10月10日真是痛苦的一天JS执行机制JS是单线程同步和异步同步异步同步任务同步任务都在主线程上执行,形成一个执行栈异步任务JS的异步是通过回调函数实现的一般而言,异步任务有以下三种类型:普通事件,如click、resize等资源加载,如load、error等定时器,包括setTimeout、senInterval等异步任务相关回调函数添加到任务队列中(任务队列也称为消息队列)JS执行机制先执行执行栈中的同步任务异步任务(回调函数)放入任务队列中一旦原创 2020-10-10 16:14:16 · 201 阅读 · 1 评论 -
BOM概念、(窗口,窗口大小,定时器)事件、回调函数、this指向
2020年10月10日真是痛苦的一天BOM概述什么事BOMBOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是windowBOM由一系列相关的对象构成,并且每个对象都提供了很多方法和属性BOM缺乏标准,JS语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是网景公司浏览器标准的一部分DOM和BOM对比BOM的构成BOM比DOM更大,它包含DOMwindow对象的常见事件窗口加载事件wind原创 2020-10-10 12:56:20 · 300 阅读 · 0 评论 -
DOM事件(流、注册、删除、对象、委托)、鼠标(键盘)事件
2020年10月9日真是痛苦的一天原创 2020-10-09 16:16:53 · 252 阅读 · 0 评论 -
DOM自定义属性、节点操作
2020年10月8日真是痛苦的一天H5自定义属性自定义属性目的为了保存并使用数据,有些数据可以保存在页面中而不用保存到数据库中。设置H5自定义属性H5规定自定义属性data开头做为属性名并且赋值获取H5自定义属性dataset是一个集合,里面存放了所有以data-开头的自定义属性,只支持ie11以上若出现data-list-name=‘andy’这种自定义属性,则data.listName引用(驼峰命名)节点操作获取元素通常使用两种方式1.利用DOM提供的方法获取元素docum原创 2020-10-08 18:17:08 · 680 阅读 · 0 评论 -
DOM案例、操作元素属性
2020年10月6日真是痛苦的一天排他思想(算法)点击图片则当前网页背景换成该图片经过表格某行背景变色表单全选取消全选案例操作元素的属性值获取元素属性值的两种方式区别设置属性值区别移除元素属性值Tab栏切换案例(重点)...原创 2020-10-07 15:53:59 · 129 阅读 · 0 评论 -
Web APIs DOM
2020年9月29日真是痛苦的一天WebAPIWeb APIs 和 JS 基础关联性APIWeb APIDOMDOM定义DOM树获取页面元素方式ID以本身形式返回,CLASS以伪数组形式返回①根据ID获取②根据标签名获取③通过HTML5 新增的方法获取(IE9以上支持)document.getElementByClassName(‘类名’);根据类名获得某些元素集合document.querySelector(‘选择题’);根据指定选择题返回第一个元素对象原创 2020-10-05 23:27:45 · 126 阅读 · 0 评论 -
JS内置对象、简单类型和复杂类型
2020年9月27日真是痛苦的一天内置对象内置对象概念JS语言自带的一些对象,这些对象供开发者使用,并提供一些常用的或是最基本而必要的功能(属性和方法)Math对象Math.random()获取[0,1)之间随机数字日期对象Date方法的使用日期对象方法获得总的毫秒数(时间戳)毫秒换算时间...原创 2020-09-27 21:38:15 · 177 阅读 · 0 评论 -
JS作用域、预解析、对象
2020年9月25日真是痛苦的一天1.作用域作用域概念①全局作用域:整个script标签或者是一个单独的JS文件②局部作用域:在函数内部为局部作用域,代码只在函数内部起作用③ES5还没有块级作用域,ES6才有。(在if、for后{}内的变量的作用域,现阶段外面还可以调用里面的变量)变量的作用域①全局变量②局部变量从执行效率看全局变量和局部变量作用域链预解析预解析机制对象对象的概念为什么需要对象创建对象的三种方式①利用字面量创建对象②利用new Objec原创 2020-09-27 15:48:47 · 112 阅读 · 0 评论 -
JS函数
2020年9月24日真是痛苦的一天函数函数的概念函数:封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。函数的使用函数在使用时分为两步:声明函数和调用函数。声明函数调用函数函数的封装函数的参数形参和实参(多个参数之间用逗号隔开,形参可以看作是不用声明的变量)形参和实参个数不匹配的问题函数的返回值①return 语句之后的代码不被执行②return只能返回一个值,如果用逗号隔开多个值,以最后一个为准③如果要返回多个值可以用数组的形式④如果没有原创 2020-09-24 23:12:15 · 190 阅读 · 0 评论 -
JavaScript初识
2020年9月20日真是痛苦的一天原创 2020-09-20 20:41:13 · 152 阅读 · 0 评论