没有合适的资源?快使用搜索试试~ 我知道了~
JavaScript 24道面试题和答案.docx
需积分: 0 0 下载量 120 浏览量
2023-06-15
17:20:21
上传
评论
收藏 22KB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/87912770/0001-c37e30afb5414e6539a4a5c434a7a063_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
14页
JavaScript 24道面试题和答案.docx
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![vsix](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/release/download_crawler_static/87912770/bg1.jpg)
有哪些数据类型?
根据 JavaScript 中的变量类型传递方式,分为基本数据类型和引用数据类型两大类七种。
基本数据类型包括 Undefined、Null、Boolean、Number、String、Symbol(ES6 新增)六种。引用数据
类型只有 Object 一种,主要包括对象、数组和函数。
判断数据类型采用 typeof 操作符,有两种语法:
typeof 123;//语法一
const FG=123;
typeof FG;//语法二
typeof(null)//返回 object;
null==undefined//返回 true,因为 undefined 派生自 null;null===undefined//返回 false。
基本数据类型和引用数据类型有什么区别?
两者作为函数的参数进行传递时:
1、基本数据类型传入的是数据的副本,原数据的更改不会影响传入后的数据。
2、引用数据类型传入的是数据的引用地址,原数据的更改会影响传入后的数据。
两者在内存中的存储位置:
1、基本数据类型存储在栈中。
2、引用数据类型在栈中存储了指针,该指针指向的数据实体存储在堆中。判断数据类型的方法有
哪些?
1、利用 typeof 可以判断数据的类型;
2、A instanceof B 可以用来判断 A 是否为 B 的实例,但它不能检测 null 和 undefined;
3. B. constructor==A 可以判断 A 是否为 B 的原型,但 constructor 检测 Object 与 instanceof 不一样,还可
以处理基本数据类型的检测。
不过函数的 constructor 是不稳定的,这个主要体现在把类的原型进行重写,在重写的过程中很有可
能出现把之前的 constructor 给覆盖了,这样检测出来的结果就是不准确的。
4、Object. prototype. toString. call()
Object. prototype. toString. call()是最准确最常用的方式。
与深拷贝有何区别?如何实现?
浅拷贝只复制指向某个对象的指针,而不复制对象本身。浅拷贝的实现方式有:
![](https://csdnimg.cn/release/download_crawler_static/87912770/bg2.jpg)
1. Object. assign():需注意的是目标对象只有一层的时候,是深拷贝
2、扩展运算符;
深拷贝就是在拷贝数据的时候,将数据的所有引用结构都拷贝一份。深拷贝的实现方式有:
1、手写遍历递归赋值;
2、结合使用 JSON. parse()和 JSON. stringify()方法。
什么是执行上下文和执行栈?
变量或函数的执行上下文,决定了它们的行为以及可以访问哪些数据。每个上下文都有一个关联
的变量对象,而这个上下文中定义的所有变量和函数都存在于这个对象上(如 DOM中全局上下文关
联的便是 window 对象)。
每个函数调用都有自己的上下文。当代码执行流进入函数时,函数的上下文被推到一个执行栈中。
在函数执行完之后,执行栈会弹出该函数上下文,在其上的所有变量和函数都会被销毁,并将控
制权返还给之前的执行上下文。JS 的执行流就是通过这个执行栈进行控制的。
什么是作用域和作用域链?
作用域可以理解为一个独立的地盘,可以理解为标识符所能生效的范围。作用域最大的用处就是
隔离变量,不同作用域下同名变量不会有冲突。ES6 中有全局作用域、函数作用域和块级作用域三
层概念。
当一个变量在当前块级作用域中未被定义时,会向父级作用域(创建该函数的那个父级作用域)寻找。
如果父级仍未找到,就会再一层一层向上寻找,直到找到全局作用域为止。这种一层一层的关系,
就是作用域链。
作用域和执行上下文的区别是什么?
1、函数的执行上下文只在函数被调用时生成,而其作用域在创建时已经生成;2、函数的作用域
会包含若干个执行上下文(有可能是零个,当函数未被调用时)。
this 指向的各种情况都有什么?
this 的指向只有在调用时才能被确定,因为 this 是执行上下文的一部分。
全局作用域中的函数:其内部 this 指向 window:
var a = 1;
function fn(){
console. log(this. a)
﹞
![](https://csdnimg.cn/release/download_crawler_static/87912770/bg3.jpg)
fn()//输出 1
对象内部的函数:其内部 this 指向对象本身:
var a = 1;
var obj ={
a:2,
fn:function(){
console. log(this. a)
}
〗
obj. fn()//输出 2
构造函数:其内部 this 指向生成的实例:
function createP(name,age){
this. name=name //this. name 指向 P
this. age=age //this. age 指向 P
﹞
var p=new createP("老李",46)
由 apply、call、bind 改造的函数:其 this 指向第一个参数:
function add(c,d){
return this. a+this. b+c+d
}
var o = {a:1,b:2)
add. call(o,5,7)//输出 15
箭头函数:箭头函数没有自己的 this,看其外层的是否有函数,如果有,外层函数的 this 就是内部
箭头函数的 this,如果没有,则 this 是 window。
如何改变 this 指针的指向?
剩余13页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
红红火火a
- 粉丝: 21
- 资源: 1813
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)