原始(Primitive)类型
查漏补缺
在 JS 中,存在着 6 种原始值,分别是:
boolean
null
undefined
number
string
symbol
首先原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toString()
此时你肯定会有疑问,这不对呀,明明 '1'.toString()
是可以使用的。其实在这种情况下,'1'
已经不是原始类型了,而是被强制转换成了 String
类型也就是对象类型,所以可以调用 toString
函数。
除了会在必要的情况下强转类型以外,原始类型还有一些坑。
其中 JS 的 number
类型是浮点类型的,在使用中会遇到某些 Bug,比如 0.1 + 0.2 !== 0.3
,但是这一块的内容会在进阶部分讲到。string
类型是不可变的,无论你在 string
类型上调用何种方法,都不会对值有改变。
另外对于 null
来说,很多人会认为他是个对象类型,其实这是错误的。虽然 typeof null
会输出 object
,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000
开头代表是对象,然而 null
表示为全零,所以将它错误的判断为 object
。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。
原始(Primitive)类型相关推荐
- Java中的原始类型与原始封装类型
在写Java代码的过程中,一直对Java提供的一些类参数又疑问,今天查了一下,进行了解学习. type argument cannot be of primitive type 问题: Java中什么 ...
- 《JavaScript面向对象精要》——1.8 原始封装类型
本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.8节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...
- java 中的原始类型与原始封装类型
Java 提供两种不同的类型:引用类型和原始类型(或内置类型) 文章目录 一.原始与对应的封装类 二.引用类型和原始类型的区别: 三.总结: 比如: Int是java的原始数据类型,Integer是j ...
- pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...
在利用pandas处理表格时,往往有时我们用表格做的测试用例往往会设计考一些必填项*故意赋值为空(代表不输入)的测试用例, 比如说我们的手机号.身份证号码.社会统一信用代码等都是数字型字符串.如下所示 ...
- java构建学生对象布尔类型,Java如何将原始布尔类型转换为布尔对象?
下面的代码片段演示了如何使用该Boolean.valueOf()方法将原始boolean值或字符串转换为Boolean对象.此方法将返回Boolean给定原始boolean值的相应对象. 当将字符串值 ...
- 《JavaScript高级程序设计(第四版)》红宝书学习笔记(第五章:基本引用类型,原始值包装类型,单例内置对象)
第五章:基本引用类型 引用值(或者对象)是某个特定引用类型的实例.新对象通过使用new操作符后跟一个构造函数(constructor)来创建. 5.1 Date 这里不对Date进行详细深入,仅基于书 ...
- 【JavaScript】9.基本引用类型-原始值包装类型
本篇笔记示例代码仓库:https://github.com/zhangtuo1999/study-js . 本篇笔记遵循中文技术文档的写作规范. 主要内容来源于<JavaScript高级程序设计 ...
- JS 原始值包装类型
为了方便操作原始值,ECMAScript 提供了 3 种特殊的引用类型:Boolean.Number 和 String.每当用到某个原始值的方法或属性时,后台都会创建一个相应原始包装类型的对象,从而暴 ...
- java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)
Java基本数据类型与封装类型详解(int和Integer区别) 发布于 2020-4-19| 复制链接 摘记: int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Int ...
- JAVA里面的int类型 和Integer类型,有什么不一样
JAVA里面的int类型 和Integer类型,有什么不一样 原创 2013年09月04日 23:15:11 标签: java / 2120 编辑 删除 JAVA里面的int类型 和Integer类型 ...
最新文章
- 你训练的神经网络不对头的37个原因
- tensorflow随笔-tf.no_op
- 自动登录ssh不需要输入密码
- ansible(自动化运维中)——ansible常用模块
- phpcms二层栏目下拉和当前栏目高亮
- 浮动元素具有行内块元素特点(HTML、CSS)
- Java 中时间处理SimpleDateFormat 中HH和hh的区别
- C++ 中使用引用类型的成员变量
- 计算机一级电子照怎么做,证件照电子版怎么弄-简单5步,教您随心所欲做证件照...
- 网吧服务器维护工具,某某网吧专用维护工具(网吧维护管理助手)V5.1 最新版
- VBA_自定义对数函数
- R语言使用ltm包计算cronbach‘s alpha(克朗巴哈系数法)实战:cronbach alpha(克朗巴哈系数法)是一种测量问卷或调查内部一致性的方法、cronbach‘s alpha解读
- Debian 7 安装metasploit
- Invalid bound statement (not found): com.example.wyl.mapper.PeijianDAO.selectList异常错误
- APP被应用商店下架了怎么办?
- 浏览器火狐3.0发布之盛况
- App Store拒绝原因
- 领英工程VP:如何用 AI 消除 AI 偏见,打造高级人才推荐系统
- 使用matplotlib制作“饼图”:pyplot.pie(X,autopct,labels,explode)
- MATLAB矩阵每行按降序排列,每列升序并记录行号
热门文章
- ArcGIS三维网络分析
- K8s9(2-1) k8s中的通信机制, kube-proxy的ipvs模式 ,无头服务,LoadBalancer,ExternalName,外部公有 ip(externalIPs)
- 2022年人工智能行业研究报告
- 基于人类视觉系统建模的仿生低层次图像处理
- linux桌面系统 9,红旗Linux系统RedFlag Linux Desktop 9.0安装教程
- Springboot中new出来的实例中含有@Autowired注入时的Spring Bean为NULL
- 上班族如何提高“非工资收入”?跟清北大咖零基础学理财
- 自定义控件其实很简单 二
- 关于主从延迟,一篇文章给你讲明白了!(转)
- wikioi 1550 不明飞行物