JavaScript 数据类型

167 阅读2分钟

数据类型

(1)一共有7种数据类型

基本类型

  • Null
  • Undefined
  • Number
  • String
  • Boolean
  • Symbol

引用类型

  • Object

(2)一共有6个值会转化成false, 其他都说true

undefined
null
0
-0
NaN
""

(3)Undefined 类型只有一个值undefiend, 表示未定义或不存在。

(a)声明一个变量没有赋值

(b)对象不存在的属性

(4)Null类型只有一个值null, 表示空值。null表示空对象指针,如果我们声明一个变量,之后打算用来表示一个对象,推荐把他赋值为null。

(5)重要的特殊对象

Function Array Date Regexp Global Error

(6)typeof 的结果是小写string。

typeof 有两个特例:
(a) typeof null 结果为object
    typeof null  => object 
(b) typeof 函数结果为function
    var abc = function(){}   
    typeof abc => function

(7)基本类型按值访问,引用类型按引用访问

(a)基本类型存储在栈中,引用类型存储在堆中
(b) 值的复制:复制基本类型的值,两个变量完全独立;复制引用类型的值,只是复制它的引用地址,两个变量将指向同一个对象
(c) 值的比较:基本类型的值比较是值的比较,引用类型的比较是比较引用地址,当且仅当它们指向同一个对象才相同。

类型转换

隐式类型转换

(1)Number + String -> 把Number转换成字符串

(2)Number - String -> 把String转换成Number

(3)(3.1415).toFixed(2) -> 把Number转换成对象

(4)“hello world”.split() -> 把String转换成字符串对象

(5)if 语句把条件部分转变成 true 或 false

显示类型转换

(1)Number() 把字符串转化成数字

(2)String() 把括号里的内容转化成字符串

(3)Boolean()把括号里的内容转化成true或false

(4)PaserInt() 和paseFloat() 把字符串转化为数字

(5)!!可以取到对应的boolean

类型识别

(1)typeof

  • 可以识别基本类型(Null除外)
  • 不能识别具体的对象类型(Function 除外)

(2)instanceof

  • 不能识别基本类型
  • 可以识别内置对象类型
  • 可以识别自定义对象类型
  • A instanceof B 检测 B 是否存在 A 的原型链中。JavaScript引擎查找B的Protype是否存在于A的原型链中(——proto——)

(3)Object.prototype.toString.call

  • 可以识别基本类型
  • 可以识别内置对象类型
  • 不可以识别自定义对象类型

(4)constructor

  • 可以识别基本类型(Undefined/Null除外)
  • 可以识别内置对象类型
  • 可以识别自定义对象类型

参考资料

网易云课堂前端微专业