IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JS面试题 -> 正文阅读

[JavaScript知识库]JS面试题

1.基本数据类型有几种?(高频)

String,Boolean,Number,Null,undefiend,Symbol(es6)

Symbol:定义对象的唯一标识(可以理解为id)?

let a = '';  // 字符串String
let a = true; // Boolean类型
let a = 1; // 数字Number
let a = null; // 空
let a = undefined;
let name = Symbol();  
console.log(typeof name); // Symbol

?基本类型的内存占据空间小,大小固定,他们的值保存在栈空间,按值来访问

https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive

2.引用数据类型有哪几种?(高频)也叫对象数据类型

Object,Array,function

引用类型占据空间大,大小不固定,栈内存中存放地址指向堆内存中的对象。是按引用访问的?

内建对象:https://www.cnblogs.com/yxbje/p/7395614.html

3.了解过基本数据类型和引用数据类型后,我们了解一下什么叫堆(stack)栈(heap)

  • ?栈(stack):自动分配内存空间,由系统自动释放(也就是定义一个变量,使用完系统自动处理)
  • 堆(heap):动态分配内存,大小不一定自动释放

?如图:

当我们看到一个变量类型是已知的,就分配在栈里面,比如INT,Double等。其他未知的类型,比如自定义的类型,因为系统不知道需要多大,所以程序自己申请,这样就分配在堆里面。?

?堆内存和栈内存:

为使程序运行时占的内存小,通长使用垃圾回收机制

当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈存里,随着方法的执行结束,这个方法的栈存也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;

当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本开销较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。

思考:

demo1

var a = 1;
var b = a;
b = 2;

// 这时a是?

demo1中在变量对象中的数据发生复制行为时,系统会自动为新的变量分配一个新值。var b = a执行之后,b虽然重新赋值为2,但是他们其实已经是相互独立互不影响的值了。

(可以理解为2个变量,a给b赋值之后,与a不相关了,存放的是栈内存中)

demo2

var m = { a: 1, b: 2 }
var n = m;
n.a = 2;

// 这时m.a的值呢?

demo2中我们通过var n = m执行一次复制引用类型的操作。引用类型的复制同样也会为新的变量自动分配一个新的值保存在变量对象中,但不同的是,这个新的值,仅仅只是引用类型的一个地址指针。当地址指针相同时,尽管他们相互独立,但是在变量对象中访问到的具体对象实际上是同一个。因此当我改变n时,m也发生了变化。这就是引用类型的特性。

(可以理解为在堆内存中开辟出的地址,但是这两个变量是在栈内存中,指针指向的是堆内存的同一个地址)

https://www.cnblogs.com/jing-tian/p/11100105.html?

https://www.cnblogs.com/lhh520/p/10176982.html

https://blog.csdn.net/weixin_38383877/article/details/81811621

3.typeof返回值类型共有7种。(高频)

undefined,string,number,boolean,symbol(ES6),object,function

1.number

typeof(10);
typeof(NaN); //NaN在JavaScript中代表的是特殊非数字值,它本身是一个数字类型。
typeof(Infinity);

2.boolean

typeof(true);
typeof(false);

?3.string

typeof("abc");

4.undefined

typeof(undefined);
typeof(a);//不存在的变量

5.object

对象,数组,null返回object
typeof(null);
typeof(window);

?6、function

typeof(Array);
typeof(Date);

?7、symbol

typeof Symbol() // ES6提供的新的类型

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof

?4.强制类型转换。(高频)

https://www.jianshu.com/p/d37cdc717f72?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:43:35  更:2021-09-07 10:44:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:14:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码