随笔分类 - JavaScript
【JavaScript】null和 undefined 的区别是什么?
摘要:面试被问到,不是很会,学习下。 区别 null 表示没有对象(空对象指针),转化为数值时为 0 ,这也是为什么 typeof null 返回 object 的原因。 console.log(Number(null)) // 0 console.log(typeof null) // object u
【JavaScript】原型与原型链
摘要:原型 pototype 每个函数都有一个 prototype 属性,函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型 。 每一个 JavaScript 对象(null 除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原
【JavaScript】去重
摘要:ES6 Set function unique(arr) { return Array.from(new Set(arr)) } let arr = [1, 2, 3, 4, 5, 1, 2, 3] console.log(unique(arr)) // [1, 2, 3, 4, 5] 当前项和剩余
【JavaScript】ES6常用知识汇总
摘要:##ES6模块化如何使用,开发环境如何打包? ###1.模块化的基本语法 /* export 语法 */ // 默认导出 export default { a: '我是默认导出的', } // 单独导出 export function fn1() { console.log('我是函数1') } e
【JavaScript】Ajax简单封装
摘要:##什么是Ajax? AJAX 是异步的 JavaScript 和 XML(Asynchronous JavaScript And XML)。简单点说,就是使用 XMLHttpRequest 对象与服务器通信。 它可以使用 JSON,XML,HTML 和 text 文本等格式发送和接收数据。AJAX
【JavaScript】通用事件监听(支持代理)函数
摘要:##原理实现 此函数能够满足普通事件绑定和事件代理,什么是事件代理?因为DOM树形结构的原因,js绑定事件会触发冒泡机制,既在不阻止冒泡的情况下,会触发父元素绑定的事件,因此可以利用此机制来实现事件代理,父节点绑定事件,子节点(e.target)触发,这样可以减少代码量,使结构更加清晰。 ##代码实
【JavaScript】函数节流与函数防抖
摘要:函数节流(throttle) 函数节流:在指定的间隔时间内只执行一次 有个需要频繁触发函数,出于优化性能角度,在规定时间内,只让函数触发的第一次生效,后面不生效。 比如下面的例子,在不加函数节流的时候,每当滚动条滚动的时候都会触发一次,造成大量的性能浪费 // 未添加节流函数 document.on
【JavaScript】基础知识题(下)异步&单线程、其他
摘要:##同步和异步的区别是什么?分别举一个同步和异步的例子 同步会阻塞代码执行,而异步不会,具体参考我的这篇关于JavaScript Event Loop的博客 比如:alert 是同步;setTimout 是异步 ##前端使用异步的场景有哪些? 定时任务:setTimeout、setInverval
【JavaScript】基础知识题(中)作用域、闭包
摘要:##说一下对变量提升的理解 JS的变量提升主要从两方面来说,变量定义、函数声明,二者都是把对应的内容放到对应定义时的执行环境的顶部,然后JS再开始往下依次解释(注意:函数声明的提升权重大于变量提升) // 函数b和函数c的声明被放到了顶部 // var a // var c console.log(
【JavaScript】基础知识题(上)数据类型、原型、继承
摘要:##JS中使用typeof能够得到的哪些类型? undefined、string、number、boolean、object、function 注意:js中对函数使用typeof返回的是function console.log(typeof undefined) // undefined conso
【JavaScript】深拷贝
摘要:为了实现一个函数 clone ,可以对 JavaScript 中 5 种主要的数据类型 (包括 Number、 String 、 Object、 Array、 Boolean )进行值(深)复制。 ###思路解释 首先根据题意要对5种数据类型进行深拷贝,那么就必须首先进行判断其为数据类型,使用ins
【JavaScript】加密号码将中间四位改为*
摘要:在实习的项目中,发现要对用户提交的手机号码进行加密显示,百度后,总结了以下四种方法(参考): 利用数组splice,split,join方法 var tel = 18810399133 tel = '' + tel var ary = tel.split('') ary.splice(3, 4, '
【JavaScript】Event Loop 事件循环
摘要:##单线程模型 单线程模型指的是,JavaScript只能在一个线程上运行,也就是说只能同时指向一个任务,其他任务都必须在后面排队等待。**注意:**虽然JavaScript只在一个线程上运行,但并不代码JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只能在
【JavaScript】MutationObserver 观察者构造函数用法
摘要:##1.MutationObserver() 创建并返回一个新的 MutationObserver 它会在指定的DOM发生变化时被调用。DOM 规范中的 MutationObserver() 构造函数——是 MutationObserver 接口内容的一部分——创建并返回一个新的观察器,它会在触发指
【JavaScript】jsonp 跨域
摘要:##什么是同源策略? 同源策略是指在Web浏览器中,允许某个网页脚本访问另一个网页的数据,但前提是这两个网页必须有相同的URI、主机名和端口号,一旦两个网站满足上述条件,这两个网站就被认定为具有相同来源。此策略可防止某个网页上的恶意脚本通过该页面的文档对象模型访问另一网页上的敏感数据。同源策略对We
【JavaScript】最基础的模块导出方案
摘要:通过匿名闭包函数可以解决模块导出中的同名问题,但存在代码复用的问题(无法再次使用函数内的代码,通过导出对象就完美解决了以上问题 1 // 模块化最基本导出原理 2 var module = (function () { 3 var fun = function () { 4 alert('模块导出'