JavaScript进阶【博学谷学习记录】超强总结,用心分享
类和构造函数的区别?
一,变量提升问题
二,new的问题
三, class采用的是严格模式
构造函数声明的函数具有变量提升的特性,类声明的具有严格模式,没有变量提升。
四,class原型上的对象不能遍历
构造函数适用于创建多个对象的场景,对于属性一样的对象,可以把公共的属性封装到函数中,就可以很方便的创建对象,函数第一个字母是大写的函数,使用这个函数需要new,被称为实例化,构造函数不要return。
构造函数存在问题:浪费内存 解决方法使用原型解决:将不变的属性或方法定义在原型上,可以节约空间,共享方法和属性。
构造函数和原型对象的this指向都是实例化后的对象。
构造函数的静态成员和实例成员的理解?
构造函数的静态成员是指构造函数的方法和成员,实例成员是指构造函数通过实例化后的所拥有的成员属性和方法。
forEach仅仅是遍历的作用,是加强办的for循环,没有返回值
map遍历有return,返回新数组
filter可以筛选出符合条件的数组,有返回值。
reduce是一个累计器,通常用于累计求和
some
every
构造函数的应用:引用数据类型、包装数据类型(简单数据类型包装成了复杂数据类型)
Object、Arry、Number,因此这些数据类型可以调用这些构造函数上的方法。
更改this指向的三种方式,call、apply、bind
区别:
call可以更改this指向,并调用函数,可以传入多个参数,第一个参数为this指向的对象,第二个参数为传入的参数
apply可以更改this指向,并调用函数,可以穿入两个参数,第一个伪this指向的对象,第二个是一个数组参数
bind可以更改this指向,并返回一个新的函数,不会调用原函数,第一个参数为更改的this指向。
原型链:为了方便查找构造函数中的静态方法而引入的概念
构造函数通过new实例化后得到一个实例对象,实例对象可以继承构造函数上的静态方法,构造函数的prototype属性上的方法,prototype是构造函数的原型对象,实例对象的–proto–属性指向原型对象,原型对象有个constructor属性指回他的构造函数,原型对象也有–proto–属性指向Object的原型对象,Object原型对象的–proto-属性指向null。
JS的垃圾回收机制,引用清除法、标记清除法;早期的回收方式是引用清除法,效果显著,但在相互应用的对象中无法清除回收,后面出现了标记清除的方式,完美解决了引用清除法的问题。
防抖和节流:提升性能方面的重要方式
防抖是指:触发事件后n秒后只执行一次,如果在n秒内又触发了事件,就会重新计算执行时间。
节流是指:连续触发的事件,在n秒内只执行一次。
闭包:在嵌套的函数结构中,若外层想得到内层函数中的变量值,可以通过闭包实现。内层函数使用外层函数的值,并通过外层函数调用的到他的值。好处是可以衍生变量的作用域,但大量使用闭包会造成内存溢出。
深浅拷贝:对于复杂数据来说,深拷贝会创建一个新的地址,并把数据赋值到新地址,对于浅拷贝则是赋值一个地址指向这个变量。
数组的方法和字符串的方法:
find查找、some、ervery、concat合并数组返回新数组、sort排序、查找索引findindex、join合并数组返回字符串、reserve翻转数组、splice删除数组元素、pop、push、shift、unshift。
字符串方法略。
JavaScript进阶【博学谷学习记录】超强总结,用心分享相关推荐
- [博学谷学习记录]超强总结,用心分享|第07节 常用的API-----笔记篇
目录 1.API 1.1 API概述-帮助文档的使用 1.2 键盘录入字符串 2. String类 2.1 String概述 2.2 String类的构造方法 2.4 创建字符串对象的区别对比 2.5 ...
- {博学谷学习记录} 超强总结,用心分享|狂野架构师-前置互联网架构演变过程
本章以系统架构,数据架构,两种维度来进行讲解 目录 1 系统架构 1,1 单体架构 1.2 中台战略 2 数据库架构 2,1 单体架构 2.2 主从读写 2.3 分库分表 3 总结 1 系统架构 1, ...
- [博学谷学习记录]超强总结,用心分享|架构 Nacos入门
提示:学习笔记 欢迎指点 文章目录 前言 一.Nacos安装 二.Nacos服务注册与发现 1.服务提供者Provider 2.服务消费者Consumer 三.Nacos作为配置中心 前言 Nacos ...
- [博学谷学习记录]超强总结,用心分享|架构 敏捷 - 开发管理之道
提示:学习笔记 欢迎指点 文章目录 1.敏捷开发思想之道 2.面向对象开发之道 3.敏捷学习之道 1.敏捷开发思想之道 一名敏捷开发者,敏捷思想的掌握自然首当其冲.在敏捷开发实施的过程中,我们虽然不是 ...
- [博学谷学习记录]超强总结,用心分享|第16节 集合续-----笔记篇
目录 1.HashSet集合 1.1HashSet集合概述和特点[应用] 1.2HashSet集合的基本应用[应用] 1.3哈希值[理解] 1.4哈希表结构[理解] 1.5HashSet集合存储学生对 ...
- [博学谷学习记录] 超强总结,用心分享|陌陌综合案例
注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flin ...
- [博学谷学习记录]超强总结,用心分享|Hive的压缩格式
压缩格式 工具 算法 文件扩展名 是否可切分 DEFAULT 无 DEFAULT .deflate 否 Gzip gzip DEFAULT .gz 否 bzip2 bzip2 bzip2 .bz2 是 ...
- [博学谷学习记录]超强总结,用心分享|软件测试之计算机基础(一)
本周开始学习软件测试,而我也即将开始在平台记录我的学习之路.我会把我的个人心得及掌握的知识发布在此平台,俗话说最好的输入就是输出,希望在输出的同时能有更多的收获,也希望与大家多多交流. 为了更好的学习 ...
- [博学谷学习记录]超强总结,用心分享|人工智能机械学习基础知识线性回归总结分享
1.线性回归的核心是参数学习,线性回归和回归方程(函数)有关 2.线性回归是目标值预期是输入变量的线性组合 3.欠拟合的产生原因是学习到数据的特征过少 4.多元线性回归中的"线性" ...
- [博学谷学习记录] 超强总结,用心分享|JavaEE就业课-尊享无忧+Java基础语法|面向对象(1wk)
学习笔记目录 目录 学习笔记目录 前言 一.变量 1. 关键字:被java赋予特殊含义的字符 2. 常量:不会发生改变的量(数据)编辑 3. 变量:内存中的存储空间. 4. 类型转换 5. 算术运算 ...
最新文章
- 客户端dmesg_打印调试技术 printk klogd dmesg(解决打印信息的问题)
- Numpy中的通用函数和聚合
- JDK13 GA发布:5大特性解读
- CodeForces 518A - Chewbaсca and Number(思路)
- 性味归经与功能的脚本(超过四元素)
- java -jar 停止_推荐:Linux启动Java程序jar包Shell脚本
- 5G时代 我国在通信技术领域弯道超车指日可待
- 打开高效文本编辑之门_Linux sed之多行命令与循环命令
- linux crm高可用网卡,Linux运维——pacemaker实现高可用-Go语言中文社区
- python 之 XML的基本应用总结
- 孕妇可以在计算机教室待吗,电脑对孕妇有辐射吗?孕妇使用电脑的注意事项
- splice方法_Array中splice用法
- mysql binlog rotate_mysql binlog日志存储格式
- 杨森翔的书法(对联、斗方、圆光)
- 同构数的算法——C语言
- python 返回列表长度_Python通过len函数返回对象长度
- 卡耐基梅隆大学 计算机信息管理,CMU-喜报!G同学成功收到2017-Fall 卡耐基梅隆大学 计算机信息技术硕士AD一枚...
- 数据中台到底是什么?
- 第九层(1):初识STL
- 【XSY3367】青春野狼不做姐控偶像的梦(线段树)
热门文章
- Hadoop完全分布式集群搭建
- 软件生存周期与开发模型
- 微信:又一个入口万能论来临 可是值十亿美金么
- 固定/删除sql计划基线
- 森林图怎么分析_股票趋势图怎么看 这些炒股基础知识建议掌握-趋势分析-股票技巧-股票入门基础知识学习网...
- 安装win10时,提示“我们无法创建新的分区,也找不到现有分区”
- Win19 64位安装mysql8.0.18数据库,及忘记密码重置操作。
- 什么样的云计算服务,才能为企业“出海”保驾护航?
- knime工具介绍(1)
- JZOJ 5495 MiniumCut (最小割树)