js 基础知识
1. javascript基础系列
JavaScript有5中基本数据类型 undefined Null Number Boolean String 和复杂类型Object。
A) 声明没有赋值 和 没有声明的都是 undefined
B) 只有声明并赋值为null值才会是null
C) typeof(object) 是 “function”
D) typeof(null) 也是”object” 因为null表示一个空对象的指针。并且undefined是派生子null值的。、
E) JavaScript高级程序设计中说到 函数是对象不是一种数据类型。
对象其实就是一个function 或者说Object是一个函数的名字。官方称之为构造函数。
2. 基本包装类型
A) String number boolean 都是基本类型 基本类型和复杂类型的最大的区别就是 基本类型没有prototype属性。 也就意味着你不能给基本类型随意添加方法或者属性。
B) 首字母大写的这个String是一个function,所有new String(“str”)得到的是一个object而不是string。为什么基本类型string会有一些初始的方法? 方法是怎么加上去的?
1> 基于str创建一个String类型的实例。
2> 在实例上调用制定方法
3> 销毁这个实例
3. 我们可以把String Number Boolean叫做封装类型 他们就好像我们在C#里面定义的自定义类型一样 但是不要忘记了我们真正的基本来下是string number boolean。用String 所构造出来的对象是属于object类型的。
4. 在JavaScript中用function定义类 他们的实例将永远是object 包括原来的原生 Date Array RegExp;
5. 借助instanceof来判断一个对象是不是它的实例。
6. 大写的Function,它和function之间的关系会不会和String和string一样。
函数表达式其实就是用一个变量接收了一个function的对象而已,而这个function的对象则是Function的实例 包括函数声明写出来的函数也是Function的实例。
所有的function都是Function的实例。
Function本身也是一个function。
总结:
5中数据类型 Null Undefined String Number Boolean
复杂类型 object 其实是function的实例。
除了Function 这个系统里面的function构造器以外 其他所有function的实例都是object类型的。
Date Array RegExp 这些都是function类型 同时也是Function的实例 同理 它们的实例也是object类型。
浙公网安备 33010602011771号