我是靠谱客的博主 沉静星星,最近开发中收集的这篇文章主要介绍前端学习日记(一)——浅谈JS中的基本类型和引用类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JS中数据类型分为两大类:基本类型、引用类型。

        基本类型:字符串(string)、数值(number)、布尔值(boolean)、null、undefined、symbol(es6)

        引用类型:对象(Object)、数组(Array)、函数(Function)

// 值类型

// 1.string
var str = "admin";
console.log(str);
console.log(typeof str);

// 2.number
var number = 18;
console.log(number);
console.log(typeof number);

// 3.boolean
var bool = false;
console.log(bool);
console.log(typeof bool);

// 4.null
var variable = null;
console.log(variable);
console.log(typeof variable);

// 5.undefined
var variable2 = undefined;
console.log(variable2);
console.log(typeof variable2);

// 6.symbol(es6)
var id = Symbol("id");
console.log(id);
console.log(typeof id);

// 引用类型

// 1.对象
var o = new Object();
console.log(o);
console.log(o instanceof Object);

// 2.数组
var arr = new Array();
console.log(arr);
console.log(arr instanceof Array);

// 3.函数
var func = function () {};
console.log(func);
console.log(func instanceof Function);

基本类型和引用类型的区别:

        1、内存分配不同。

                基本类型:占用空间固定,保存在栈内存中。

                引用类型:占用空间不固定,保存在堆内存中。

        2、赋值机制不同。

                基本类型:保存与赋值的是值本身。(赋值)

                引用类型:保存与赋值的是指向值的指针,这个指针变量也是存在栈内存中。(赋址)

        3、检测类型方式不同。

                基本类型:使用typeof检测数据的类型。

                引用类型:使用instanceof检测数据类型。

栈内存和堆内存的区别:

                

        栈内存是有序存储,具有先进后出的特性;存储空间大小固定;并且由系统自动分配内存空间;

        堆内存是无序存储;存储空间大小可变;由代码进行指定分配和释放(JS是用JS引擎的垃圾回收机制回收)。

ps:出现栈内存和堆内存,通常是因为垃圾回收机制,为了更高效合理的使用内存。

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

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

最后

以上就是沉静星星为你收集整理的前端学习日记(一)——浅谈JS中的基本类型和引用类型的全部内容,希望文章能够帮你解决前端学习日记(一)——浅谈JS中的基本类型和引用类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部