![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
p2 原生js
关于原生js
一染星辰
不求甚解,唯有敬亭山!!!加油!
展开
-
什么是原型,什么是原型链
每个原型对象中都有 prototype 属性,指向一个对象,这个对象就叫做原型或者原 型对象每个对象都有__proto__,指向构造函数的原型对象,层层递进到 null 为止原创 2022-04-12 20:15:37 · 478 阅读 · 0 评论 -
js 冒泡排序
冒泡排序原理:冒泡排序是最简单的,只需要通过两次遍历,两两交换,就可以实现排序。代码: let arr = [145, 248, 31, 45, 9, 11, 145, 300]; //冒泡排序 function arrSort(arr) { for (let i = 0; i < arr.length - 1; i++) {//遍历,这里,a.原创 2022-04-11 20:51:03 · 303 阅读 · 0 评论 -
== 和===有什么不同 (js 面试题高频)
目录== 和===有什么不同?== : 比较的值=== : 除了比较值,还比较类型,== 和===有什么不同?== : 比较的值 string == number || boolean || number ....都会隐式转换 通过valueOf 转换(valueOf()方法通常由JavaScript在后台自动调用)=== : 除了比较值,还比较类型,...原创 2022-03-29 21:23:54 · 488 阅读 · 0 评论 -
null和undefiend 的区别(js 高频面试)
null和undefiend 的区别:1,作者在设计js 都是先是设计的null(为什么设计了null: 最初的时候借鉴了Java 语言)2.null 会被隐式转换成0,很不容易发现错误3. 先有null ,后有undefined, 出来undefined 是为了填补之前的坑。具体区别:javascript的最初的版本是这莫区分的: null是一个表示“无”的对象(空对象指针),转换为数值为0; undefinend值,转换为数值为NaN...原创 2022-03-29 21:20:56 · 1291 阅读 · 0 评论 -
new 操作符具体都做了什么?(js高频面试题)
1.创建了一个空的对象2.将空对象的原型,指向构造函数的原型;3将空对象作为构造函数的上下文(改变this 指向)4.对构造函数有返回值的处理判断原创 2022-03-29 19:39:25 · 445 阅读 · 0 评论 -
延迟加载js 有哪些方式?
延迟加载js 有哪些方式?async、 defer、例如:<script defer type="text/javascript" src='script.js'></script> defer: 等html 全部解析完成,才会执行js 代码,顺次执行js脚本; async: async和html解析同步的(一起的),不是顺次执行js脚本(谁先加载完谁先执行)。...原创 2022-03-29 19:37:26 · 899 阅读 · 0 评论 -
amd和cmd 的规范区别(简洁)
Amd 是提前执行依赖,cmd 按需执行依赖,懒执行 ;原创 2022-03-29 19:32:31 · 548 阅读 · 0 评论 -
AMD(异步执行)和CMD (同步执行)之间的区别是什么?
1、 为什么要使用模块化? 模块化的作用有以下这些:可以解决命名冲突 管理依赖 提高代码的可读性 代码解耦,提高代码的复用性AMD(异步执行) 是 RequireJS 在推广过程中对模块定义的规范化产出。CMD (同步执行)是 SeaJS 在推广过程中对模块定义的规范化产出。这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的。目前这些规范的实现都能达成浏览器端模块化开发的目的。浏览器不兼容CommonJS(http://wiki.commonjs.原创 2022-03-29 19:12:17 · 1056 阅读 · 0 评论 -
new 操作符具体都做了什么?(js高频面试题)
new 操作符具体都做了什么?(高频) 1.创建了一个空的对象2.将空对象的原型,指向构造函数的原型;3将空对象作为构造函数的上下文(改变this 指向)4.对构造函数有返回值的处理判断...原创 2022-03-29 17:18:07 · 411 阅读 · 0 评论 -
将object的tostring()方法分别应用于null和undefined,得到的结果是什么?
原创 2022-03-20 09:19:09 · 390 阅读 · 0 评论 -
控制台输出优先级
下边控制台依次输出的是什么?原创 2022-03-20 08:28:15 · 314 阅读 · 0 评论 -
两种方式为button元素注册点击事件,this指向
两种方式 ;第一种指向button,第二种 指向window原创 2022-03-20 08:18:18 · 413 阅读 · 0 评论 -
js 面试题 aa-bb-cc-dd ---> aaBbCcDd (转驼峰命名法)
目标: 如何把aa-bb-cc-dd 转化为驼峰aaBbCcDd的方式?个人思路: 首先,先把数组转化为字符串,然后再使用字符串的大小写方法去转驼峰原创 2022-03-18 20:19:08 · 437 阅读 · 0 评论 -
js 千分位格式化 (4种方式实现)
目录目标:如何实现千分位格式化?(你有几种方式实现)方法一字符串的方式实现functiontoThousands(num) {varresult ='', counter = 0;num = (num || 0).toString();for(vari = num.length - 1; i >= 0; i--) {counter++;result = num.charAt(i) + result;原创 2022-03-18 20:07:33 · 6084 阅读 · 1 评论 -
js 浅拷贝和深拷贝(详细面试+代码)(20220318)
模拟:1.面试题:哪些是浅拷贝 哪些是深拷贝?得到的是深拷贝还是浅拷贝?Object.assign() 得到的是深拷贝还是浅拷贝?说一下如何得到深拷贝的对象 如何进行深拷贝?2. 浅拷贝的实现方式有哪几种?(3种) 第一种 赋值变量,仅仅拷贝了栈内存地址第二种 ES6 语法 ...拓展运算符第三种 ES6 利用object.assign()的方式对对象进行合并3.实现深拷贝的方式有哪几种?(2种)1.用 JSON.stringify()原创 2022-03-18 19:54:21 · 756 阅读 · 0 评论 -
js 宏任务和微任务
1.宏任务和微任务的概念是什么 ?宏任务:是指消息队列中的等待被主线程执行的事件,宏任务执行时都会重新创建栈,然后调用宏任务中的函数,栈也会随着变化,但宏任务执行结束时,栈也会随之销毁。包括整体代码script,setTimeout,setInterval new Promise*微任务:可以把微任务看成是一个需要异步执行的函数,执行时机是在主函数执行结束之后、当前宏任务结束之前Promise.then,process.nextTick(node中)*。微任务是基于消息队列、事件循环、UI原创 2022-03-18 19:32:07 · 3970 阅读 · 0 评论 -
前端 div 水平垂直居中的四种方式
div 水平垂直居中的四种方式, flex 布局,未知宽高的,还有知道宽高的等等原创 2022-03-16 11:07:54 · 850 阅读 · 0 评论 -
for 和 forEach 之间的区别是什么?
for 和 forEach 之间的区别是什么?1.for 可以循环可以使用break 跳出循环, 而forEach 不行;2.for 循环可以控制循环起点(i初始化的数字决定循环的起点) forEach默认索引只能从0开始3.for 循环过程中 支持修改索引(修改i) ,但是forEach 做不到(底层控制index自增,我们无法左右它)原创 2022-03-15 17:44:37 · 7645 阅读 · 0 评论 -
前端js 经典面试题5道(20220314)
目录1数组去重的方法有哪些?2.宏任务和微任务代码:3.原型prototype 和protype4.原型和原型链5. 谈谈你对js 作用域的理解?1数组去重的方法有哪些?2.宏任务和微任务代码:3.原型prototype 和protype4.原型和原型链5. 谈谈你对js 作用域的理解?...原创 2022-03-13 19:09:56 · 1291 阅读 · 0 评论 -
如何判断一个变量是否为NaN?(两种方法)(20220311)
在es5中,判断一个变量是否为NaN,采用isNaN( )函数判断,但是对于某些特别的变量,这个方法就出现了不符合预期的值在es6中推出了新的判断方法 Number.isNaN( )原创 2022-03-11 08:59:19 · 2153 阅读 · 0 评论 -
前端js 经典面试题 7道(20220311)
1.some 和every 之间的区别是什莫?2.判断数据的基本类型有哪些?3.改变数组的方法有哪些?4.不改变数组的方法有哪些?5.遍历数组的方法有哪些?6.js的事件委托(事件代理),概念优势,实现原理分别是什么?7.浅拷贝和深拷贝的区别是什么?(代码)原创 2022-03-10 16:52:47 · 370 阅读 · 0 评论 -
js:拖动效果(解析及代码)
基础知识:可视宽度:且兼容var view = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;活动区域var areaW = view - img.offsetWidth; 以下为所有代码:<!DOCTYPE html><html> <head> <meta charset="utf-8">原创 2021-10-12 19:16:32 · 142 阅读 · 0 评论 -
js:模态窗(案例:效果及代码)重点
效果:代码如下:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .mask{ width: 100%; height: 100%; background: rgba(0,0,0,0.3); position: fixed;.原创 2021-10-12 19:07:18 · 227 阅读 · 0 评论 -
JS:数组删除到添加(置顶)
要求: 1. 从一个数组删除一个对象,将该对象添加到另一个数组() 2. 将数组中某一个对象删除,将该对象添加到数组开头 (置顶)思路: splice返回被删除的元素组成的数组(数组长度为删除的长度),让其等于数组后边的push添加即可!!!等等<script type="text/javascript"> /* 1. 从一个数组删除一个对象,将该对象添加到另一个数组 2. 将...原创 2021-10-12 18:45:31 · 816 阅读 · 0 评论 -
JS:考试测试代码
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .active{ background-color: #87CEEB; color: #FF0000; font-size: 25px; } .topBtn>button{ .原创 2021-10-11 17:34:29 · 278 阅读 · 0 评论 -
JS:事件冒泡与捕获
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .d1{ width: 300px; height: 300px; background: blue; } .d2{ width: 200px; height: 200.原创 2021-10-11 17:32:22 · 80 阅读 · 0 评论 -
JS:事件委托(代码)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> ul{ border: 1px solid; } li{ background: red; margin-bottom: 10px; } </style> &l.原创 2021-10-11 17:30:08 · 289 阅读 · 0 评论 -
JS:切换显示隐藏
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .d2{ display: none; } </style> </head> <body> <div id="box"> <div c.原创 2021-10-11 17:28:46 · 596 阅读 · 0 评论 -
js:延迟加载(代码)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> img{ position: fixed; left: 50%; top: 50%; margin-top: -24px; margin-left: -24px; } .原创 2021-10-11 17:27:02 · 140 阅读 · 0 评论 -
js:搜索(代码)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #box{ width: 500px; min-height: 200px; border: 1px solid; } #box>div{ width: 300px; .原创 2021-10-11 17:22:16 · 991 阅读 · 0 评论 -
js:阻止默认事件 ev.preventDefault();
ev.preventDefault() 阻止默认事件整体代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <a href="https://www.baidu.com/">百度</a> <script type="text/.原创 2021-10-09 17:20:05 · 724 阅读 · 0 评论 -
JS:offset(全部解析)
1获取元素的宽度:offsetwidth2.获取元素的高度:offsetHeight3获取元素到顶端的距离:offsetTop4获取元素到左边缘的距离offsetLeft5获取元素的父元素 offsetParent关于相关代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type.原创 2021-10-09 17:16:37 · 1948 阅读 · 0 评论 -
JS:事件对象(代码)
整体代码<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } </style> </head> <body> <div id="box"&原创 2021-10-09 17:04:44 · 95 阅读 · 0 评论 -
JS:表单事件(7个)
表单事件 属性 描述 onfocus 元素获取焦点时触发 onblur 元素失去焦点时触发 onchange 该事件在表单元素的内容改变时触发( input, select, 和 textarea) oninput 元素获取...原创 2021-10-09 16:59:19 · 1689 阅读 · 0 评论 -
JS:键盘事件(onkeydown 、onkeypress、 onkeyup三个)
1.键盘事件key 属性 描述 onkeydown 某个键盘按键被按下 onkeypress 某个键盘按键被按下。 onkeyup 某个键盘按键被松开。 事件相关的事件发生次序: ...原创 2021-10-09 16:52:51 · 3454 阅读 · 0 评论 -
js:鼠标事件(9个)
1.鼠标事件 属性 描述 onclick 当用户点击某个对象时调用的事件句柄。 ondblclick 当用户双击某个对象时调用的事件句柄。 onmousedown 鼠标按钮被按下。 onmouseup 鼠标按键被松开。 ...原创 2021-10-09 16:45:17 · 529 阅读 · 0 评论 -
js:HTML事件
Window 事件属性: onload 事件会在页面或图像加载完成后立即执行, 通常用于 body 元素,在页面完全载入后(包括图片、css文件等等。)执行脚本代码 onscroll 事件在元素滚动条滚动时触发 onresize 当窗口或框架的大小变化时在window 或框架上触发//style部分<style type="t...原创 2021-10-09 11:50:18 · 141 阅读 · 0 评论 -
JS:事件概述(什么是事件)
定义: 事情发生并得到处理的操作,叫做事件,通俗的讲就是:事情来了,然后处理。 事件句柄 事件发生时进行的操作 比如:手机铃声响了(事情来了)--------接电话(处理) 当用户点击按钮的时候,我们会说触发了按钮的onclick事件<button type="button">点击</button>...原创 2021-10-09 11:40:42 · 553 阅读 · 0 评论 -
JS:localStorage(获取,设置、删除、全删、下标)定义及代码
读取数据:localStorage.getItem(key); 保存数据:localStorage.setItem(key,value); 删除单个数据:localStorage.removeItem(key); 删除所有数据:localStorage.clear(); 得到某个索引的key:localStorage.key(index);相关代码;// 获取数据 ...原创 2021-10-08 21:42:58 · 3190 阅读 · 1 评论 -
JS:JSON互转(2种)
JSON.stringify() 转JSON字符串JSON.parse() 转JSON对象原创 2021-10-08 21:36:22 · 183 阅读 · 0 评论