欢迎光临散文网 会员登陆 & 注册

千锋web前端开发项目教程_1000集完全零基础入门HTML5+CSS3+JS到

2023-07-12 11:34 作者:格兰芬多新生秋水  | 我要投稿

# 不同类型数据赋值时的区别

=> 1. 基本数据类型,会直接将栈里面的数据赋值给其他变量,赋值结束后,两个变量相互之间没有关系,互不影响

  => 2. 引用数据类型,会将栈里面的地址赋值给其他变量,该地址会指向堆里面的同一条数据,造成数据共享的问题:其中一个改变。另一个会跟着改变


# 浅拷贝

=> 对于数据的第一层,拷贝的是值,而其他层级,拷贝的依然是地址。

  => 方式一: ...展开运算符 

+ var newObj = {...obj}

=> 方式二: var newObj = Object.assign({}, obj)


# 深拷贝

=> 无论引用数据的层级,拷贝的都是值

  => 方式一: JSON对象

   + var newObj = JSON.parse(JSON.stringify(obj))

+ 缺陷:会自动忽略undefined和方法,将正则变成空对象

=> 方式二: lodash库

   + 1. 导入库文件地址

    + 2. 调用_.cloneDeep方法


# 放大镜效果

=> 步骤:

   + 1. 动态渲染页面

     =》 小图片,大图片和缩略图的渲染

      =》 动态设置大图片盒子的宽高(蒙层的移动和大图片的移动是等比例的)

      =》 大图片盒子的宽高 = 蒙层的宽高 * 大图片的宽高 / 小盒子的宽高

    + 2. 缩略图的切换效果

     =》 选项对应的内容只有一个盒子,只能通过修改盒子里面的图片路径实现

    + 3. 鼠标的移入移出效果

    + 4. 蒙层跟随鼠标移动和大图片的跟随移动

     => 1. 蒙层的移动范围需要边界限定

      => 2. 鼠标在蒙层的中心位置

      => 3. 大图片是往相反方向移动

      => 4. 大图片的移动距离 = -(蒙层的移动距离 * 大图片的宽高 / 小盒子的宽高)

千锋web前端开发项目教程_1000集完全零基础入门HTML5+CSS3+JS到的评论 (共 条)

分享到微博请遵守国家法律