js数据类型,及内存存储学习笔记-创新互联
一.Javascript的数据类型
10余年的霍城网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整霍城建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“霍城网站设计”,“霍城网站推广”以来,每个客户项目都认真落实执行。(1)基本类型:
undefined :指的是,使用var声明变量但未对其加以初始化, var meddling,对未初始化的变量执行typeof操作符会返回undefined,而对未声明的变量执行typeof操作符同样也会返回undefined
null :typeof操作符会返回object,只要保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。
Boolean:该类型有俩个字面值:true ,false 大小写区分
Number :有一个NaN,非数值,是一个特殊的数值 ,这个值用于表示一个本来要返回数值的操作数而未返回数值的情况(这样就不会抛出错误了)NaN的特点:任何涉及它的操作都会返回NaN;NaN与任何值都不相等(包括自身自己NaN)。
String
(2)引用类型:由多个值构成的对象
Object:object的每个实例都具有下列属性和方法:
constructor:保存着用于创建当前对象的函数;
hasOwnProperty(“propertyName”):用于检查给定的属性在当前实例(而不是在实例的原型中)是否存在。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
toString():返回对象的字符串表示
valueOf():返回对象的字符串,数值或布尔值表示
二.Js中对象的存储问题:
两中类型的特点:
(1)基本类型在内存中占据固定大小的空间,因此被保存在栈内存中。
(2)从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本
(3)引用类型的值是对像,保存在堆内存中,引用类型的值是引用访问的
(4)包含引用类型的值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针
(5)从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象。
(6)用typeof操作符来确定是哪种基本类型,typeof是一个操作符,而不是一个函数,因此typeof后面的圆括号可有可无,用instanceof操作符来确定是哪种引用类型。
栈的优势就是存取速度比堆要快,仅次于直接位于CPU中的寄存器,但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,垃圾收集器会自动地收走这些不再使用的数据,但是缺点是由于在运行时动态分配内存,所以存取速度较慢。
而对于js简单数据类型而言,他们占用内存比较小,如果放在堆中,查找会浪费很多时间,而把堆中的数据放入栈中也会影响栈的效率。比如对象和数组是可以无限拓展的,正好放在可以动态分配大小的堆中。
三. Js中内存管理:
主要问题是:分配给web浏览器的可用内存数量通常要比分配给桌面应用程序的少,目的是防止运行js的网页耗尽全部系统内存而导致系统崩溃。
Js是一门具有自动垃圾收集机制的编程语言。
Js的垃圾回收机制内容:
(1)离开作用域的值将被自动标记为可以回收,(比如局部变量,在运行完之后,就被自动标记,闭包的时候,属于特殊情况),因此将在垃圾收集期间被删除。
(2)“标记清除”是目前主流的垃圾收集算法,这种算法的思想是给当前不适用的值加上标记,然后在回收其内存。一般这些都是用在全局变量上。
(3)“引用计数”,另一种垃圾收集算法,这种算法的思想是,跟踪记录所有值被引用的次数,该算法在当前的搜索引擎中都不在使用
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文题目:js数据类型,及内存存储学习笔记-创新互联
当前地址:http://cdiso.cn/article/dsigpe.html