toString & valueOf
valueOf 和 toString
都是Object原型上的方法,很多重要类型的原型都重写了他们
valueOf :
- 返回包装类型对象的原始值
toString:
- 对于
Number、Boolean、String、Array、Date、RegExp、Function
重写了,
1 | var num = new Number('123'); |
- 对于
Object、Math
都是返回对象的类型[object type]
其中type就是对象类型。 例如:[object object] [object math]
原始值和引用值 & typeof和instanceof
八大基本类型
Number String Boolean BigInt Symbol Object null undefined
JSON 数据类型:Object Array Number String Boolean Null
对于undefined,JSON.stringify 会直接忽略
原始值和引用值
- js数据类型分为 原始值和引用值。
- 八大基本类型减去
Object
就属于七大原始类型 - 而引用值其实是一个对象
- 八大基本类型减去
原始值
原始值包装类型
1 | let n =new Number(0) |
对原始值类型上调用方法,是先生成一个包装类对象,再在包装类对象上改造。
函数传参
都是按值传递,只不过引用值存的是指针
- 原始值传递:复制该值
- 引用值传递:复制指针
p86、p101
typeof和instanceof
- typeof
typeof 有哪些返回值:number,string, boolean, bigint, symbol, undefined, object(null,array,set,map,weakmap), function(class)
原始值可以用 : typeof ‘qweqe’ === ‘string’
注意: typeof null == ‘object’; typeof [] == ‘object’
原始值包装对象 : new String(“hello”) 会 返回 ‘object’
- instanceof
A instanceof B : 查找A的原型链,如果查找到B的原型,则返回ture
- 原始值用都是返回false
- 实例 instanceof Function === false, 但是 实例 instanceof 类名 === true
基于Hexo的博客
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.