JavaScript基础
JavaScript基础
数据类型
类型
基本数据类型
- Number
- String
- Boolean
- null
- undefined
- Symbol
- Bigint
引用类型
- object
存储方式
原始数据类型
会被频繁使用,所以直接存储在栈(Stack)中.
引用数据类型
在栈中存储指针,堆中存储实体.
类型转换
转换为布尔值
调用Boolean().
转换为数字
调用Number()、parseInt()、parseFloat().
转换为字符串
调用.toString()、String()
注:null 和undefined类型没有.toString().
判断类型
typeof()
只能判断基本数据类型,引用数据类型返回object;数组也是一种对象类型,返回object.
instanceof()
只能判断对象,如 (object instanceof(class)),若object 是class类返回true.
constructor
//todo
obj.prototype.toString
//todo
对象
常见内置对象
常用全局变量值: NaN, undefined;
全局函数: parseInt(), parseFloat();
供实例化对象的构造函数: Date, Object;
供计算的单体内置对象:Math...
创建对象方式
//todo
- 工厂模式
- 构造函数模式
- 原型模式
- 动态模型模式
- 寄生构造函数模式
- 组合使用构造函数和原型模式
获取原型方法
- obj.proto
- obj.constructor.prototype
- object.getPrototypeOf(obj)
闭包
闭包三特性:
- 函数嵌套函数
- 函数内部可以引用函数外部的参数和变量
- 参数和变量不会被垃圾回收机制回收
因此,可以使用内部函数调用外部函数的参数,来实现隐藏,保护变量的功能, 实现如下:
function out(){
var a=1;
return function(){
let b=1;
console.log(a++ +''+ b++);
}}let fun = out()
fun();//1 1
fun();//2 1
优点:
- 保护函数内的变量安全 ,实现封装,防止变量流入其他环境发生命名冲突;
- 在内存中维持一个变量,可以做缓存(但使用多了同时也是一项缺点,消耗内存);
- 匿名自执行函数可以减少内存消耗
缺点:
- 其中一点上面已经有体现了,就是被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null;
- 其次由于闭包涉及跨域访问,所以会导致性能损失,我们可以通过把跨作用域变量存储在局部变量中,然后直接访问局部变量,来减轻对执行速度的影响.
————————————————
版权声明:闭包部分摘自CSDN博主「LeyiLi@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51170516/article/details/112846286
事件模型
//todo
- DOM0级别模型
- IE事件模型
- Dom2级事件模型