
JS基础知识
掌握JS基础知识是进阶和学习框架应用不可或缺的过程
Zzz_bk
这个作者很懒,什么都没留下…
展开
-
ES6扩展运算父(...)
对象中的扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中let arr = { a: 1, b: 2 };let arr2 = { ...arr };其实拷贝对象也是有自己的方法let arr = { a: 1, b: 2 };let arr2 = Object.assign({}, arr)...原创 2021-04-24 18:07:05 · 81 阅读 · 0 评论 -
js map()和forEach()的区别
一、相同点:1.都是循环遍历数组中的每一项2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组)3.匿名函数中的this都是指向window4.只能遍历数组二、不同点1.map()会分配内存空间存储新数组并返回,forEach()不会返回数据。2.forEach()允许callback更改原始数组的元素。map()返回新的数组。1、forEach()forEach()针对每一个元素执行提供的函数,对数据的操作会改变原数组。var ar原创 2020-11-16 22:28:05 · 151 阅读 · 0 评论 -
startsWith和endsWith方法 ES6新增
startsWith是判断字符串以什么开始endsWith是判断字符串以什么结尾返回的都是Boolean值 var str = "hello world!" console.log(str.startsWith("h")) // true console.log(str.endsWith("!")) // true原创 2020-10-31 16:40:44 · 178 阅读 · 0 评论 -
Array的includes方法 扩展方法
includes方法 查找元素中是否有此元素,有即返回true,没有则返回falsevar arr = [1,2,3,4]console.log(arr.includes(1)) trueconsole.log(arr.includes(10)) false原创 2020-10-31 11:28:03 · 369 阅读 · 1 评论 -
find方法和 findIndex方法的使用
find方法和findIndex方法都是用于查找数组中符合条件的元素,但是两者有细微的差别find方法是通过判断条件返回符合条件的对象 // 定义一个数组,里面包含多个对象,通过find方法来查找满足条件的对象 var arr = [ { id: 1, name:'张三' }, { id: 2, name:'张三' }原创 2020-10-31 10:47:16 · 8665 阅读 · 0 评论 -
ES6扩展运算符
扩展运算符可以将数组转换成用逗号隔开的序列参数let arr = [10, 20, 30]console.log( ...arr ) // 10 20 30经常备用到用于数组拼接let arr = [10,20,30]let arr2 = [40,50,60]console.log(...arr, ...arr1) // 10 20 30 40 50 60可以不用apply方法将数组转换为函数的参数了function fu(a,b,c){console.log( a+b+c )}原创 2020-10-23 10:34:32 · 124 阅读 · 0 评论 -
ES6箭头函数的剩余参数
对箭头函数的形参通过特定写法,使其可以接收一个或多个实参,并进行使用 const sum = (...args) => { let total = 0; args.forEach(item => { total += item }) return total } console.log(sum(10, 20)) // 3原创 2020-10-22 17:28:53 · 386 阅读 · 0 评论 -
js中的数据类型
到现在为止数据类型大致分为了八个:分别是:String Number null undefined Boolean Object Symbol bigint最常见的六种:String Number null undefined Boolean Object 在这里就不介绍了,比较简单常见,而且非常熟悉了,在这里着重说一下Symbol bigint 这两种数据类型Symbol数据类型是ES6中新增的一个数据类型, Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突原创 2020-10-22 11:27:54 · 122 阅读 · 0 评论 -
forEach()使用方法
forEach()方法可以遍历数组使用方法:var arr = [1,2,3];var sum;// forEach有一个回调函数,提供了三个参数,分别是 value , index , arrayforEach(function(value, index, array) {console.log("每个数组元素" + value); console.log("数组的索引" + index);console.log("数组本身" + array);数组求和:console原创 2020-10-19 11:26:39 · 382 阅读 · 0 评论 -
关于各种函数的 this 指向问题
普通函数: this指向 windowfunction() {console.log(this)}自调用函数:this 指向 window(function(){console.log(this)})()构造函数调用: this指向实例对象,原型对象指向的也是实例对象var o {saih: function() {console.log(this)}}时间绑定函数:this 指向绑定事件var but = document.querySelector("原创 2020-10-19 11:27:54 · 120 阅读 · 1 评论 -
面试中最常见的call() apply() bind() 方法
两者都是改变函数的this指向的,两者的用法略有区别,主要是后者接收参数的时候两者不同,call方法可直接接收参数,apply方法只能接受数组形式的参数(伪数组也是数组)call方法var obj = {name: "zzz"}function fun(a,b){console.log(this) // 最初指向 windowconsole.log( a + b )}// 通过call方法调用,改变this指向 call("this重新指向的函数","携带的参数,可多个")原创 2020-10-19 11:31:00 · 140 阅读 · 0 评论 -
浅拷贝与深拷贝的区别
浅拷贝只拷贝了最外层,对于更深层次只拷贝引用(即只拷贝数据地址,如果对数据进行更改则会互相影响)es5浅拷贝:var obj = {name:"我是外部名称",jineng : { name:"我是内部名称"}}var o = {}o.jineng.name = "我是被修改后的名称" // 浅拷贝的数据发生改变时,拷贝与被拷贝对象的数据都会发生改变for(var i in obj) {o[i] = obj[i]}console.log(o.jinen原创 2020-10-19 15:00:32 · 193 阅读 · 1 评论 -
ES6解构赋值
解构赋值是指可以把对象中的属性或者复杂数据类型拿出来单独的赋值给变量,然后方便使用,代码更简洁更清晰。下面直接贴出解构赋值的用法: var porser = { data: [{name:"张三", sex:"女"}, {name:"李四", sex:"男"}], name: "zhangsan", age: 20, sex:"男" } // 把对象的数组data单独解原创 2020-10-22 10:41:00 · 101 阅读 · 0 评论