javascript数据类型
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
Undefined
Undefined类型只有一个值,即特殊值undefined。在使用var声明变量,但未对其加以初始化时,这个变量值就是undefined。
在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。
Null
Null类型是第二个只有一个值的数据类型。其特殊值就是Null。从逻辑角度上看,null是一个空的对象指针。而这也正是使用typeof操作符检测null值,会返回“object”的原因。
在 JavaScript 中,null 是 “nothing”。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null 的数据类型是对象。
您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:
Boolean
即布尔类型,该类型有两个值:true、false。需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其它的混合大小形式)都不是Boolean值,只是标识符。
Number
该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。整数:可以通过十进制,八进制,十六进制的字面值来表示。浮点数:就是该数值中必须包含一个小数点,且小数点后必须有一位数字。
String
String类型用于表示由零或多个16位的Unicode字符组成的字符序列,即字符串。至于用单引号,还是双引号,在js中还是没有差别的。记得成对出现。
Object
Object数据类型,称为对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。
Symbol 类型
Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突的问题(适用于多少编码),做为标记。
这是 es6 新增的数据类型。
BigInt 类型
Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。是 chrome 67中的新功能。
JS数据类型:基础概念
请注意:JS的数据类型有8种。
在ES5的时候,我们认知的数据类型确实是 6种:Number、String、Boolean、undefined、object、Null。
ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。
JS 的数据类型有几种?
8种。Number、String、Boolean、Null、undefined、object、symbol、bigInt。
Object 中包含了哪几种类型?
其中包含了Data、function、Array等。这三种是常规用的。
JS的基本类型和引用类型有哪些呢?
基本类型(单类型):除Object。 String、Number、boolean、null、undefined。
引用类型:object。里面包含的 function、Array、Date。
JS 中 typeof 输出分别是什么
{ } 、[ ] 输出 object。
console.log( ) 输出 function。
注意一点:NaN 是 Number 中的一种,非Number 。
| String | String | 字符串 |
|---|---|---|
| Number | Number | 数据类型 |
| Boolean | Boolean | 布尔型 |
| Undefined | Undefined | 没有初始化、定义的值 |
| Null | Object | 不存在的对象 |
| NaN | Number | Number 中的特殊数值 |
| Object | Function |
null 和 undefined 有什么区别
Null 只有一个值,是 null。不存在的对象。
Undefined 只有一个值,是undefined。没有初始化。undefined 是从 null 中派生出来的。
简单理解就是:undefined 是没有定义的,null 是定义了但是为空。
null 不存在的原因是什么?如何解决?
不存在的原因是:
1、方法不存在
2、对象不存在
3、字符串变量不存在
4、接口类型对象没初始化
解决方法:
做判断处理的时候,放在设定值的最前面
== 和 === 有什么区别,什么场景下使用?
== 表示相同。
比较的是物理地址,相当于比较两个对象的 hashCode ,肯定不相等的。
类型不同,值也可能相等。
=== 表示严格相同。
例:同为 null/undefined ,相等。
简单理解就是 == 就是先比较数据类型是否一样。=== 类型不同直接就是 false。