《JavaScript面向对象精要》数据类型--观后总结

146 阅读1分钟

最近在混各个群聊,大佬们都说,写博客的作用在于总结,多写,多记录方才形成自己的技术线。所以从今后起,我也准备坚持记录自己的成长,不然都不知道自己干了什么?----加油!!!

一、原始类型(也称基础类型):

有Boolean、string、symbol、number、undefined、null
原始类型的变量直接保存的是值,将原始值赋值给另一个变量时,该值将被复制到此变量中;一个变量的改变不会影响到其他的变量的值
var a = 10;
var b = a;
a = 20;
console.log(b);//10;
鉴别原始类型 最简单就是使用typeof操作符,如:
console.log(typeof 10);//number
console.log(typeof '10');//string
console.log(typeof true);//boolean
console.log(typeof undefined);//undefined
console.log(typeof Symbol());//symbol
console.log(typeof null);//object???
注意:空类型null不能用typeof 来判断(历史遗留的BUG)最佳办法就是直接和null比较:console.log(value === null);//true or false?
二、引用类型
如:函数、数组、对象
引用类型,不在变量中直接保存对象,而是指向内存中实际对象所在的位置的指针;这是对象和原始值的一个基本差别,原始值是直接保存在变量中。
鉴别引用类型 就不能用typeof 了 需要用 instanceof
但函数用instanceof 就不行了,可以用Array.isArray()
Object.prototype.toSting.call()兼容性更好