摘要: 1.新增了块级作用域(let,const) 2.提供了定义类的语法糖(class) 3.新增了一种基本数据类型(Symbol) 4.新增了变量的解构赋值 5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。 6.数组新增了一些API,如isArray / from / of 方法;数组实 阅读全文
posted @ 2020-08-10 23:30 大牛半路出家 阅读(247) 评论(0) 推荐(0)
摘要: js取数组最大值的四种方式 var arr = [7,2,0,-3,5]; 1.apply()应用某一对象的一个方法,用另一个对象替换当前对象 var max = Math.max.apply(null,arr); console.log(max) 由于max()里面参数不能为数组,所以借助appl 阅读全文
posted @ 2020-08-10 23:29 大牛半路出家 阅读(280) 评论(0) 推荐(0)
摘要: https://www.cnblogs.com/myfirstboke/p/10449272.html 阅读全文
posted @ 2020-08-10 23:27 大牛半路出家 阅读(223) 评论(0) 推荐(0)
摘要: new的原理https://blog.csdn.net/m0_37686205/article/details/89194248 new: 创建一个新对象。 这个新对象会被执行[[原型]]连接。 将构造函数的作用域赋值给新对象,即this指向这个新对象. 如果函数没有返回其他对象,那么new表达式中 阅读全文
posted @ 2020-08-10 23:18 大牛半路出家 阅读(482) 评论(0) 推荐(1)
摘要: https://blog.csdn.net/lelara/article/details/105337803 阅读全文
posted @ 2020-08-10 23:11 大牛半路出家 阅读(455) 评论(0) 推荐(0)
摘要: JS倒计时setTimeout为什么会出现误差 单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。这与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。 任务队列 单 阅读全文
posted @ 2020-08-10 23:05 大牛半路出家 阅读(1482) 评论(0) 推荐(0)
摘要: call, apply, bind的内部实现原理 https://www.cnblogs.com/renzhiwei2017/p/10364760.html call, apply, bind都是改变函数执行的上下文,说的直白点就是改变了函数this的指向。不同的是:call和apply改变了函数的 阅读全文
posted @ 2020-08-10 22:50 大牛半路出家 阅读(547) 评论(0) 推荐(0)
摘要: 在js中只有两种作用域,全局作用域和函数作用域,在ES6之前,js是没有块级作用域。 JavaScript 代码的执行分为两个阶段。第一个阶段在当前词法环境中注册所有的变量和函数声明,简单说就是,解析,解析完成之后,第二个阶段的 JavaScript 执行就开始了! JS中创建函数有两种方式:函数声 阅读全文
posted @ 2020-08-10 22:48 大牛半路出家 阅读(565) 评论(0) 推荐(0)
摘要: js中检测数据类型的几种方式 1、typeof 一元运算符,用来检测数据类型。只可以检测number,string,boolean,object,function,undefined。 对于基本数据类型是没有问题的,但是遇到引用数据类型是不起作用的(无法细分对象) 1 2 3 4 5 6 7 8 9 阅读全文
posted @ 2020-08-10 22:47 大牛半路出家 阅读(310) 评论(0) 推荐(0)
摘要: JavaScript原型,原型链 ? 有什么特点? 每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时, 如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype, 于是就这样一直找下 阅读全文
posted @ 2020-08-10 22:42 大牛半路出家 阅读(350) 评论(0) 推荐(0)
摘要: 一:什么是闭包? https://blog.csdn.net/qq_33505829/article/details/86080460 闭包就是能够读取其他函数内部变量的函数,说白了闭包就是个函数,只不过是处于其他函数内部而已。 由于在javascript中,只有函数内部的子函数才能读取局部变量,所 阅读全文
posted @ 2020-08-10 22:41 大牛半路出家 阅读(949) 评论(0) 推荐(0)
摘要: 闭包的主要作用:延伸了变量的作用范围; 一般局部变量在函数运行完后就会销毁,但是闭包的存在,就使其他函数(要使用该闭包函数中变量的函数)都运行完才会销毁。 阅读全文
posted @ 2020-08-10 22:40 大牛半路出家 阅读(167) 评论(0) 推荐(0)
摘要: ==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换 :用来检测两个操作数是否严格相等1、对于string,number等基础类型,==和 是有区别的不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等, 如果类型不同,其结果就是不等同类型比 阅读全文
posted @ 2020-08-10 22:34 大牛半路出家 阅读(253) 评论(0) 推荐(0)
摘要: https://www.cnblogs.com/kzxiaotan/articles/11683633.html 阅读全文
posted @ 2020-08-10 22:32 大牛半路出家 阅读(254) 评论(0) 推荐(0)
摘要: 浅拷贝的四种方式: 深拷贝: JS实现深拷贝 https://www.cnblogs.com/dobeco/p/11295316.html 一、赋值、浅拷贝与深拷贝的区别 二、深拷贝的方法 1.JSON转换 var targetObj = JSON.parse(JSON.stringify(copy 阅读全文
posted @ 2020-08-10 22:11 大牛半路出家 阅读(449) 评论(0) 推荐(0)
摘要: 显式转换 通过手动进行类型转换,Javascript提供了以下转型函数: 转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string) 转换为字符串类型:toString(radix)、String(mix) 转换为布尔类型:Boolea 阅读全文
posted @ 2020-08-10 21:02 大牛半路出家 阅读(535) 评论(0) 推荐(0)
摘要: 原始类型有哪几种?null 是对象吗? 在 JS 中,存在着 6 种原始值,分别是: boolean null undefined number string symbol 首先原始类型存储的都是值,是没有函数可以调用的,比如undefined.toString() 此时你肯定会有疑问,这不对呀,明 阅读全文
posted @ 2020-08-10 20:59 大牛半路出家 阅读(250) 评论(0) 推荐(0)
摘要: https://www.cnblogs.com/Red-ButterFly/p/9055175.html 重点 阅读全文
posted @ 2020-08-10 20:58 大牛半路出家 阅读(203) 评论(0) 推荐(0)
摘要: https://blog.csdn.net/u014328357/article/details/53317136 好多,自己看吧 阅读全文
posted @ 2020-08-10 20:50 大牛半路出家 阅读(792) 评论(0) 推荐(0)
摘要: 「node.getAttribute('someAttribute')」获取的是「attribute」 「node.someAttribute」获取的是元素的「property」,二者并不相同,本文将进行详细对介绍。 在大多数情况下「property」和「attribute」是同步的,如场景1。 场 阅读全文
posted @ 2020-08-10 20:47 大牛半路出家 阅读(312) 评论(0) 推荐(0)
摘要: 1. script 没有 defer 和 async 会停止(阻塞)dom 树构建,立即加载,并执行脚本 2. script 带 async 不会停止(阻塞)dom 树构建,立即异步加载,加载好后立即执行 3. script 带 defer 不会停止(阻塞)dom 树构建,立即异步加载。加载好后,如 阅读全文
posted @ 2020-08-10 20:44 大牛半路出家 阅读(218) 评论(0) 推荐(0)
摘要: JS延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件。 JS延迟加载有助于提高页面加载速度。 一般有以下几种方式: 1)defer 属性 1 <script src="test1.js" defer="defer"></script> 2)async 属性 1 <script s 阅读全文
posted @ 2020-08-10 20:42 大牛半路出家 阅读(1264) 评论(0) 推荐(0)
摘要: ["1", "2", "3"].map(parseInt) 答案是多少? 让我们先看看最直接最粗暴的方式 没错,答案就是:[1, NaN, NaN],那为什么答案是[1, NaN, NaN]呢? 1.让我们先了解一下map函数的定义 JavaScript Array map() 方法 定义和用法 m 阅读全文
posted @ 2020-08-10 20:40 大牛半路出家 阅读(230) 评论(0) 推荐(0)
摘要: Null和undefined的区别? (1)null是一个表示”无”的对象,转我数值是为0,undefined是一个表示”无”的原始值,转为数值时为NaN。当声明的变量还未被初始化时,能量的默认值为undefined (2)Null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象 (3 阅读全文
posted @ 2020-08-10 20:18 大牛半路出家 阅读(223) 评论(0) 推荐(0)
摘要: 说几条JavaScript的基本规范 1、不要在同一行声明多个变量 2、使用 或!==来比较 3、使用字面量的方式来创建对象、数组,替代new Array这种形式 4、不要使用全局函数 5、switch语句必须要带default分支 6、函数不应该有的时候有return,有的时候没有return 7 阅读全文
posted @ 2020-08-10 20:17 大牛半路出家 阅读(383) 评论(0) 推荐(0)
摘要: JS内置对象有哪些? JS内置对象分为数据封装类对象和其他对象 数据封装类对象:String,Boolean,Number,Array,和Object; 其他对象:Function,Arguments,Math,Date,RegExp,Error 阅读全文
posted @ 2020-08-10 20:15 大牛半路出家 阅读(986) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-08-10 19:55 大牛半路出家 阅读(218) 评论(0) 推荐(0)
摘要: 创建Object的方式有4种。 方式一: 通过对象字面量表示法(又称为直接量、原始方式)。 var obj = {name:"moyu"}; 方式二: 通过new和构造函数Object()、String()等。 var obj = new Object(); 方式三: 自定义一个对象的构造函数,然后 阅读全文
posted @ 2020-08-10 19:51 大牛半路出家 阅读(268) 评论(0) 推荐(0)
摘要: offset包含边框,其他的不包括; scroll包括文字超出的部分。client不包括文字超出的部分; 阅读全文
posted @ 2020-08-10 19:49 大牛半路出家 阅读(187) 评论(0) 推荐(0)