我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

陈玉-20221127-js高级-DAY04

[复制链接]
polaris123 发表于 2022-11-27 23:44:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
js高级-DAY04
一、今日学习内容
1.数据类型分类
基本数据类型number、string、boolean、undefined、null、symbol(独一无二的值)、bigInt(科学计算)
引用数据类型array、function、object
2.数据类型的内存分配
基本数据类型保存在栈中
引用数据类型保存在堆中,栈中存放它的地址,指向堆中的数据
3.变量的复制
基本数据类型传递的是值的拷贝
引用数据类型传递的是地址的拷贝
4.参数的传递
基本数据类型传递的是值的拷贝
引用数据类型传递的是地址的拷贝
5.深浅拷贝
5.1浅拷贝
  特点:只拷贝一层
  直接obj1=obj,obj和obj1指向一个地址,共享数据,相互影响
  实现方法:(1)展开与算符
            (2)for...in
const obj1 = {};

            (3)Object.assign();
5.2深拷贝(1)JSON.parse(JSON.stringify(obj));
            缺点:有些情况不能成功拷贝;例如:
un: undefined,  //没有了
show: function () { },//没有了
reg: /\.css$/,//空对象
int: Infinity,//null
fin: -Infinity,//null
date: new Date(),//字符串
null: null
         (2)完美拷贝:引入lodash,const obj1 = _.cloneDeep(obj);
         (3)手写深拷贝tartget.hasOwnProperty(key)===判断对象属性是否在原型链
                        把函数处理成字符串:funciton.toString()
                        把转成字符串的函数生成一个新的函数:let newfun = eval("(" + funstr + ")")
                        步骤:
1.封装方法===(获取数据类型的方法)(获取是否是数组、对象、方法)

2.遍历===封装深拷贝
(1)判断类型{}/[ ]
(2)循环要拷贝的目标
6.变量类型检测
基本数据类型typeof()---检测null(object)、【】(object)

引用数据类型instanceof()
语法:变量/ (实例对象)   instanceof   构造函数
特点:变量的原型链上找得到后面的构造函数,就会但会true ,否则返回false
Object.prototype.toString。call( )

准确检测数据类型【object 构造函数】
7.继承ES5:寄生组合式继承
例如:静态方法---方法挂载在构造函数上,实例对象不能调用
Person.say = function () {
            return '说话'
        }
继承父类所有原型:Programmer.prototype = Object.create(Person.prototype);
此时子类构造函数会丢失,需要找回子类原型的构造函数
Programmer.prototype.constructor = Programmer;

回复

使用道具 举报

关注0

粉丝0

帖子37

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026