JavaScript九大数据类型详解

分类:

简单数据类型(基本类型/值类型):字符串(String),数字(Number),布尔(Boolean),空(Null),未定义(undefined),symbol

复杂类型数据(引用类型):数组(Array),对象(Object),函数(function)


简单数据类型详解:

数字类型(Number)

  • 整型

  1. 整数,包括正整数,负整数,0
  • 浮点型

  1. 小数,例如:0.5   .6    1.0
  • NAN (会在出错的情况下出现)

       NaN的特性:

  1. NaN和任何数字进行运算,结果都是NaN
  2. NaN和任何数字都不相等,即使和自身也不相等
  • Infinity(无穷大)

  1.   在js中 任何非0数字 除以0 得到的结果都是相应的 Infinity
  2. 注意:0/0 得到的结果是 NaN

  • 注意:

  1. 在js中,一般不推荐使用浮点数据进行运算,存在bug
  2. 如果一定要使用浮点数进行运算,应该先将浮点数转换为整数,运算完之后,再等比例转换为浮点数 例如:(0.1*10 + 0.2*10)/10

字符串类型(string)

用引号包裹任意内容,就会形成一个字符串

例如:

  • "abc"(非数字字符串)  
  •  '123'(数字字符串)  
  • "    "(空格字符串)
  • "(空字符串)

布尔类型(Boolean)

布尔类型数据只有两个值:true 和 false


未定义类型(undefined)

在js中,声明一个变量,但没给变量赋值的时候,变量的值就是undefined


值为空类型(Null)

变量声明之后,也赋值了,但是赋的值拿不到,是一个空值

Symbol

Symbol是第六种基本数据类型,使用Symbol函数来生成一个symbol数据,
每一个Symbol是都是独一无二的。
语法: let 变量=Symbol(["注解"]);

代码示例:

<body>
    <script>
        function fn(){
            console.log("aaaa");
        }
        let a = fn();
        let b = fn();
        console.log(a==b);//true

        // 通过Symbol函数生成一个独一无二的值。    
        let m = Symbol();
        let n = Symbol();
        console.log(m == n);//false

        // Symbol函数中的参数没有任何意义,只是一个注释
        let x = Symbol("a");
        let y = Symbol("a");
        console.log(x == y);//false
    </script>
</body>

只有symbol中的for方法可以生成两个相同的symbol数据

<body>
    <script>
        // 只有symbol中的for方法可以生成两个相同的symbol数据
        let x = Symbol.for("a");
        let y = Symbol.for("a");
        console.log(x == y);//true
    </script>
</body>

定义面向对象的私有属性和私有方法

代码示例:

面向对象:

<script>
        // 面向对象
        function Person(){
            this.name = "张三";
            this.getUserName = function(){
                return name1 = "李四";
            }
        }
        let obj = new Person();
        console.log(obj.name);//张三
</script>

let与symbol结合,在外面拿不到a

<script>
        // let a ,在外面拿不到a的值
        function Person(){
            let a = Symbol();
            this.name = "张三";
            this[a] = "aa";
            this.getUserName = function(){
                return name1 = "李四";
            }
        }
        let obj = new Person();
        console.log(obj.name);//张三
        console.log(obj[a]);//报错
</script>

定义面向对象的私有属性和私有方法

<script>
        // 定义面向对象的私有属性和私有方法
        function Person(){
            let a = Symbol();
            let b = Symbol();
            this.name = "张三";
            this[a] = "aa";
            this.getUserName = function(){
                console.log(this[a]);//aa
                return name1 = "李四";
            }
            this[b] = function(){
                console.log("我是私有方法");
            }
        }
        let obj = new Person();
        console.log(obj.name);//张三
        // console.log(obj[a]);//报错
        obj.getUserName();
</script>



复杂数据类型详解:

数组类型(array)

  • 定义:数组是一种用来存储数据的容器

  • 写作:[数据1,数据2,数据3,....]

  • length属性:数组.length,获取数组长度(就是数组中包含数据的个数)。数组的索引也是从0开始


对象(object)

  • 定义:对象是一种用来存储数据的容器,对象区别于数组的地方,在于对象使用属性存储数据
  • {属性名1:数据 , 属性名2:数据 , ...}
  • 在对象中,可以写入任意多个属性,属性值中存放的数据也可以是任意类型的

函数(function)

  • 定义:用来存储代码的容器
  • 写法: 函数名 (){ 函数中存储的代码 };
  • 函数调用:函数名();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值