19-原始类型与引用类型

本文探讨JavaScript中原始类型(如Number、String等)与引用类型(如Object、Array)的区别,涉及赋值、比较、传参和类型检测。通过实例解析原始类型与引用类型的特性,并提供关键概念的实战演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型
原始类型        引用类型 Object
NumberArray
StringDate
BooleanMath
Null.......
Undefined

原始类型与引用类型的区别

 赋值的区别:

  • 赋值的区别:原始类型赋值,引用类型赋值的是引用
        // 赋值区别
    //     // 原始类型
    // let str1 = "hello";
    // let str2 = str1;
    // str1 ="world";
    // console.log(str1);
    // console.log(str2);

    // // 引用类型
    // let obj1 = {name:"小明"};
    // let obj2 = obj1;
    // obj1.name = "小红"
    // console.log(obj1.name)
    // console.log(obj2.name)
  • 比较的区别:原始类型比较的是值,引用类型比较的是引用是否指向同一个对象
//     // 原始类型
    // let str1 = "hello";
    // let str2 = str1;
    // str1 ="world";
    // console.log(str1);
    // console.log(str2);

    // // 引用类型
    // let obj1 = {name:"小明"};
    // let obj2 = obj1;
    // obj1.name = "小红"
    // console.log(obj1.name)
    // console.log(obj2.name)
  • 传参的区别: 原始类型赋值,引用类型内部修改会影响外部
// // 传参的区别
    // function fun(x){
    //     x =100;
    //     console.log(`x的值是${x}`)
    // }
    // let number = 10;
    // fun(number);
    // console.log(`number的值是${number}`)
    // let obj = {name:"阿萨德"};
    // function fun(x){
    //     x.name = "小风扇"
    //     console.log(`x名字是${x.name}`)
    // }
    // fun(obj);
    // console.log(`obj名字是${obj.name}`)

原始类型与引用类型的类型检测:

  • 原始数据类型检测:typeof(值) 原始类型正常,所有的引用类型用此检测全是object
 
    // let num = 100;  // number
    // let str = "hello world" // string
    // let und ; //undefing
    // let nu = null; //object 用typeof检测会显示对象 小bug
    // let boo = true; // boolean
    // console.log(typeof(num)); 
    // console.log(typeof(str));
    // console.log(typeof(und));
    // console.log(typeof(nu));
    // console.log(typeof(boo));
  • 引用数据类型检测:值 instranceof 类型  (console.log(arr instanceof Array))
    let arr = [1,2,3];
    let reg = /1,2,3/;
    let date =new Date();
    console.log(arr instanceof Array)

 数组存储信息列表

 数组StudentLis

    <input type="text" class="name" placeholder="姓名">
    <input type="text" class="age" placeholder="年龄">
    <button>添加</button>
<script>
    let inputName = document.querySelector(".name");
    let inputAge = document.querySelector(".age");
    let btn = document.querySelector("button");
    class Student{
        constructor(name,age){
            this.name = name;
            this.age = age;
        }
    }
    let studentList = []; // 数组
    btn.onclick = function(){
        let student = new Student(inputName.value,inputAge.value);
        studentList.push(student);
        console.log(studentList)
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值