学习日记——1,原始类型的方法

JS中拥有7种原始类型:"字符串"数字型Number布尔型boolean,属于对象的Null,表示未定义的Undefined,表示系统数据类型的bigint,以及新推出的Symbol(表示唯一),此外这7种原始类型也被称为原始值

       console.log(typeof("str"));
        // 字符串
        console.log(typeof(123));
        // 数字型
        console.log(typeof(true));
        // 布尔型
        console.log(typeof(null));
        // 对象obj
        console.log(typeof(bigint));
        // 还没学到
        console.log(typeof(Symbol));
        // 表示唯一
        console.log(typeof(undefined));
        // 表示未定义

                                                    7种原始数据类型 

 

字符串,数字型,布尔型,Symbol型创建后,JS为了让其的属性起作用,所以在被访问Js会创建一种“对象包装器”,该结构是一种特殊的对象,但要注意的是,每个原始类型的对象包装器都不同,但共同点是:使用后,对象包装器会被销毁

值得注意的是:对象包装器可以用方法的方式去处理

首先是字符串型 ,被访问后会被创建一个拥有相同字符串字面量值相同的对象

 let str="str";
 //创建一个字符串型
 alert(str.toUpperCase());
//在str字符串被访问时,会创建一个拥有相同字面量的对象,并且具有有用的方法
//例如:toUpperCase(),该方法运行会返回一个新的字符串(由alert提醒)
//特殊对象被销毁,只留下原始值str

// toUpperCase()的作用是返回大写化处理的字符串

由此我们可以得出,在字符串被访问时,“对象包装器"被创建,同时由创建了一个具有相同字面量的特殊对象,但是访问过后,该“对象包装器"被摧毁,只会留下原始值/原始类型

问题来了:我们是否有方法利用"对象包装器“来储存额外的数据?

那么我们来测试一下

  let str="str";
//创建一个字符串的原始值
  str.text="text";
//访问该字符串的原始值,并创建一个新的属性
  alert(str.text);//Undefined
/* 
看来并不能存储额外的数据
原因是在str访问后创建新属性结束后,该字符串的对象包装器被销毁
所以在调用该属性时会出现Undefined
如果是在严格模式下,会出现TypeError
*/

结果是不能的,并且如果在严格模式下这样做,会提醒你TypeError,所以我们可以得出一个结果,”对象包装器"无论是使用方法,还是在存储新属性时,在该行为结束后,都会被销毁

                      此外我们也得出了一个结论,原始类型不能存储额外的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值