JavaScript
文章平均质量分 84
peakFeng116
不积跬步无以至千里...一个不会写文案的理财规划师不是好程序猿
展开
-
初中级面试宝典
1. 数据类型判断数据类型的方法:typeof、instanceof、Object.prototype.toString.call( )、isArraytypeof: 可以区分Number、String、Boolean、Undefined、Function; 不能区分普通对象、数组、nulltypeof [ ] => object、typeof null => object(检测不了null, 是javascript设计上的缺陷)instanceof: 专门用检测对象的数据类型原创 2021-10-27 17:40:36 · 235 阅读 · 1 评论 -
script标签有多少种属性,你知道吗?
先思考一下,问自己几个问题script标签中 integrity属性的作用crossorigin 属性如何携带凭据?defer属性的作用,defer属性加载的脚本执行顺序如何?async属性的作用,async属性加载的脚本执行顺序如何?JS动态加载脚本前,如何让浏览器预加载?将javaScript插入HTML中主要的方式是使用async: 可选。表示立即开始下载脚本,但不能阻止页面其它的动作,比如下载资源或等待其它脚本加载。只对外部脚本文件有效。在外部js文件加载完成之后,如果浏览器空闲,原创 2021-06-12 20:59:50 · 1249 阅读 · 3 评论 -
《javascript高级程序设计》核心知识总结
摘要js基本的数据类型和关键点变量,作用域和内存问题垃圾回收机制面向对象的程序设计实现类与继承的经典方式BOM和DOM对象DOM扩展与高级API介绍高级编程技巧跨文档消息传递和ajax封装web worker基本实现与demo一. Number类型关键点讲解1.进制问题1.八进制字面量在严格模式下无效,会导致支持该模式的js引擎抛出异常2.十六进制字面量的前两位必须是0x,后根任何十六进制数字(0-9及A-F)3.在进行算术计算时,所有以八进制和十六进制表示的数值最终将被转载 2021-06-09 11:22:26 · 581 阅读 · 0 评论 -
快速了解javascript中的offset、client、scroll
先上图,俗话说的好:一图顶千言。图片可以清楚直观的看到每个属性各自代表的偏移量位置。1.offset假设 obj 为某个 HTML 控件。obj.offsetTop:指obj相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,单位:像素。offsetTop = offsetParent的padding - top + 中间元素的offsetHeight + 当前元素的margin - topobj.offsetLeft:指obj相对于版面或由 offsetParen原创 2021-06-08 23:15:01 · 112 阅读 · 3 评论 -
浅谈js执行上下文
1.基本概念什么是执行上下文?当函数在运行的时候,会创建一个执行环境,这个执行环境就叫执行上下文(execution context).数据是如何存储的?在执行上下文中会创建一个变量对象(variable object),基础数据类型的变量名和值会保存在变量对象中,引用类型的值保存在堆中,变量对象中存储的是内存地址,内存地址指向堆中具体的值,我们可以通过操作对象的引用地址来操作对象.基础数据类型和引用数据类型分类:基本数据类型有7种,分别是Undefined、Null、Boolean、N.原创 2021-06-05 23:09:47 · 233 阅读 · 0 评论 -
这个游戏你玩过吗?原生js实现
原生js写个贪吃蛇玩玩,具体代码如下: /* 地图类*/ (function() { // 地图构造函数 需要三个参数 宽高背景色 function Map(width,height,bgColor){ this.width = width; this.height = height; this.bgColor = bgColor; } // 将公共方法创建到原型对象上原创 2021-04-07 23:46:39 · 85 阅读 · 1 评论 -
原生JS实现钟表
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <title>Title</title> <style> * { list-style: none; } ...原创 2019-12-25 22:40:21 · 180 阅读 · 0 评论 -
1.5万字概括ES6全部特性
前言第三次阅读阮一峰老师的《ES6标准入门》了,以前阅读时不细心,很多地方都是一目十行。最近这次阅读都是逐个逐个字来读,发现很多以前都没有注意到的知识点,为了方便记忆和预览全部ES6特性,所以写下本文。以下提到的《ES6标准入门》统一使用《ES6》这个名称来代替,而最新的ES6版本也是截止到当前的ES2019本文的知识点完全是参考或摘录《ES6》里的语句,有部分语句为了方便理解和记忆,进行了......转载 2019-12-22 01:25:51 · 177 阅读 · 0 评论 -
new关键字做了什么及实现自定义new
new 关键字做了什么1.调用函数2.创建一个新的对象,把实例对象的隐式原型指向构造函数的显式原型3.改变 this 指向,把 this 绑定在实例对象上 4.返回一个对象,如果构造函数本身返回的是一个对象,那么就返回这个对象,如果不是就返回这个实例对象自定义实现 new 关键字function _new(fn,...args){ const obj=Object.create...原创 2019-12-05 13:08:52 · 363 阅读 · 0 评论 -
数组常用排序(冒泡,快排)
快速排序 function quickSort(array){ //保存数组的长度提高效率 const len = array.length; //数组长度小于等于1时,把结果return出去 if(len <= 1) return array; let left = []; ...原创 2019-09-30 13:33:49 · 195 阅读 · 0 评论 -
数组扁平化(降维)
方法一,利用正则表达式 let arr1 = [2,3,[5,6,[21,25,17],[[[9,10]]]]]; const josnStr = JSON.stringify(arr1); const newArr = josnStr.replace(/(\[|\])/g,'').split(',');方法二,循环遍历,递归调用 //初始化一个空数组...原创 2019-09-29 10:28:56 · 163 阅读 · 0 评论 -
javascript中top、clientTop、scrollTop、offsetTop的讲解
javascript中top、clientTop、scrollTop、offsetTop的讲解scrollHeight: 获取对象的滚动高度。**scrollLeft:**设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离**scrollTop:**设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离**scrollWidth:**获取对象的滚动宽...原创 2019-08-10 13:31:27 · 354 阅读 · 0 评论 -
经典面试题:undefined和null的区别
Undefined和null的区别null是空,undefined是未定义,找不到null一般在以下3种情况出现:1,作为函数的参数,表示该函数的参数不是对象,需要传递参数,但是我们暂时不想传递或者不需要传递,那么我们可以传一个空对象null,例如:对象名(null,null)ajax有个方法send(),send方法参数是你要向服务器传递的值,但是get方法是在地址栏拼接值,所以不需要s...原创 2019-08-15 14:37:56 · 2143 阅读 · 0 评论 -
JS 获取当前选中li标签的下标
点击li标签,获取到当前选中li标签的下标//方法一:给li元素扩展一个自定义属性index,保存它的下标,js目前没有方法获取到子元素在它父级中的下标 for(var i=0;i<list.length;i++){ list[i].index=i; list[i].onclick=function () { ...原创 2019-08-29 15:14:03 · 3614 阅读 · 0 评论 -
原生JS封装transform函数
分享一个原生JS封装的函数,设置和获取transform属性function transform(ele,prop,value) {//如果当前元素是对象,并且该元素没有transform属性,那就给该元素扩展一个transform属性if(typeof ele ==="object" && typeof ele["transform"] === "undefined"){...原创 2019-09-03 23:28:02 · 522 阅读 · 0 评论 -
setTimeout经典面试题
分享一个关于setTimeout的面试题,话不多说,直接上代码,关键点会有详细备注题目代码如下:for(var i=0; i<5; i++){ setTimeout(function() { console.log(new Date,i);//输出结果5,5,5,5,5 }) } ...原创 2019-09-06 01:27:02 · 1058 阅读 · 0 评论 -
闭包的作用及概念
1. 如何产生闭包?当一个嵌套的内部函数引用了嵌套的外部函数的变量(函数)时, 执行外部函数就产生了闭包. 通过chrome开发者工具调试查看到。一个包含被引用的局部变量的closure“对象”,存在嵌套的内部函数中2. 闭包到底是什么?使用chrome调试查看理解一: 闭包是嵌套的内部函数(绝大部分人)理解二: 包含被引用变量(函数)的对象closure(极少数人)注意: 闭包...原创 2019-09-25 21:25:57 · 167 阅读 · 0 评论 -
原型与原型链
1.原型是什么?原型指的是原型属性:prototype:所有函数都有prototype属性, prototype属性的值是对象。这个对象叫原型对象。(显示原型)这个原型对象上默认有两个属性:**constructor:**指向函数本身proto : Object. prototype(大写的Object原型对象)proto(隐式原型):所有实例对象都有__ proto__ ...原创 2019-09-25 21:53:42 · 92 阅读 · 0 评论 -
数组去重(利用对象属性不能同名)
//该方法要比indexOf性能好 console.time(); const arr = [2,5,6,5,2,8,9]; const obj = {}; for (let i = 0; i < 100000; i++) { arr.push(Math.round(Math.random()*10000...原创 2019-09-28 21:43:59 · 253 阅读 · 0 评论 -
前端十大算法
排序算法说明(1)排序的定义:对一序列对象根据某个关键字进行排序;输入:n个数:a1,a2,a3,…,an输出:n个数的排列:a1’,a2’,a3’,…,an’,使得a1’再讲的形象点就是排排坐,调座位,高的站在后面,矮的站在前面咯。(3)对于评述算法优劣术语的说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出...转载 2019-08-13 18:36:02 · 1180 阅读 · 0 评论