慕课:笔记

news2024/11/20 3:33:52

课程链接:直面JavaScript中的30个疑难杂症_JavaScript面试题-慕课网

第二章:数据类型

数据类型是每门编程语言的必修之课,你是否对JavaScript的数据类型和检测存在困惑,本章节将为你揭晓其中的奥秘,让你对数据类型有更深的理解。

typeof和instanceof的区别

目录

第二章:数据类型

typeof和instanceof的区别

少null

多function

堆 栈

如何快熟实现深浅拷贝

开发中常用的数据类型转换

第三章:表达式运算符和分支结构

3-1 运算符多的情况下需要注意哪些

运算符优先级

js舍人误差

3-2 开发中优化for循环

第四章:内置对象

4-1 js中常见的内置对象有哪些

4-2 面试常见装箱和拆箱的理解

4-3 带你深入理解栈和队列

什么使栈和队列?

push\pop\shift\unshift

4-4 你不知道的sort排序

sort是如何排序的?

如何解决sort排序的问题?

4-5 Date对象中getMonth()需要注意的

4-6 开发中编码和解码使用场景有哪些

第5章:JS DOM

第6章 JS BOM

6-1 开发中使用history和location需要注意哪些

第7章 函数对象(重难点)

7-1 常见函数的四种类型有哪些

函数的四种类型:匿名函数、回调函数、递归函数、构造函数

7-2 一定要知道的变量和函数提升

7-3 带你深入理解作用域和作用域链

7-4 带你图解执行环境

7-5 开发中重载和多态的使用场景有哪些

7-6 高频面试题闭包理解

7-8 new的执行过程有哪几步

7-9 开发中使用this的坑有哪些

第8章 面向对象(重难点)

8-1 面试高频如何理解面向对象

8-2 带你图解原型和原型链(1)

8-3 带你图解原型和原型链(2)

8-4 开发中如何使用继承

8-5 开发中如何运用 Object.defineProperty()方法

第9章 课程总结


口诀:typeof少null多function

少null

                机器码检测后三位

                null的机器码 000...000=》object
                typeof([]) //object 数组引用数据类型

多function

                typeof 检测引用数据类型返回object、function

                object定义一个内部方法[[call]],typeof检测object有没有内部方法,

                                有   返回function

                                无   返回object

instanceof检测返回布尔值

A instanceof B :A是由B实例化后的对象

推荐检测数据类型:object.prototype.toString.call('1') //string

Object.prototype.toString.call(obj)精确判断对象的类型_wayne丶的博客-CSDN博客

堆 栈

主要区别:堆在栈里面存的是一个地址;栈存的是一个原始类型的数值。

如何快熟实现深浅拷贝

1.遍历赋值 \\浅拷贝

2.object.create() \\浅拷贝

3.JSON.parse[JSON.stringify(obj)] //object->string->object

JSON.parse和JSON.stringify的用法

function deepClone(startObj, endObj) {
            var obj = endObj || {}
            for (var i in startObj) {
                if (typeof startObj[i] === "object") {
                    //[] {}
                    obj[i] = startObj[i].constructor === Array ? [] : Object.create(null)
                    deepClone(startObj[i], obj[i])
                } else {
                    obj[i] = startObj[i]
                }
            }
            return obj
        }

开发中常用的数据类型转换

1.特殊类型的隐士转换 NaN、0、undefined、null =>false ;不是这5种转换true

2.&&和||

3.==和===

第三章:表达式运算符和分支结构

3-1 运算符多的情况下需要注意哪些

本章节的内容较为简单,探讨开发中摄入误差的解决方案以及对于for循环的优化。

运算符优先级

算术操作符 → (关系运算符)比较操作符 → 逻辑操作符 → "="赋值符号

(+,-,,/,++,–,%) (<,>,,=,<=,>=,!=) (&&,||,!) (=,+=,-=,…)

js舍人误差

// console.log(0.1+0.2);
// 转换为二进制相加后得到的数值再转为十进制(有误差)

// 方案一:
console.log(parseFloat((0.1+0.2).toFixes(2))//0.3
//方法二:
function add(num1,num2){
  m=Math.pow(10,2)
  return (num1*m+num2*m)
}
console.log(add(0.1,0.2))

3-2 开发中优化for循环

// 正常for循环
var len=arr.length
for(var i=0;i<arr.length;i++){
  // do something
}

// 优化后for循环
for(var i=0,len=arr.length;i<len;i++){
  // do something
}

第四章:内置对象

4-1 js中常见的内置对象有哪些

JavaScript的对象--内置对象_chnnds的博客-CSDN博客_什么是内置对象

三种包装对象,直接是无法使用的,通过构造函数内有包装方法,包装后输出,输出前将方法进行清空

Arry是构造函数,Math是全局内置对象

4-2 面试常见装箱和拆箱的理解

课程要点:明白装箱原理,上一节课内容

4-3 带你深入理解栈和队列

什么使栈和队列?

push\pop\shift\unshift

4-4 你不知道的sort排序

sort是如何排序的?

如何解决sort排序的问题?

4-5 Date对象中getMonth()需要注意的

4-6 开发中编码和解码使用场景有哪些

JavaScript中有很多内置对象,我们会讲述其中一些比较令人困惑的知识点,例如包装类型对象的装箱拆箱,为什么sort排序有问题,什么是堆栈等等

第5章:JS DOM

DOM操作是前端必学之路,当我们掌握DOM之后才能操作我们的页面,整个一个DOM页面是如何被绘制到浏览器上的,我们需要理解其中的DOM事件,事件的触发、冒泡等功能。

事件绑定相当于附地址

5-3

5-4

第6章 JS BOM

BOM中的location和historyAPI用法很简单,但是也是我们工作经常会使用的,所以彻底掌握才能在开发中游刃有余。

6-1 开发中使用history和location需要注意哪些

window.history属性指向History对象,表示当前的浏览历史
        以入栈的形式压入
        History.back()
        History.forward()
        History.go(-1) 0 -2
        History.pushState(),History.replaceState()


        Location对象window.location和document.location属性,可以拿到这个对象。
        Location.href:整个URL。
        Location.protocol:当前uRL 的协议,包括冒号( :)。
        Location.host:主机。如果端口不是协议默认的80和433,则还会包括冒号(:)和端口。
        Location.hostname:主机名,不包括端口。
        Location.port:端口号。
        Location.pathname: URL的路径部分,从根路径/开始。
        Location.search:查询字符串部分,从问号?开始。
        Location.hash:片段字符串部分,从#开始。
        Location.username:域名前面的用户名。
        Location.password:域名前面的密码。
        Location.origin: URL的协议、主机名和端口。

第7章 函数对象(重难点)

7-1 常见函数的四种类型有哪些

这一章是一个重难点,能为我们带来面试中常见的闭包,以及应用;对浏览器如何执行JS的执行环境,助你理解new、this等关键字。

函数的四种类型:匿名函数、回调函数、递归函数、构造函数

匿名函数:定义时侯没有任何变量引用的函数

复习时:function(){}()匿名函数自调用

7.13

回调函数:一个函数作为对象交给其他函数使用

eg:sort传入的函数叫回调函数

下图解说:返回回来的数据通过回调函数器执行如success

递归函数:循环调用函数本身

构造函数:习惯上首字母大写,调用

7-2 一定要知道的变量和函数提升

重点掌握:Js解释执行、变量和函数提升

7-3 带你深入理解作用域和作用域链

重点:全局作用域,函数作用域;作用域链;

7-4 带你图解执行环境

7-5 开发中重载和多态的使用场景有哪些

7-6 高频面试题闭包理解

7-7 开发中call、apply、bind的使用场景区分

7-8 new的执行过程有哪几步

7-9 开发中使用this的坑有哪些

第8章 面向对象(重难点)

面试中你肯定会遇到原型和原型链,什么是面向对象;这一章将带你画图彻底理解什么是原型,以及Function和Object到底是什么关系。我们再实际应用中如何是使用这些知识。

8-1 面试高频如何理解面向对象

封装:常用的方法,定义一个run:function(){},写在function里面

多态-重载:传入的形式不同,展现的状态不同(计算的方式不同)

多态-重写:子类继承父类的方法。但感觉run方法不太好。自己写一个覆盖掉run

8-2 带你图解原型和原型链(1)

JS中几乎所有都是对象,对象最终会指向null

8-3 带你图解原型和原型链(2)

8-4 开发中如何使用继承

8-5 开发中如何运用 Object.defineProperty()方法

第9章 课程总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

矩阵压缩算法

当矩阵中存在着重复元素时&#xff0c;为了节省空间会采用压缩算法&#xff0c;关键在于原矩阵空间与压缩后数据结构的对应&#xff1b; 1.对称压缩&#xff1a;数据沿对角线对称的情况&#xff1b; 将矩阵压缩为一维数组&#xff0c;数组的长度是&#xff1a; 对于num[n][n…

VMware虚拟机暴露端口至公网方法流程详解

目录 需求背景 解决方法 准备工作 虚拟机ip设置方法 需求背景 一台电脑需要连接另一台电脑上的虚拟机的端口&#xff0c;直接ping是无法ping通的&#xff0c;因为本地虚拟机的端口未暴露至公网。 解决方法 虚拟机&#xff1a;CentOS 7 64 Linux 本机&#xff1a;Window…

C专家编程 —— 运行时数据结构

文章目录 代码和数据段代码与可执行文件中对应的位置可执行文件中的段在内存中的布局加入动态链接库的内存空间布局堆栈段的作用过程活动记录函数调用过程记录举例 static和auto关键字 汇编嵌入C代码 代码和数据 代码和数据的区别可以理解为编译时和运行时的分界线。 代码&…

guacamole 纯web rdp预研:相关JAVA基础

文章目录 guacamole 纯web rdp预研:相关JAVA基础1. pom.xml2 scm标签3 application/octet-stream4. tomcat webapps下war包5 maven-assembly-plugin maven assembly插件介绍什么是assembly&#xff1f; 6. Mavenz中的source插件的使用和注意事项。7. Maven私库安装与配置8. 配置…

深度学习之目标检测R-CNN模型算法流程详解说明(超详细理论篇)

1.R-CNN论文背景 2. R-CNN算法流程 3. R-CNN创新点 一、R-CNN论文背景 论文网址https://openaccess.thecvf.com/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf   RCNN&#xff08;Region-based Convolutional Neural Networks&#xff…

牛客网基础语法81~90题

牛客网基础语法81~90题&#x1f618;&#x1f618;&#x1f618; &#x1f4ab;前言&#xff1a;今天是咱们第九期刷牛客网上的题目。 &#x1f4ab;目标&#xff1a;可以循环嵌套使用熟练&#xff0c;数组的变问题&#xff0c;对数学知识掌握更加清晰。 &#x1f4ab;鸡汤&…

Matplotlib---热力图

1. 热力图 imshow 是 Matplotlib 库中一个函数&#xff0c;主要用于在 Python 中显示图像。它的完整参数列表如下&#xff1a; matplotlib.pyplot.imshow(X, cmapNone, normNone, aspectNone, interpolationNone, alphaNone, vminNone, vmaxNone, originNone, extentNone, sh…

管理类联考——逻辑——知识篇——论证推理——三、假设——haimian

假设 考点分析 假设 年度 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023题量1132111 主要问法 上述论述是基于以下哪项假设?基于以下哪项假设能使上述推理成立?上述论证依赖于以下哪项假设?得到这一结论的前提条件是? 解题思路 阅读问题&#xff0c;确…

【TCP/IP】多播 - 定义、原理及编程实现(TTL、多播组、收发信息)

目录 多播 多播的原理 多播的数据传输时的特点 TTL 的概念 TTL 和 多播组的配置方法 多播的编程与实现 发送者 接收者 多播 多播是一种介于单播和广播通信之间的技术方式&#xff0c;可以将发送者所需要发送的数据包分别发送给分散在不同子网中的一组接收者。 多播的原…

分布式软件架构——事务ACID

事务概念 事务处理几乎是每一个信息系统中都会涉及到的问题&#xff0c;它存在的意义就是保证系统中的数据是正确的&#xff0c;不同数据间不会产生矛盾&#xff0c;也就是保证数据状态的一致性&#xff08;Consistency&#xff09; 关于一致性&#xff0c;我们重点关注的是数…

ElasticSearch-安装Head可视化插件

安装Head可视化插件 首先需要依赖node.js和npm环境 1 安装node.js 官方下载地址:http://nodejs.cn/download/ 下载LTS版本&#xff08;长期稳定版本&#xff09; 安装可以更改安装路径,其余的都是选择 下一步傻瓜是安装 安装成功后如下 命令测试 node -v 查看node的版本 n…

理解redis的多线程和IO多路复用

参考资料 https://blog.csdn.net/TZ845195485/article/details/119745735 Redis单线程和多线程问题的背景 Redis里程碑版本迭代 Redis的单线程 主要是指Redis的网络IO和键值对读写是由一个线程来完成的&#xff0c;Redis在处理客户端的请求时包括获取&#xff08;socket读&a…

「实验记录」MIT 6.824 KVRaft Lab3A Without Log Compaction

#Lab3A - KVRaft without log compaction I. SourceII. My CodeIII. MotivationIV. SolutionS1 - client请求S2 - server回应 V. Result I. Source MIT-6.824 2020 课程官网Lab3: KVRaft 实验主页simviso 精品付费翻译 MIT 6.824 课程Paper - Raft extended version II. My C…

Python顺序结果、选择结构、循环结构(超详细讲解+多段代码案例)

我本微末凡尘&#xff0c;可也心向天空 文章目录 一、顺序结构 二、选择结构 1.if----elif----else语句 2.条件表达式 三、循环结构 1.range函数 2.while 循环 3. for----in 循环 四、continue、break在循环中的使用 大家好&#xff0c;我是纪宁 今天要介绍的是python…

fatal error: ‘type_traits‘ file not found错误解决

错误如下 In file included from ../test_opencv_qt/main.cpp:1: In file included from ../../Qt/6.5.1/android_x86_64/include/QtGui/QGuiApplication:1: In file included from ../../Qt/6.5.1/android_x86_64/include/QtGui/qguiapplication.h:7: In file included from .…

Nginx 限流算法大揭秘

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

01 | 一条 SQL 查询语句是如何执行的?

以下内容出自 《MySQL 实战 45 讲》 一条 SQL 查询语句是如何执行的&#xff1f; 下面是 MySQL 的基本架构示意图&#xff0c;从中可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 Server …

leetcode188. 买卖股票的最佳时机 IV.动态规划-java

买卖股票的最佳时机 IV leetcode188. 买卖股票的最佳时机 IV题目描述 动态规划代码演示 动态规划专题 leetcode188. 买卖股票的最佳时机 IV 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-st…

DatenLord前沿技术分享 No.28

达坦科技专注于打造新一代开源跨云存储平台DatenLord&#xff0c;通过软硬件深度融合的方式打通云云壁垒&#xff0c;致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题&#xff0c;以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。在本周…

Reentrantreadwritelock应用和原理

目录 一、介绍 二、应用 三、原理 一、介绍 当读操作远远高于写操作时&#xff0c;这时候使用读写锁让读-读可以并发&#xff0c;提高性能 类似于数据库中的共享锁 select...from...lock in share mode 提供一个数据容器类内部分别使用读锁保护数据的read()方法&#x…