# 数据类型
# 基本类型
- String
- Number(NaN是数字类型,可以用Number.isNaN检测)
- Boolean
- undefined
- null
- Symbol
- Bigint(在数字后加n)
Symbol和Bigint新加的,用typeof检测会显示
'symbol'
和'bigint'
# 引用类型
- Object
- Function
let func = new Function ([arg1[, arg2[, ...g1N],] functionBody) 换句话说,函数的参数(或更确切地说,各参数的名称)首先出现,而函数体在最后。所有参数都写成字符串形式。通过查看示例,可以更容易理解。这是一个有两个参数的函数: let sum = new Function('a', 'b', 'returna + b'); alert( sum(1,2)); // 3
但是一般不这么写,只是想记录还有这一种定义函数的方法
- Array
# 判断值的类型
- typeof:
不能判断null与object以及object与array
'object','boolean','number','string','null','undefined','symbol','bigint','function'
instanceof 判断具体类型
===:
可以判断undefined, null
# 相关问题
- undefined和null的区别
- undefined表示定义了未赋值,即undefined表示"缺少值",就是此处应该有一个值
- null表示定义并赋值了,只是值为null,即null表示"没有对象",即该处不应该有值
- JavaScript的最初版本是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN
等于undefined的情况:
变量被声明了,但没有赋值时,就等于undefined
调用函数时,应该提供的参数没有提供,该参数等于undefined
对象没有赋值的属性,该属性的值为undefined
函数没有返回值时,默认返回undefined。
等于null的情况:
作为函数的参数,表示该函数的参数不是对象
作为对象原型链的终点
- 什么时候赋值为null
- 初始赋值,表明将要赋值为对象
- 结束前,让对象成为垃圾对象(被垃圾回收器回收)
← 前端笔记