JavaScript数据类型

原生JS中数据有五种基础类型,一种复杂结构,ES6中引入了一种新的原始数据类型Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
typeof用来检测变量的基础数据类型,会返回如下字符串:
string、number、boolean、undefined、object 或 null、function

五种基础类型:

String 字符类型
	//使用单引号或者双引号引起来的都是字符类型,ES6中也可以使用``引起来
        var str1 = "1";
        var str2 = '1';
        var str3 = `1`;

        var str4 = "这个'新的'鞋子价格不错";
        var str5 = '{"a":4,"b":"10"}';
Number 数值类型
 		var num1 = 1;//正整型
        var num2 = -1;//负整型
        var num3 = 1.5;//浮点型
        var num4 = 056;//8进制数值,0起头,数值不能大于7
        var num5 = 0xFF;//16进制数值,0x起头,单个数值不能大于F
        var num6 = 1.2e+3;//科学计数法
        var num7 = 1.2e-3;//科学计数法
Boolean 布尔类型
		//true和false
        var bool1 = true;
        var bool2 = false;
undefined 未定义
    //定义变量未赋值就是未定义
        var und1;
        var und2 = undefined;
null 空值
        //null的类型Object型
        var nu = null;
        // console.log(nu,typeof(nu));

一种复杂类型:

            var obj = {
       		 //     属性
             id: 1001,
             name: "电脑桌",
            price: "700",
            getSum: function () {
             // 方法
             }
         };

JSON.stringify( ),将object对象转换为JSON字符串 JSON.parse(’{“a”:1}’) ,将JSON字符串转换为对象

var obj={a:1};
console.log(String(obj));//[object Object] 所有的对象转换为字符串就会变成这样
console.log(JSON.stringify(obj));//将object对象转换为字符串(JSON字符串)
console.log(JSON.parse('{"a":1}'));//将JSON字符串转换为对象
var obj={a:1};
var obj1=JSON.parse(JSON.stringify(obj));
obj.a=5;
console.log(obj,obj1)//{a:5} {a:1}
console.log(JSON.stringify(obj),JSON.stringify(obj1));//{"a":5} {"a":1}
console.log(obj1===obj); //false

数据类型前五种基础类型都存储在栈中,对象存储在堆中

            //变量名存储的是引用地址
            // var obj2=obj;//将引用地址赋值给obj2
            // obj.a=10;
            // console.log(obj2.a);



            // 存在栈中,修改的是值
            // var num=3;
            // var num1=num;
            // num=10;
            // console.log(num1);


            // 存在堆中,修改引用地址值的内容,地址不会发生改变
            // var obj1=JSON.parse(JSON.stringify(obj));


            // var obj={a:10,b:{a:20}};


            // console.log(obj);
            // obj.a=10;



            // 不断的创建新对象,不使用的旧对象不清除会造成内存泄漏
            // obj=null;//当给变量设置为null
            // 垃圾回收机制  gc  当对象的引用地址在栈中没有引用时,内存占比过高时,垃圾回收车会将其清除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值