js中基本包装类型详情
基本包装类型
基本包装类型有Boolean,Number和string类型,每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型对象.
从逻辑上,基本类型值不是对象,没有方法,但从技术上来看,当读取一个基本类型值时,后台会自动运行下面的过程:
- 创建一个基本包装类型Boolean,Number,String类型的一个实例
- 在实例上调用指定的方法
- 销毁基本包装类型实例
可以将上面的过程想象为下面的代码:
var s1 = new String("some text");// Boolean, Number 也是如此
var s2 = s1.substring(2);
s1 = null;
虽然在技术上这样可以创建基本包装类型的实例,但在非必要的情况下,千万不要这么做.
因为对基本包装类型的实例调用 typeof 会返回"object",而且所有基本包装类型的实例都会被转换为布尔值 true。
引用类型和基本包装类型的主要区别就是实例的生存期:
- 使用 new 操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中.
- 后台自动创建的基本包装类型的实例,只会存在一行代码中,因此不能在运行时为基本包装类型添加属性和方法
var s1 = "some text";
s1.color = "red";
console.log(s1.color);// undefined
使用Object构造函数来创建基本包装类型的实例
var obj = new Object("some text");
console.log( obj instanceof String );// true
var obj = new Object(25);
console.log( obj instanceof Number );// true
var obj = new Object(true);
console.log( obj instanceof Boolean );// true
js中基本包装类型详情的更多相关文章
- 5.6 JS中基本包装类型
为了便于操作基本类型值,ES还提供了三种特殊的引用类型,即(基本包装类型):Number,String,Boolean.这三种类型与前面介绍的引用类型相似,但同时也拥有基本数据类型的一些特性. 平时经 ...
- js中的包装对象。
我们都知道在js中普通类型的变量是没有属性和方法的,然后有时却并不是这样. var str = "努力,奋斗"; console.log(str.length); var num ...
- js之基本包装类型
为了便于操作“基本类型值”,JS 提供了 三个 特殊的引用类型:Boolean.Number.String.这些类型和其他引用类型相似,但同时 也具备 与各自基本类型相应的特殊行为. 实际上:每当读取 ...
- js的基本包装类型
基本包装类型(包装对象): 先看下以下代码: var s1 = "helloworld"; var s2 = s1.substr(4); 上面我们说到字符串是基本数据类型,不应该有 ...
- js中的变量类型
js 中输出定义变量的类型 typeof 变量名. var u: --underfined类型 var s = "你是一个好人": --string类型 var n = ...
- JS中的各种类型转换规则(转)
JS中的类型转换非常恶心,大家都懂的,不过该学还是要学. 今天看犀牛书看到了转换规则,总结出来. X转字符串.数字.布尔值 X表示各种类型的值,直接上图: 值 转数字 转字符串 转布尔值 undefi ...
- JS 中对变量类型的五种判断方法
5种基本数据类型:undefined.null.boolean.unmber.string 复杂数据类型:object. object:array.function.date等 方法一:使用typeo ...
- JS中 typeof,instanceof类型检测方式
在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...
- JS 中对变量类型判断的几种方式
文章整理搬运,出处不详,如有侵犯,请联系~ 数据类型判断和数据类型转换代码工具 在 JS 中,有 5 种基本数据类型和 1 种复杂数据类型,基本数据类型有:Undefined, Null, Boo ...
随机推荐
- 快站中如果点击报错,则用jquery的点击方式来书写!!!
如题 上传快站常用的css /* 上传快站额外的css */ .sys-title-1 { display: none !important; } .nav-header { height: 0 !i ...
- 入门平衡树: Treap
入门平衡树:\(treap\) 前言: 如有任何错误和其他问题,请联系我 微信/QQ同号:615863087 前置知识: 二叉树基础知识,即简单的图论知识. 初识\(BST\): \(BST\)是\( ...
- [HNOI2016]序列 CDQ+DP
[HNOI2016]序列 CDQ 链接 loj 思路 一个点最小变为l,最大变为r,不变的时候为v 那么j能在i前面就要满足. \(j<i\) \(r[j]<=v[i]\) \(v[j]& ...
- loj2058 「TJOI / HEOI2016」求和 NTT
loj2058 「TJOI / HEOI2016」求和 NTT 链接 loj 思路 \[S(i,j)=\frac{1}{j!}\sum\limits_{k=0}^{j}(-1)^{k}C_{j}^{k ...
- javaScript之DOM,BOM
javaScript之BOM / DOM: BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ...
- KVM原理及使用
Qemu 和 Qemu-kvm Qemu: http://qemu-project.org/Download Qemu-kvm:https://sourceforge.net/projects/kvm ...
- Python回归分析五部曲(一)—简单线性回归
回归最初是遗传学中的一个名词,是由英国生物学家兼统计学家高尔顿首先提出来的,他在研究人类身高的时候发现:高个子回归人类的平均身高,而矮个子则从另一方向回归人类的平均身高: 回归分析整体逻辑 回归分析( ...
- 11月1号开学! 《jmeter性能测试实战》崭新亮相!
课程介绍 第10期<jmeter性能测试实战>课程,11月2号开学!全新改版,和之前的课程框架完全不同 主讲老师:飞天小子 上课方式:每周六周日晚8点到10点,QQ群视频在线直播教学 本期 ...
- [Beta阶段]第七次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第七次Scrum Meeting 基本信息 名称 时间 地点 时长 第七次Scrum Meeting 19/05/13 大运村寝室6楼 35min ...
- C#Selenium常用语法功能 很好的文章,值得参考收藏
https://blog.csdn.net/a1003434346/article/details/80257946 https://www.jianshu.com/p/310623afcde1 h ...