常见问题/知识点记录(三)

一 数据类型

基本数据类型 String Number Boolean Undefined Null
引用数据类型 Object Function Array

什么是数据 存储在内存中代表特定信息对二进制
特点 可传递 可运算

什么是内存 内存通电后产生的可存储数据的空间
内存的分类 堆(对象)和栈(全局变量/局部变量)

什么是变量 可变化的量 由变量名和变量值组成
每个变量都对应一小块内存 变量名用来查找对应的内存 变量值就是内存中保存的数据

内存 数据 变量 三者之间的关系
内存用来存储数据的空间
变量是内存的标识

什么时候给对象赋值为null
初始赋值为null 表明将要赋值为对象
结束前赋值 让对象被垃圾回收

Javascript调用函数时传递变量参数时 是值传递还是引用传递
理解1 都是值传递(基本/地址值)
理解2 可能是值传递 也可能是引用传递(地址值)

Javascript引擎如何管理内存
内存的生命周期
----分配小内存空间 得到它的使用权
----存储数据 可反复进行操作
----释放小内存空间
释放内存
----局部变量 函数执行完自动释放
----对象 首先成为垃圾对象=>垃圾回收器回收

二 事件冒泡?如何解决?与事件捕获的区别

事件冒泡----子元素的事件点击 也激活了父元素的事件点击
阻止冒泡----e.stopPropagation()
事件捕获----首先window会捕获到事件 之后document documentElement body会捕获到 再之后就是在body中DOM元素一层一层的捕获事件
事件冒泡----和捕获阶段相反的将事件一步一步地冒泡到window

三 CSS3可以实现动画 Javascript也可以实现动画 为什么不用Javascript

Javascript在浏览器的主线程中运行 而主线程还有其他需要运行的js脚本 样式计算 布局 绘制等任务 对其干扰可能出现阻塞 从而造成丢帧的情况

CSS动画的优点:

  1. 浏览器可以对动画进行优化
  2. 代码相对简单 性能调优方向固定
  3. 对于帧速表现不好的低版本浏览器 css3可以做到自然降级

缺点:

  1. 运行过程控制较弱 无法附加事件绑定回调函数
  2. 代码冗长 实现复杂的动画 css代码会变得笨重

JS动画优点:

  1. js动画控制能力很强
  2. 动画效果比css3动画丰富
  3. css3有兼容性问题 而js大多时候没有兼容性问题

缺点:

  1. js在浏览器的主线程中运行 而主线程还有其他需要运行的js脚本 样式计算 布局 绘制等任务 对其干扰可能出现阻塞 从而造成丢帧的情况
  2. 代码的复杂度高于css3动画
发布了41 篇原创文章 · 获赞 2 · 访问量 1836

猜你喜欢

转载自blog.csdn.net/weixin_43883485/article/details/104799867