JavaScript 之 基本包装类型
基本包装类型
为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String/Number/Boolean。
下面先看一段代码:
var s1 = "Hello world!!!";
var s2 = s1.substring(5);
我们要知道,s1 是一个基本类型,基本类型是没有办法的,只有对象才有属性和方法。那就有一个疑问,为什么可以调用 substring() 方法呢?
原因: 当调用 s1.substring(5) 的时候,会先把 s1 包装成 String类型的临时对象,再调用 substring()方法,最后销毁临时对象。
等价于:
var s1 = new String('Hello World!!!');
var s2 = s1.substring(5);
s1 = null;
创建基本包装类型的对象:
var num = 18; // 数值,基本类型
var num = Number('18'); // 类型转换
var num = new Number(18); // 基本包装类型,对象
注意:String 包装类最常用,Number 和 Boolean 基本包装类型基本不用,使用的话可能会引起歧义。
Demo:
var b1 = new Boolean(false);
var b2 = b1 && true;
下面来讨论一下 b2 的值是什么?
b2 = true。
原因:b1 是一个 Boolean 对象,它的原始值(PrimitiveValue)为 false。b1&& true 因为 b1是一个非空对象,所以会默认转换为 true。所以 b2 的值为 true。
扩展:会转换为 false 的5种情况: 0 '' null NaN undefined
JavaScript 之 基本包装类型的更多相关文章
- JavaScript的基本包装类型概述与基本包装类型_Number类型
JavaScript的基本包装类型示例 为了便于操作基本类型值,javaScript 提供了 3 个特殊的引用类型:Boolean.Number和 String. 这些类型与其他引用类型相似,但同时也 ...
- javascript之基本包装类型(Boolean,Number,String)基础篇
前几天整理了javascript中Array方面的知识,但是String中的一些方法多多少少和Array里的方法有些类似容易混淆,就顺便连同String所在的包装类一起整理一下,希望可以帮助到初学者, ...
- javascript 之基本包装类型--04
基本包装类型 基本包装类型是特殊的引用类型.每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可以调用属性.方法来进行后续操作. ECMAScript还提供了三种基本包装类型 ...
- Javascript之基本包装类型
一.基本包装类型概述 var box = 'Mr. Lee';//定义一个字符串 var box2 = box.substring(2);//截掉字符串前两位 alert(box2);//输出新字符串 ...
- JavaScript的基本包装类型说明
一.基本包装类型: 为了便于操作基本类型值,ECMAScript 还提供了3个特殊的引用类型:Boolean.Number和String.这些基本包装类型,具有与各自基本类型相应的特殊行为. 实际上我 ...
- JavaScript的基本包装类型_String类型
String类型概述 String在底层字符串是以字符数组的形式保存的 var str = "Hello"; // 在底层其实就是['H','e','l','l','o'] 字符串 ...
- javaScript对象-基本包装类型的详解
本人按书上的内容大致地把javaScript对象划分成“引用类型”.“基本包装类型”和“内置对象”三块内容. 我们这篇先了解下基本包装类型的详细用法吧! 一.我们先解下相关概念: 1.引用类型的值(对 ...
- 《JavaScript 闯关记》之基本包装类型
为了便于操作基本类型值,JavaScript 还提供了3个特殊的引用类型:Boolean.Number 和 String.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象 ...
- 《JavaScript高级程序设计》读书笔记 ---基本包装类型
为了便于操作基本类型值,ECMAScript 还提供了3 个特殊的引用类型:Boolean.Number 和String.这些类型与本章介绍的其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行 ...
随机推荐
- jsp获取map
1.简单Map User user = new User(); user.setName("zmy"); user.setAge(); user.setBirthday(new D ...
- el获取对象属性大小写问题
当el表达式首字母大写,会判断第二个字母大小写,小写,抛异常:大写,则直接拼接get,形成getter方法 当el表达式首字母小写,会判断第二个字母大小写,大写,必须第一个字母大写:否则无法获取值 e ...
- [codevs2460]树的统计
题目描述 Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHAN ...
- git blame (10)
git blame system_server.c 每一行提交的sha ,作者,提交的日期及提交的信息
- 【神奇性质】【P5523】D [yLOI2019] 珍珠
D [yLOI2019] 珍珠 Description 给定一个 deque,要求支持 push_back 和 push_front 操作,并且查询前缀与非和以及后缀与非和. deque中只会有 \( ...
- postcss 将px转换成rem vuecli3+vant+vue+postcss
1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...
- kubernetes 中遇见的一些坑(持续更新)
一.官网镜像无法下载 解决方法:需要翻墙 配置docker翻墙机: cat /usr/lib/systemd/system/docker.service [Service] Environment ...
- 聊一聊 JS 输出为 [object object] 是怎么回事?
聊一聊 JS 输出为 [object object] 是怎么回事? 今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑 ...
- 小米win10+kali 双系统
1.下载kali linux 系统镜像,用windisk32imager 制作启动盘,制作好后千万不要格式化u盘,其他的启动盘制作工具不好用,无法加载系统镜像 2.将u盘插入电脑,重启,电脑重启时按 ...
- xshell 快速复制粘贴的方法
xshell快速复制粘贴的方法<img src="http://newmiracle.cn/wp-content/uploads/2017/01/QQ截图20170113163139- ...