JS
文章平均质量分 74
boboluotou
前端小白的进阶之路。
展开
-
JS 面试 Foo.getName()
function Foo() { getName = function () { console.log (1); }; // console.log('this is'+this) return this; } Foo.getName = function () { console.log (2); }; Foo.prototype.getName = function () { console.log('baidu'.原创 2021-05-15 20:12:32 · 790 阅读 · 0 评论 -
箭头函数跟普通函数的区别
目录1 箭头函数跟普通函数的区别2 箭头函数为什么不能使用new命令1 箭头函数跟普通函数的区别区别:1 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象2 不可以使用arguments 对象,该对象在函数体内不存在。如果要用,可以用rest参数代替3 不可以使用yield命令,因此箭头函数不能用作Generator函数4 不可以使用new命令2 箭头函数为什么不能使用new命令普通函数可以使用new生成实例如何生成new实例呢,点击这里查看原因1 没有自原创 2021-05-12 10:24:46 · 132 阅读 · 0 评论 -
JavaScript 如何实现一个 new
目录1 new Object()创建2 Object.create()创建1 new Object()创建先定义一个构造函数,并定义构造函数的原型方法var Dog = function (name,age) { this.name = name; this.age = age;}Dog.prototype.bark = function () { console.log("wang wang")}Dog.prototype.sayName = function ()原创 2021-05-10 22:26:24 · 170 阅读 · 0 评论 -
JS 数字的千位分隔法
目录1 整数的千位分隔法1.1 正则分隔1.2 遍历分隔1.3 refuce函数分隔2 有小数划分2.1 正则化分隔2.2 toLocalString()函数1 整数的千位分隔法1.1 正则分隔相关知识:(?=p),其中p是一个子模式,即p前面的位置。(hello (?=e) 指e前面的位置 “h#ello”)(?!p)就是(?=p)的反面意思(hello (?!e) 指除e前面的位置 “#he#l#l#o#”)写个正则不匹配任何东西: /.^/数字的千分位就是把"12345678",原创 2021-05-08 10:30:36 · 823 阅读 · 0 评论 -
简单理解js的深浅拷贝
目录1 深浅拷贝1.1 浅拷贝介绍1.2 深拷贝介绍2 实现浅拷贝2.1 手撕浅拷贝函数2.2 库函数实现浅拷贝2.2.1 Object.assign()2.2.2 展开语法 Spread3 实现深拷贝3.1 JSON.parse(JSON.stringify(object))3.2 手撕深拷贝代码3.3 map解决循环引用问题3.3.3 WeakMap优化Map3.4 其他数据类型1 深浅拷贝 深浅拷贝是原创 2021-05-06 18:24:53 · 436 阅读 · 0 评论 -
JS的reduce的介绍和应用
目录1 reduce的介绍2 reduce的用法2.1 数组中求和,最大值,最小值2.2 累加对象数组中的和2.3 数组扁平化2.4 计算数组中每个元素出现的次数2.5 按属性对object分类2.6 数组去重2.7 reduce 实现map2.8 reduce实现filter1 reduce的介绍语法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])callback 执行数组中的每原创 2021-05-05 15:06:13 · 552 阅读 · 1 评论 -
JavaScript 之 call 和 apply 的模拟实现
目录1 call和apply的区别2 call 方法的实现2.1 设计思路2.1.1 第一步改变this指向2.1.2 第二步参数个数不确定2.1.3 传入参数为空或有返回值2.2 最终代码2.2.1 传入参数只有context 时2.2.2 参数为2的时候3 apply 的实现1 call和apply的区别call()方法接受的是参数列表apply()方法接受的是一个参数数组。它们的共同之处:都可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由this指定的新对象。原创 2021-05-03 21:51:09 · 527 阅读 · 6 评论 -
js 的继承
目录1 继承方式1.1 原型链继承1.2 借用构造函数继承1.3 组合继承1.4 原型式继承1.5 寄生继承1.6 寄生组合式继承2 相关知识2.1 Object.create()1 继承方式参考链接1参考链接21.1 原型链继承需要两个构造函数来完成一个原型链继承基本原理:使用类似作用域的原型链,进行继承查找 // SuperType 构造函数称为超类 function SuperType (){ this.name='super'; this.friend=[];原创 2021-04-24 19:24:27 · 306 阅读 · 0 评论 -
JS 原型 构造函数 对象的关系
目录1 原型链2 构造函数、原型对象和实例之间的关系1 原型链所有引用类型都有一个_proto_(隐式原型)属性,属性是一个普通的对象所有函数都有一个prototype(原型)属性,属性值是一个普通的对象所有引用类型的_proto_(隐式原型)指向它的构造函数的prototype每一个原型都有一个constructor属性,指向该关联的构造函数2 构造函数、原型对象和实例之间的关系function F(){}var f = new F();// 构造器console.log(F.p原创 2021-04-24 11:40:09 · 164 阅读 · 0 评论 -
JavaScript中的this
目录1 内存中的数据结构1.1 内存的数据结构1.2 函数的内存存放1.3 环境变量2 this的值是什么?2.1 语法糖转换2.2 []语法2.3 总结3 this的指向3.1 普通函数的this3.2 箭头函数的this3.3 匿名函数的this1 内存中的数据结构var obj = { foo: function () { console.log(this.bar) }, bar: 1};var foo = obj.foo;var bar = 2;obj.foo() // 1原创 2021-04-21 11:34:31 · 325 阅读 · 1 评论 -
DOM 重点核心
目录1 DOM 简介1.1 创建1.2 增1.3 删1.4 改1.5 查1.6 属性操作1.7 事件操作1 DOM 简介 关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。1.1 创建1.2 增1.3 删1.4 改1.5 查1.6 属性操作1.7 事件操作在这里插入图片描述...原创 2020-11-13 21:52:21 · 119 阅读 · 0 评论 -
JS 操作元素
目录1 操作元素1.1 改变元素内容1.2 表单元素的属性操作1.3 样式属性操作 JavaScript 的 DOM 操作可以改变网页内容、结构和样式,我们可以利用DOM操作元素来改变元素里面的内容、属性等。1 操作元素1.1 改变元素内容 这个是普通盒子 比如div 标签里面的内容element.innerText从起始位置到终止位置的内容,但它去除html标签,同时空格和换行也会去掉。不识别html标签。element.innerHTML起始位置到终止位置的全部内容,包括html标原创 2020-11-09 16:51:32 · 751 阅读 · 0 评论 -
JS 事件的执行
目录1 事件1.1 执行事件的步骤1.2 常见的鼠标事件1 事件1.1 执行事件的步骤获取事件源注册事件(绑定事件)添加事件处理程序<button id="btn">唐伯虎</button><script> // 点击一个按钮,弹出对话框 // 1. 事件是有三部分组成 事件源 事件类型 事件处理程序 我们也称为事件三要素 // (1) 事件源 事件被触发的对象 谁 按钮 var btn=document.ge原创 2020-11-08 15:57:01 · 258 阅读 · 0 评论 -
JS 数据类型
目录1 数据类型简介1.1 为什么需要数据类型1.2 变量的数据类型2 简单数据类型2.1 简单(基本)数据类型2.2 数字型 Number2.2.1 数字型进制2.2.2 数字型三个特殊值2.2.3 isNaN()2.3 字符串型String2.3.1 字符串引号嵌套2.3.2 字符串转义符2.3.3 字符串长度2.3.4 字符串拼接2.3.5 字符串拼接加强2.3.6 布尔型 Boolean2.3.7 Undefined和Null3 获取变量数据类型3.1 获取检测变量的数据类型4 数据类型转换4.1原创 2020-11-07 14:39:09 · 304 阅读 · 0 评论 -
JS引擎运行 js 预解析
目录1 JS引擎运行 js1.1 预解析1.2 代码执行2 代码案例2.1 第一个案例2.2 第二个案例2.3 第三个案例(重点)1 JS引擎运行 js 我们JS引擎运行js分为两步:预解析 、代码执行。1.1 预解析 预解析JS引擎会把js里面所有的var还有function提升到当前作用于的最前面。变量提升:就是把所有的变量声明提升到当前作用域的最前面,不提升赋值操作。函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数。1.2 代码执行 按照代码书写的顺序从上往下执行原创 2020-11-07 14:38:28 · 195 阅读 · 0 评论 -
JS 变量
目录1 变量概述1.1 什么是变量1.2 变量在内存中的存储2 变量的使用2.1 声明变量2.2 赋值2.3 变量的初始化2.4 变量语法扩展2.4.1 更新变量2.4.2 同时声明多个变量2.4.3 声明变量特殊情况3 变量命名规范4 小结1 变量概述1.1 什么是变量1.2 变量在内存中的存储 本质是程序在内存中申请的一块用来存放数据的空间。2 变量的使用 变量在使用时分为两步:1.声明变量 2.赋值2.1 声明变量2.2 赋值2.3 变量的初始化2.4 变量语法扩展2原创 2020-11-03 15:21:49 · 284 阅读 · 0 评论 -
JS 书写位置和输入输出语句
这里写目录标题1 JS书写位置1.1 行内式JS1.2 内嵌JS1.3 外部JS2 JS 输入输出语句1 JS书写位置JS书写位置分为3种:行内式JS、内嵌式JS和外部JS1.1 行内式JS1.2 内嵌JS1.3 外部JS2 JS 输入输出语句原创 2020-11-03 11:05:18 · 208 阅读 · 0 评论