0


一文弄清JavaScript数据类型

文章目录


前言

每一门语言都有数据类型,数据类型涵盖了语言可以定义哪些变量


一、数据类型概述

与其他编程语言一样,js数据类型也包括数值型、字符串、布尔型、数组等等,不一样的点在于
js中数值型包括整形、浮点型,空缺值NaN也是number型,可以定义某种类型的变量,然后用
作某任务,某事件。

1.js中的数据类型

 JavaScript 数据类型
     在 JavaScript 中有 6 种不同的数据类型:
         string            【字符串】
         number            【数值型:包括浮点型、整型】
         boolean        【布尔型】
         object            【对象,new出来的】
         function        【函数类型】
         symbol            【标志:作为键可以用于创建集合】
     2 种对象类型:            
         Date            【操作时间用的对象】
         Array            【数组对象】
     2 个不包含任何值的数据类型:
         null            【空值】
         undefined        【使用未定义的变量,那么该变量是undefined】

2.typeof检测数据类型

<!-- 
    typeof可以检测变量的类型
    typeof "John"                 // 返回 string
    typeof 3.14                   // 返回 number
    typeof NaN                    // 返回 number
    typeof false                  // 返回 boolean
    typeof [1,2,3,4]              // 返回 object
    typeof {name:'John', age:34}  // 返回 object
    typeof new Date()             // 返回 object
    typeof function () {}         // 返回 function
    typeof myCar                  // 返回 undefined (如果 myCar 没有声明)
    typeof null                   // 返回 object
        NaN 的数据类型是 number
        数组(Array)的数据类型是 object
        日期(Date)的数据类型为 object
        null 的数据类型是 object
        未定义变量的数据类型为 undefined
        整数、小数、类型都是number
 -->

3.constructor检测数据类型

 <!-- 
 constructor属性检测变量类型
 可以结合toString indexOf函数判断具体的数据类型
 "John".constructor                 // 返回函数 String()  { [native code] }
 (3.14).constructor                 // 返回函数 Number()  { [native code] }
 false.constructor                  // 返回函数 Boolean() { [native code] }
 [1,2,3,4].constructor              // 返回函数 Array()   { [native code] }
 {name:'John', age:34}.constructor  // 返回函数 Object()  { [native code] }
 new Date().constructor             // 返回函数 Date()    { [native code] }
 function () {}.constructor         // 返回函数 Function(){ [native code] }
  -->

二、数据类型的自动转换

  <!-- 
      自动类型转换
          数字可以通过String 函数直接转换成字符串
            toExponential()    把对象的值转换为指数计数法。
            toFixed()    把数字转换为字符串,结果的小数点后有指定位数的数字。
            toPrecision()    把数字格式化为指定的长度。
          字符串转换为数字
          【如果是非数值字符串会出错,空字符串、空值会转换为0】
          Number('str')//str
          Number(" ")//0
          Number("")//0
          Number("99 88")//返回NaN
          parseFloat()    解析一个字符串,并返回一个浮点数。
          parseInt()    解析一个字符串,并返回一个整数。
    自动类型转换
         5 + null    // 返回 5        null 转换为 0
        "5" + null  // 返回"5null"   null 转换为 "null"
        "5" + 1     // 返回 "51"     1 转换为 "1" 
        "5" - 1     // 返回 4        "5" 转换为 5    【这点尤为独特】
        当你尝试输出一个对象或一个变量时 JavaScript 会自
        动调用变量的 toString() 方法:
        自动类型转换成bool时,如果变量是对象则bool值为true
        若变量是空引用或者没有值,或者值为0则为false
      
   -->

三、变量的定义

在一中已经介绍了数据类型有哪几种,现在就使用那几种类型进行变量的定义

js中严格遵循字母的大小写、并且只能对数据类型相同的进行计算,不能对不
同类型的数据进行计算

1.字面量

字面量(literal)用于表达源代码中一个固定值的表示法(notation),
整数、浮点数以及字符串等等都是字面量。
js中的字面量有数字、字符串、数组、对象、函数

函数作为字面量使用doument获取

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><!-- js中的对象是由属相与方法组成的数据 --></head><body><h2>这是我得信息</h2><pid="demo1"></p><pid="demo2"></p><script>var demox ={
            name:"张三",
            age:"28",demo:function(){returnthis.name +" "+this.age;}}// 使用函数名加()时会返回函数对应的返回值
        document.getElementById("demo1").innerHTML=demox.demo()// 使用函数名不加()时会返回函数的定义【得益于函数闭包的支持】
        document.getElementById("demo2").innerHTML=demox.demo
    </script></body></html>

2.定义变量

①使用var声明

直接声明赋值
   var q;
   q=10;
声明新的变量时,可以使用new声明他的类型
   var k=new String;
   var k1=new Number;
可以一次声明多个变量
   var a=10,
   b=1,
   c=2;
对象的声明
   var user={
      name:"张三",
      age:"19",
      sex:"男",
      id:"888"
    }

②不使用var直接声明

   w=10;

③两者区别

使用方法区别

变量的声明 var 变量名
对没有声明的变量赋值,该变量将自动转化为window的一个属性,可以使用delete删除掉
使用var声明的变量赋值后没法删除

变量的作用域

 函数内部使用var声明的变量只能在函数内部使用(生命周期伴随函数开始与结束)
 函数外使用var声明的变量是全局变量,在整个页面内都可以使用
 函数内没有用var声明的变量也可以在全局访问到,是window变量,js中
 声明的变量均会自动转化为windows变量

总结

js的数据类型较为简单,需要注意的是字符串的自动类型转换、函数可以作为字面量使用、使用var定义变量与不使用的区别。


本文转载自: https://blog.csdn.net/apple_51931783/article/details/122762871
版权归原作者 酷尔。 所有, 如有侵权,请联系我们删除。

“一文弄清JavaScript数据类型”的评论:

还没有评论