一文弄清JavaScript数据类型

简介: 一文弄清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获取


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
        <!-- js中的对象是由属相与方法组成的数据 -->
</head>
<body>    
    <h2>这是我得信息</h2>
    <p id="demo1"></p>
    <p id="demo2"></p>
    <script>
        var demox = {
            name: "张三",
            age: "28",
            demo : function(){
                return this.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定义变量与不使用的区别。


目录
相关文章
|
2月前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
137 59
|
3月前
|
JavaScript
js基础数据类型
js基础数据类型
29 1
|
20天前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
41 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
|
1月前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
20 1
|
21天前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
15 0
|
2月前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
40 2
|
2月前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
38 2
JavaScript基础知识-基本数据类型和引用数据类型
|
3月前
|
JavaScript 前端开发
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
这篇文章是JavaScript基础与实战教程的第一部分,涵盖了JavaScript的基本语法、标识符、数据类型以及如何进行强制类型转换,通过代码示例介绍了JS的输出语句、编写位置和数据类型转换方法。
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
|
3月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
303 1
|
3月前
|
JavaScript 前端开发
JS常用数据类型转换(数字型和字符串型之间转换)
JS常用数据类型转换(数字型和字符串型之间转换)
59 2