![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
monikaH
这个作者很懒,什么都没留下…
展开
-
js 中 clientHeight、scrollHeight 等获取的高度的区别和使用
1、 clientHeight在盒模型中,代表元素的高度加内边距。语法:var elmnt = document.getElementById("content");element.scrollHeight;2、scrollHeight 代表元素的像素高度,值等于该元素在不使用滚动条的情况下为了适应视口中所用内容所需的最小高度不包含外边距(margin)、边框(border)使用场景:比如同一区域,一个标题和摘要,默认标题1行摘要2行,当标题超过2行,摘要就一行。css 标题样式:m原创 2022-04-22 14:39:13 · 1175 阅读 · 0 评论 -
拷贝对象(深拷贝,浅拷贝)
a 1 = [{a:1},{b:1} ]或者 [1,2,3]Typeof(数组a1),// “Object”A1 instanceof Arrray //true 所谓的浅拷贝和深拷贝:浅拷贝是在在拷贝过程中,遍历时那部分为对象/数组类型指向原来的地址,而深拷贝,则是完全开辟新的内存地址。浅拷贝:对拷贝对象的引用,不是本身① For (var I in obj) 最后用var CloneObj= simpClone(拷贝对象obj)② Object.assign( {目标}, 源o原创 2020-07-21 16:05:28 · 390 阅读 · 0 评论 -
数组原型上面的方法有哪些,哪些是可以改变数组的,哪些是不可以的?
改变原数组的方法:ES5:splice() 可删除从 index 处开始的零个或多个元素sort()pop() 删除尾部元素,返回删除的值push() 数组尾部添加,返回新数组长度shift() 数组头部元素删除,返回删除元素unshift() 数组头部增加, 返回新数组长度reverse()ES6:copyWithin()fill不改变原数组的方法:ES5:slice、join、toLocateString、toStrigin、cancat、indexOf、las原创 2020-07-09 23:06:36 · 494 阅读 · 0 评论 -
event loop事件队列的简单理解
因为js是单线程,但是在js中有同步事件,还有一些异步操作等,那么执行顺序是怎样的?这就涉及到一个事件队列,用来存储待执行的事件。event loop分为三个重要组成部分:调用栈(call stack): 将函数事件压入栈中,执行完该事件,从栈中弹出。微任务队列(microtask Queen):异步任务的promise的回调函数会被放入微任务队列中。微队列也叫jobs宏任务队列(macrotask): 包含 setTimeout 、setInterval。宏队列也叫tasksjs引擎在执行过原创 2020-05-10 23:23:48 · 743 阅读 · 0 评论 -
js事件机制 相关
JavaScript 事件机制描述的是事件在 DOM 里面的传递顺序,以及我们可以对这些事件做出如何的响应一、事件监听:事件监听函数:addEventListener( 事件名,callback,监听阶段)用于向指定元素添加事件句柄。第三个参数值为布尔型,当处于事件捕获阶段监听为true,冒泡阶段监听为false。移除事件监听:removeEventListener(事件名,callb...原创 2020-05-07 00:07:55 · 179 阅读 · 0 评论 -
js中闭包的简单介绍
在js中,函数内部可以直接读取全局变量。在函数外部无法读取函数内部的局部变量。通过闭包,可以在函数外面访问到内部变量的函数。一、了解闭包① 闭包定义和用法:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包。② 表现形式:函数外部能够调用函数内部定义的变量③ 变量的作用域: 全局变量和局部变量。函数内部申明变量...原创 2020-05-05 10:43:53 · 205 阅读 · 0 评论 -
js中和对象相关的操作(判断类型,是否有属性。。)
1.判断一个对象上是否有某属性① 通过点. 或者方括号[]let test = { name: ‘he’ } test.name , test[‘name’] // 都会输出he。当属性不存在会返回undefinedtest[‘toString’] // ƒ toString() { [native code] } 原型链上有的toString方法,也能返回② in ...原创 2020-05-03 23:03:54 · 279 阅读 · 0 评论 -
实例、原型、构造函数的关系,以及继承
实例、原型、构造函数的关系:function Parent () { this.name = 'name'}var person = new Parent()1.概念:构造函数: js中所有的函数都可以作为构造函数,前提是被new操作符操作。通常函数名首字母大写实例: 接收了被new实例化后新建的对象原型:构造函数都有一个prototype属性,这个属性指向原型对象。原型链:...原创 2020-04-25 22:35:49 · 2631 阅读 · 0 评论 -
强制、隐式类型转换
强制类型转换:ECMAScript 中可用的 3 种强制类型转换如下:Boolean(value) - 把给定的值转换成 Boolean 型;如果该值是空字符串、数字 0、undefined 或 null,它将返回 false。Number(value) - 把给定的值转换成数字(可以是整数或浮点数);Number(false/null) //0Number(true) /...原创 2018-11-03 00:13:02 · 143 阅读 · 0 评论 -
js 事件绑定
js绑定事件①html元素中直接绑定。 <input type=“button” id’=“button” onclick=“click()”>function click(){ }②DOM0级事件处理程序即js代码中绑定—----------若添加多个同类型事件,则后来的事件会覆盖原有的事件,即同类型的事件只能有一个。以button按钮绑定事件来举例: ...原创 2018-11-02 23:00:32 · 161 阅读 · 0 评论 -
Javascript编程实现确定两个文件之间的相对路径
目标:找a-&gt;b的相对路径分析:1、首先需要把a、b绝对路径分割成数组形式(使用split()方法,以/为分割点),2、其次我们申请一个空的字符串str用于存放最终相对路径。比较两个数组里的元素,如果相同位置的值相同,那么说明他两在在同一文件夹下,此时向str加入‘…/ '。否则就加上目标b数组中**对应位置元素+"/"**符号。直至到最末尾3、最后,别忘记,最后一个元素后面还会...原创 2018-11-04 16:52:02 · 676 阅读 · 0 评论 -
setTimeout的理解
1、执行先后顺序setTimeout()有两个参数值,分别是函数、时间值(ms).这是因为 js 是单线程的,有一个事件队列机制,setTimeout 的回调会到了延迟时间,排队执行。页面中所有由setTimeout定义的操作,都将放在同一个队列中依次执行。而这个队列的执行时间需要等到函数调用栈执行完毕后才会执行,也就是等待所有的可执行代码执行完毕,才到setTimeout执行举例1说...原创 2018-11-03 15:57:40 · 754 阅读 · 0 评论 -
我的问题总结
1.判断一个对象是否属于数组三种方式①Objct.prototype.toString.call(obj)==="[object Arrary]" (最佳)②obj instanceof Array③typeof obj=="object" && obj.constructor==Array2. js三种弹出框(警告窗口、确认窗口、信息输入)...原创 2018-10-29 11:39:31 · 122 阅读 · 0 评论 -
js中创建对象的方式
前几天面试遇到这么一道题:js面向对象的几种方式,然后百度了一下发现这个标题下全是写的js中创建函数对象的方式。那就顺便了解一下这个JavaScript中创建对象的方式:1.构造函数创建对象.优点:自定义函数可以将实例标志为一种特定的类型。缺点:每个方法都要在实例上重新创建一遍//可以用instanceof检测对象类型function Person(name,age){this.nam...原创 2018-10-23 16:28:08 · 290 阅读 · 0 评论 -
canvas绘制简单五子棋棋盘
什么是 canvas <canvas> 是HTML5中用于图形的绘制的元素。<canvas> 标签只是图形容器,canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成。Canvas(画布)简介一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制.注意: 默认情况下 <canvas> 元...原创 2018-08-06 00:47:30 · 4857 阅读 · 1 评论 -
js实现弹幕功能
要点: 布局:输入框、提交按钮、弹幕区域 创建弹幕,并获取到它的相关属性,如颜色。。。。 弹幕的颜色随机 高度随机 距离左边边框距离,实时变化 (难点) 弹幕文字不换行 (white-space:nowrap)我能想到的 大概就这么多吧。附上完整代码,代码注释解释得差不多了,<!DOCTYPE html><html><head> &l...原创 2018-10-05 11:37:22 · 3847 阅读 · 0 评论 -
js数组去重 --filter和排序去重
方法一 filter过滤器利用数组中的filter方法.filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数element,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置index和数组本身self.filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。filter去除重复元素依靠的是i...原创 2018-10-03 15:43:09 · 8197 阅读 · 0 评论 -
js冒泡排序及优化
冒泡排序的基本思想是对所有相邻记录的关键字值每一轮进行比效,如果(a[j]&gt;a[j+1]),则将其交换,最终达到有序化。它是稳定的排序最坏情况:**时间复杂度为O(n^2)**是把顺序的排列变成逆序,或者把逆序的数列变成顺序。在这种情况下,每一次比较都需要进行交换运算。最好情况:时间复杂度为O[n]。也就是排列前,表本身就是顺序的,则根据改进后 的方法需要进行n-1次比较,没有数据...原创 2018-10-03 11:07:23 · 2132 阅读 · 0 评论 -
变量作用域的几个例子
例1: function fn(){ console.log("function"); //第二步,执行fn函数,输出字符串function } function test(){ console.log(fn); //第一步,输出全局变量fn对应的函数对象 fn(); // 第二步,才调用fn函数,转上 f...原创 2018-09-20 14:54:15 · 648 阅读 · 0 评论