![](https://img-blog.csdnimg.cn/bc08d9b107754238a259142a8f81f3a6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javaScript基础
文章平均质量分 62
javaScript基础知识记录。
前端三脚猫
编程相关问题记录。
展开
-
js中数组sort方法的使用和模拟实现
sort方法是对数组的元素进行排序,并返回对相同数组的引用。原创 2023-06-25 09:54:33 · 608 阅读 · 0 评论 -
js中数组forEach方法的使用及实现
js中数组forEach方法的使用及实现首先来看下mdn中的介绍描述forEach() 方法按升序为数组中含有效值的每一项执行一次 callback 函数,那些已删除或者未初始化的项将被跳过。(说白了就是去循环数组中的元素,每循环一次就调用一次传入的函数。并且在被调用时,不会改变原数组)语法arr.forEach(callback(currentValue [, index [, arrSelf]])[, thisArg])参数描述callback为数组中每个元素执行的函数,该函数接收一至三原创 2021-07-17 15:19:24 · 5357 阅读 · 0 评论 -
js中的switch语句
js中的switch语句js中的switch语句可以把它看作为if else if else的简化版本: switch (num) { case 2: // 执行的代码 break; case 42: // 执行的代码 break; default: // 执行的代码 }上述代码传入的num参数会与case表达式依次进行比较,如果匹配就执行该case中的代码,直到break或者原创 2021-01-20 16:10:14 · 3193 阅读 · 0 评论 -
js中的变量声明(var、let、const的区别和解析)
Js中的变量声明在es6之前声明变量使用var关键字,无论声明位置在何处,都会把声明提升到当前作用域的顶部。如:function myVar(flag) { console.log(value); // undefined if (flag) { var value = '22'; console.log(value); // 22 } else { console.log(value); // 当flag为false时也可以访问变量值为 undefined原创 2021-03-08 20:44:35 · 282 阅读 · 1 评论 -
es6中的解构赋值
一、 对象的解构对象结构赋值的语法就是在表达式的左侧使用了对象的字面量方式,将对象中的值赋值到左侧相同的变量上。语法如下: let obj = { name: '姓名', age: '年龄' } let { name, age } = obj; console.log(name, age); // 姓名 年龄上面的对象结构都用于变量声明,也可以在赋值的时候使用解构,在声明变量后改变他们的值(注意:必须用圆括号包裹解构赋值语句,否则报语法错原创 2021-04-17 11:26:11 · 293 阅读 · 0 评论 -
es6中的set和map类型
Set与mapEs6中新增加了两个数据类型set和map类型,下面就看下这两个类型的特性和用法。一、 Set特性和定义Set它是一种有序列表并且它的值没有重复。创建 Set 并添加项目Set 使用 new Set() 来创建,如果想要往Set中添加值可以使用add()方法进行添加。查看Set中有多少项值,使用 size 属性 。如: let mySet = new Set(); mySet.add(1); mySet.add("1"); console.log(m原创 2021-05-09 11:02:47 · 484 阅读 · 0 评论 -
js中数组reduce方法的使用和实现
js中数组reduce方法的使用和实现reduce方法定义reduce() 方法对数组中的每个元素执行一个传入的callback回调函数(升序执行,空值和已删除的除外),将其结果汇总为单个返回值。reduce方法语法arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])reduce方法参数callback自己传入的为数组中每个值 (如果没有传入 initialValue则第一个值除外)执原创 2021-07-28 20:21:18 · 959 阅读 · 0 评论 -
js中的模板字符串
es6中增加了模板字符串,使字符的操作更加灵活和解决复杂的问题。语法:使用反引号( ` )来包裹普通字符串。如:let message = `Hello world!`; console.log(message); // "Hello world!"console.log(typeof message); // "string"console.log(message.length); // 12在模板字符串中可以将任何有效的 JS 表达式嵌入到模板字面量中,并将其结果输出为 字符串的一部分。原创 2021-03-28 16:57:40 · 550 阅读 · 0 评论 -
js中数组find方法的使用和实现
js中数组find方法的使用和实现find方法定义find() 方法返回数组中满足传入函数条件的第一个元素的值。否则返回 undefined。find方法语法arr.find(callback(element [, index[, selfArr]]) {} [, thisArg])find方法参数callback在数组每一项上执行的函数,接收 3 个参数:(1)element当前遍历到的元素。(2)index可选当前遍历到的索引。(3)array可选调用find方法的数组本身。原创 2021-08-01 14:45:01 · 10352 阅读 · 0 评论 -
es6中箭头函数解析
特性:1、 没有 this 、 super 、 arguments ,也没有 new.target 绑定。2、 不能更改 this 。3、 不能被使用 new 调用。4、 没有原型。5、 没有 arguments 对象。6、 不允许重复的具名参数: 箭头函数不允许拥有重复的具名参数,无论是否在严格模式 下。语法箭头函数的语法有很多变种,当只有单个参数时就是参数跟着一个箭头然后直接接返回值,就会把箭头后面的值返回不用使用return关键字。如:var arrFn = value =>原创 2021-04-24 09:24:56 · 194 阅读 · 0 评论 -
js中的apply方法并模拟实现自己的apply方法
apply方法定义call()方法,在mdn中的定义:apply() 方法调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。(它的作用和使用和call方法一致,唯一的区别就是call方法传递的是一个个参数的列表,apply方法传递的是参数的数组集合。Call方法详细请看call方法解析)语法func.apply(thisArg, [argsArray])apply方法传递两个参数,第一个参数传递的是所要改变指向的值(当该函数处于非严格模式下,则指定为 null 或原创 2021-06-20 20:49:02 · 1103 阅读 · 0 评论 -
js中数组map方法的使用和实现
js中数组map方法的使用和实现MDN中定义map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。语法var new_array = arr.map(function callback(currentValue[, index[, selfArray]]) {// Return element for new_array}[, thisArg])参数callback生成新数组元素的函数,使用三个参数:(1)currentValuecallback 数原创 2021-07-22 09:59:31 · 5663 阅读 · 0 评论 -
js中数组flat方法的使用和实现
js中数组flat方法的使用和实现定义flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。语法var newArray = arr.flat([depth])参数depth 可选指定要提取嵌套数组的深度,默认值为 1。返回值一个包含将数组与子数组中所有元素的新数组。(就是扁平化后的每一项重新组成的数组,所以不会改变原数组。)使用示例扁平化数组,不传递参数的时候默认为一层let arr = [1,2,[3,[4,[5]]]]原创 2021-09-15 11:50:48 · 25126 阅读 · 1 评论 -
js中关于this全面解析和this的指向问题
this指向原则每个函数的this是在调用的时候被绑定的,完全取决于函数的调用位置。1、 调用位置调用位置就是函数在代码中被调用的位置(而不是声明的位置)。要找到调用位置就要分析调用栈(就是为了达到当前执行位置所调用的所有函数),我们要找的调用位置就在当前正在执行的函数的前一个调用中。如以下代码:function baz() { // 当前的调用栈是baz // 当前的调用位置是全局作用域 console.log(‘baz’); bar(); // bar的调用位置}function b原创 2021-02-28 21:20:49 · 219 阅读 · 2 评论 -
js中的call方法并模拟实现自己的call方法
定义先来看下call()方法,在mdn中的定义:call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。(其实就是改变函数的this指向,并且调用该函数)语法Function.call(thisObj, res1, res2, …);call方法传递两个参数,第一个参数传递的是所要改变指向的值(当该函数处于非严格模式下,则指定为 null 或 undefined 时会自动替换为指向全局对象,原始值会被包装。),后面是所要传递的参数(参数可以为多个)。返回值返回调原创 2021-06-02 20:23:34 · 721 阅读 · 0 评论 -
js中的bind方法并模拟实现自己的bind方法
Js中bind方法使用和实现前面我们已经模拟实现了call和apply方法,今天来实现下同样可以改变this指向但是又有点不同得方法 bind方法。定义首先来看下bind方法在mdn中得定义,bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。语法function.bind(thisArg[, arg1[, arg2[, …]]])参数thisArg 调用绑定函数时作为 th原创 2021-07-04 21:06:16 · 487 阅读 · 0 评论 -
js中数组indexOf方法的使用和实现
js中数组indexOf方法的使用和实现IndexOf方法定义indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。IndexOf方法语法arr.indexOf(searchElement[, fromIndex])参数searchElement要查找的元素fromIndex 可选开始查找的位置(默认从0 开始)。返回值首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1详细描述indexOf方法查找到第一个传入的元素,并返回当前元素的原创 2021-08-02 11:32:10 · 25541 阅读 · 0 评论 -
js中new操作符做了什么并实现自己的new操作符
我们通过new运算符的使用,来探寻new操作符在执行的过程中究竟做了哪些操作,并且根据操作实现自己的new运算符。定义new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。使用先看正常使用new运算符调用构造函数function Test(testText) { this.testText = testText;}Test.prototype.console = function() { console.log(this.testText);}let原创 2021-05-15 11:54:04 · 1672 阅读 · 0 评论 -
es6中函数的默认参数用法和解析
带默认值的参数函数中的参数可以传入默认值,当有实参传入的时候就赋值实参,当没有传递实参的时候或者指定传递的参数为undefined时,形参就会使用默认值。如:function getNum(num1, num2 = 5) { return num1 + num2;}console.log(getNum(1)); // 6console.log(getNum(1, 1)); // 2console.log(getNum(1, undefined)); // 6参数默认值表达式函数参数原创 2021-04-18 15:21:53 · 466 阅读 · 1 评论 -
js中instanceof方法的使用和实现原理
instanceof方法的定义MDN上对instanceof方法的定义非常的简洁明,instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。MDN 地址https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/instaniceof使用下面是一些根据定义简单的使用方法,右边参数的prototype 属性在左边参数的原型链上时就返回true,否则返回fals原创 2021-04-30 09:44:04 · 1375 阅读 · 0 评论 -
js中数组filter方法的使用和实现
js数组中filter方法的使用和实现MDN定义filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, selfArr]])[, thisArg])参数callback循环数组每个元素时调用的回调函数。回调函数返回 true 表示保留该元素,false 则不保留。它接受以下三个参数:(1)element数组中当前正在处理的元素。(2)index可选正在原创 2021-07-24 15:31:52 · 8772 阅读 · 3 评论