随笔分类 -  Javascript

摘要:一、js的工作原理:引擎、运行时与调用栈概述 JavaScript引擎的一个流行示例是Google的V8引擎。比如,V8引擎用于Chrome和Node.js。 该引擎包括两个主要组件:*内存堆-这是内存分配的地方*调用堆栈-这是代码执行时堆栈帧的位置 运行时 浏览器中有几乎所有JavaScript开 阅读全文
posted @ 2020-01-18 01:11 执白 阅读(373) 评论(0) 推荐(0)
摘要:一、概念 同步(synchronous):指在js的主线程上,所有任务被依次执行; 异步(asynchronous):指任务不进入主线程,进入任务队列(task);当“任务队列”通知主线程,异步任务才进入主线程执行。 二、异步的机制 同步任务都在主线程上执行,形成一个“任务栈”; 异步任务在“任务队 阅读全文
posted @ 2019-04-20 23:51 执白 阅读(228) 评论(0) 推荐(0)
摘要:Learn these core JavaScript concepts in just a few minutes(只需几分钟即可学习这些核心JavaScript概念) 原文地址:https://medium.freecodecamp.org/learn-these-core-javascript 阅读全文
posted @ 2019-04-14 17:16 执白 阅读(157) 评论(0) 推荐(0)
摘要:原文地址:https://blog.sessionstack.com/how-javascript-works-the-building-blocks-of-web-workers-5-cases-when-you-should-use-them-a547c0757f6a How JavaScrip 阅读全文
posted @ 2019-04-07 16:12 执白 阅读(358) 评论(0) 推荐(0)
摘要:call( ) 一、call的使用 call 方法第一个参数是作为函数上下文的对象,第二个参数是一个参数列表。 二、call的作用 1.改变 this 指向 2.借用别的对象的方法 3.调用函数 参考文献:https://github.com/lin-xin/blog/issues/7 阅读全文
posted @ 2019-03-27 13:46 执白 阅读(182) 评论(0) 推荐(0)
摘要:判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in... 遍历属性,为真则为“非空数组”;否则为“空数组” 2.通过 JSON 自带的 stringify() 方法来判断: JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符 阅读全文
posted @ 2019-03-15 15:06 执白 阅读(2697) 评论(0) 推荐(0)
摘要:一、问题 两个字符串看起来一样、类型一样,判断str1==str2时返回false; 二、原因 字符串可能含有其他特殊字符:换行符(%D)、空格(%20)...一般不显示。 三、如何判断 encodeURIComponent(str) 可查看字符串完整内容 四、解决 .replace(/\ +/g, 阅读全文
posted @ 2019-02-27 16:30 执白 阅读(4430) 评论(0) 推荐(0)
摘要:一、冲突 hover和blur都是含有两个函数参数的方法,分别表示事件的两种对立状态的相应方法。 delegate用于处理事件委托等场景,只能传一个函数参数。 冲突:delegate无法完整传入hover和blur的两个函数参数。 二、解决方法 回归hover和blur的本源:用mouseenter 阅读全文
posted @ 2018-12-22 10:31 执白 阅读(389) 评论(0) 推荐(0)
摘要:一、需求描述 做一个进度条长度逐渐减少的动画,当进度条长度小于等于0时,关闭动画,并弹出透明底板显示新提示。 二、问题描述 初始代码如下: 遇到问题: 三、问题解决 首先,导致问题的原因是: animate动画执行有默认时长,即1000(1s),就是第二个参数。 而先前设置的定时器执行时长是50,导 阅读全文
posted @ 2018-12-19 17:23 执白 阅读(1578) 评论(0) 推荐(0)
摘要:一、变量 原有变量: var的缺点: 1.可以重复声明 2.无法限制修改 3.没有块级作用域 新增变量: let :不能重复声明,变量-可以修改,块级作用域 const:不能重复声明,变量-不可以修改,块级作用域 二、箭头函数 原函数: var func = function(args){ aler 阅读全文
posted @ 2018-12-13 20:25 执白 阅读(208) 评论(0) 推荐(0)
摘要:<!--把一个面向过程的程序,改成面向对象的形式--> 一、一个基本的选项卡: 二、面向对象的改造: 1.原则 不能有嵌套函数,但能有全局变量2.过程 onload -> 构造函数 全局变量 -> 属性 函数 -> 方法 3.改错 this,事件,闭包,传参 4.对象与闭包 通过闭包传递this 面 阅读全文
posted @ 2018-12-10 09:36 执白 阅读(486) 评论(0) 推荐(0)
摘要:一、面向对象 二、工厂方式 缺点: 1.没有new 2.函数重复->资源浪费 三、解决new的问题 四、原型prototype 五、类与对象 类:模子 -> Array对象:产品(成品)-> arr 用构造函数来加属性 行间样式用原型来加方法 class以上即是混合模式。 阅读全文
posted @ 2018-12-09 09:39 执白 阅读(170) 评论(0) 推荐(0)
摘要:一、什么是cookie? 页面用来保存信息,如:自动登录、记住用户名 二、cookie的特性1.同一个网站中所有页面共享一套cookie2.数量、大小有限3.有过期时间 三、js中使用cookie document.cookie四、cookie的使用1.设置cookie: 格式:名字=值(多条不会覆 阅读全文
posted @ 2018-12-09 09:24 执白 阅读(350) 评论(0) 推荐(0)
摘要:1.访问/获取节点 document.getElementById(id); //返回对拥有指定id的第一个对象进行访问 document.getElementsByName(name); //返回带有指定名称的节点集合 注意拼写:Elements document.getElementsByTag 阅读全文
posted @ 2018-12-08 08:01 执白 阅读(302) 评论(0) 推荐(0)
摘要:一、当绑定着两个事件的元素里面没有子元素的时候,这两个事件的触发效果是一致的: 二、当绑定事件的元素里面有子元素的时候,鼠标经过绑定mouseover的当前元素以及它里面的子元素的时候,都会触发,而经过绑定mouseenter的元素时,只会在鼠标刚进入的时候触发,当进入其子元素的时候,是不会再触发的 阅读全文
posted @ 2018-12-07 18:51 执白 阅读(243) 评论(0) 推荐(0)
摘要:JSON.parse()【从一个字符串中解析出json对象】 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析对象​ ​JSON.parse(data) 结果是: ​name:"goatling" JSON.stringify()【从一个对象中解析出 阅读全文
posted @ 2018-12-07 15:31 执白 阅读(157) 评论(0) 推荐(0)
摘要:1.JS中的let和var的区别 2.JS如何监听键盘事件(键盘事件的浏览器适应性) 3.键盘按键值对照表是多少? 4.Dom0级 Dom2级区别是什么? 5.css的sprite是什么? 6.js如何遍历树?(发现js树形结构没有相应的库) 7.js如何判定元素类型? 8.localStorage 阅读全文
posted @ 2018-12-04 16:31 执白 阅读(167) 评论(0) 推荐(0)
摘要:方法一: indexOf() (推荐) indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。方法二: search() search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹 阅读全文
posted @ 2018-11-29 22:34 执白 阅读(2645) 评论(0) 推荐(0)
摘要:1. 2. 3.(类似法2) 阅读全文
posted @ 2018-11-29 22:32 执白 阅读(1326) 评论(0) 推荐(0)
摘要:js如何判断值是否是数字 1. isNaN()方法2. 正则表达式var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/3. 利用parseFloat的返回值 isNaN(inputData)不能判断空串或一个空格;如 阅读全文
posted @ 2018-11-29 22:30 执白 阅读(7885) 评论(0) 推荐(0)