在ES5中,数据类型有6种:
Number、String、Boolean、undefined、object、Null。
ES6 中新增 Symbol 。这种类型的对象永不相等。
创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
谷歌67版本中新增 bigInt。指安全存储、操作大整数。
基本类型(单类型):除Object。 String、Number、boolean、null、undefined。
引用类型:object。里面包含的 function、Array、Date。
JS 中 typeof 输出分别是什么?
{ } 、[ ] 输出 object。
console.log( ) 输出 function。
注意一点:NaN 是 Number 中的一种,非Number 。
null 和 undefined 有什么区别?
null 不存在的原因是什么及解决方法
== 和 === 有什么区别,什么场景下使用?
== 表示相同。
=== 表示严格相同。
对象可以比较吗?
如何判断数据类型?
1、typeof 操作符
typeof 能有效检测基本类型,检测引用类型都返回object,其中null属于特殊的引用类型返回object,
function属于特殊引用类型类型不用于存储数据,typeof检测返回function。
2、toString ( )
作用:其他类型转成 string 的方法
支持:number、boolean、string、object
不支持:null 、undefined
3、toLocaleString ( )
把数组转成本地字符串
4、检测数组类型的方法
① instanceof 操作符
②对象的 constructor 属性
③ Array.isArray( ) 检验值是否为数组
总结:
1、Undefined 类型
只有一个值。在使用var 声明变量但未对其加初始化时,这个变量就是undefined。
2、Null 类型
只有一个值。null是表示一个空对象指针,这也是typeof操作符检测 null 值时会返回 object 的原因。
3、Boolean 类型
使用最多的一个类型,有两个字面值,分别是true、false。true不一定等于1,false不一定等于0。
boolean类型的字面值是区分大小写的。True和False是标识符
4、Number 类型
数字类型,表示数据的整数和浮点数。某些语言中也称为“双精度值”。
var intNum = 55;十进制
var num = 012;八进制
var octalNum = 0x23;十六进制
5、String 类型
字符串可以有单引号、双引号表示。字符串是不可变的,一旦创建,值就不能改变
要改变某个变量保存的字符串,首先要销毁原来的字符串,然后于用另一个包含的字符串填充该变量。
6、Object 类型
ECMAjavascript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。创建object类型的实例并为其添加属性(或)方法,就可以自定义创建对象。
如:var o = new Object( );
7、Undefined 类型
Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突的问题(适用于多少编码),做为标记。
8、BigInt 类型
Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。是 chrome 67中的新功能。