加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > Java > 正文

JavaScript 数据类型

发布时间:2023-02-16 14:07:34 所属栏目:Java 来源:互联网
导读:数据类型就是 JavaScript 中可操作的数据的类型。 数据类型分为值类型与引用类型。 在 ES6 之前,主要有以下数据类型: 值类型 字符串 数字 布尔 null undefined 引用类型 对象 数组 函数 1. 为什么需要不同的数据类型 在学习自然数学的时候,所有的加法减法
  数据类型就是 JavaScript 中可操作的数据的类型。
 
  数据类型分为值类型与引用类型。
 
  在 ES6 之前,主要有以下数据类型:
 
  值类型
  字符串
  数字
  布尔
  null
  undefined
  引用类型
  对象
  数组
  函数
  1. 为什么需要不同的数据类型
  在学习自然数学的时候,所有的加法减法等操作都是针对数字的,数字加上操作符让他们有了意义。
 
  在学习语文课的时候,不同的词语可以组合成句子,主谓宾语法与词语相互结合赋予了句子意义。
 
  在 JavaScript 中也是如此,配合数据类型才能知道怎么对数据进行操作。
 
  上一小节有提到的字符串与数字就是如此。
 
  如 3 + 4,JavaScript碰到两边都是数字,就会做对应的加法操作。
 
  程序需要不同类型的数据表示不同的内容,分别做对应的处理。
 
  2. 值类型
  2.1 字符串
  字符串由字符组成,字符串在使用的时候会使用双引号(")或者单引号(')包裹。
 
  var str1 = '字符串';
  var str2 = "字符串";
  console.log(str1); // 输出:"字符串"
  console.log(str2); // 输出:"字符串"
  上述例子中,两个变量都是字符串类型的,可以双引号和单引号包裹的结果是一样的。
 
  但是如果需要在双引号包裹的字符串中使用双引号,或者在单引号包裹的字符串中使用单引号,需要使用进行转义,否则会报错,因为 JavaScript 无法知道字符串的结束位置。
 
  var str1 = '使'用'单'引'号';
  var str2 = "使"用"双"引"号";
  console.log(str1); // 输出:"使'用'单'引'号"
  console.log(str2); // 输出:"使"用"双"引"号"
  // 以下代码会报错
  var str3 = "哼"!";
  var str4 = ''哼!';
  大部分开发者会使用单引号包裹字符串。
 
  因为为了网页的动态展示、复杂交互等,需要用 JavaScript 书写 HTML 模版,而 HTML 的属性按照习惯是使用双引号包裹的(XML 标准允许单引号和双引号,在 HTML5 的标准中甚至不需要书写引号)。
 
  这样如果使用 JavaScript 中的字符串表示 HTML 就会变成如下情况:
 
  var html = "<div class="title text-red" style="display: inline-block;">我是一个红色的标题</div>";
  为了契合书写 HTML 的习惯,防止代码中充斥的大量的转义,就会使用如下使用单引号的形式。
 
  var html = '<div class="title text-red" style="display: inline-block;">我是一个红色的标题</div>';
  2.2 数字
  数字是最好理解的一种类型,因为生活中都会接触到。
 
  数字可以细分为浮点数和整数,浮点数就是带有小数位的数,但事实上在 JavaScript 只有64位的浮点数,具体的范围是 [-2^53 ~ 2^53],整数也使用浮点数表示。
 
  数字类型也存在负数,如果数字的区间为 (0, 1),则可以省略小数点前的 0。
 
  var num1 = ;
  var num2 = .;
  var num3 = ;
  var num4 = -;
  var num5 = ;
  以上是数字的一些表示方式。
 
  如果数字的大小超过最大值或者最小值,那他的值在 JavaScript 中会表示为 Infinity 和 -Infinity。
 
  var base = ;
  var num1 =  * base;
  var num2 = - * base;
  console.log(num1); // 输出:Infinity
  console.log(num2); // 输出:-Infinity
  这两个值分别表示为无穷大和无穷小。
 
  JavaScript 中还可以用数字表示二进制、八进制与十六进制。
 
  二进制是以 0b 开头的数字。
 
  var val10 = ;
  var val8 = ;
  console.log(val10); // 输出:10
  console.log(val8); // 输出:8
  在输出的时候还是会以十进制的结果进行输出。
 
  八进制则可以用 0 开头的数字表示。
 
  var val56 = ;
  console.log(val56); // 输出:56
  十六进制使用 0x 开头表示。
 
  var val10 = ;
  console.log(val10); // 输出:10
  十六进制是比较常用的一种方式,二进制和八进制的表示使用相对较少。
 
  2.3 布尔
  布尔值表示两种状态,如同使用零和一区分状态的开关一样。

  开关
  布尔值两种状态对应 true 和 false 两个值。
 
  通常 true 被称为真值,false 被称为假值,两者也被统一称为布尔值。
 
  var empty = true;
  var isVIP = false;
  通常在只有两种状态的情况下会使用布尔值。
 
  以下值在转换成布尔值的时候会转换成 false。
 
  null
  undefined
  NaN
  0 ( 数字 0 )
  空字符串
  2.4 null
  null是一个非常特殊的类型,表示对象的值未设置,也可以简单理解成空,什么都没有。
 
  通常null会在应该获取到一个对象,但是没获取到的时候进行使用,结合对象会更好理解。
 
  在初始化一个变量的时候,有时候类型不确定,或者应该是一个对象,但还有设置值的时候会使用到null。
 
  var obj = null;
  2.5 undefined
  undefined从中文意思上理解就是不确定或者没有定义。
 
  一个变量在声明后如果没有赋值,他的值就是undefined。
 
  var age;
  console.log(age); // 输出:undefined
  一个函数在没有指定返回值的时候,默认就会返回undefined。
 
  function fn() {
    console.log('我是名字为fn的函数');
  }
  var val = fn();
  console.log(val); // 输出:undefined
  函数fn没有提供返回值,但val的值为undefined。
 
  比较有趣的是,undefined既是一种数据类型,在浏览器中又是作为全局变量存在的,也就是window对象下的一个属性。
 
  console.log('undefined' in window); // 输出:true
  使用in关键字可以校验某个对象下是否存在某个属性。这里的意思就是undefined属性是否在window对象下存在。
 
  控制台会输出布尔值true,为一个真值,表示属性是确实存在的。
 
  3. 引用类型
  3.1 函数
  函数其实是一段 JavaScript 代码,调用函数就会执行函数中的代码。
 
  使用 function 关键字就可以定义一个函数,简单的函数语法如下:
 
  function 函数名(参数) {
    函数体;
    return 返回值;
  }
  var ret = 函数名(参数) // 调用函数
  函数名就是函数的名字,在调用函数的时候会被使用到。
 
  参数则是传递给函数的数据,函数内部可以访问到传进来的参数。
 
  return 则标志着函数的结束,返回值会被作为结果进行返回。
 
  function add(arg1, arg2) {
    var sum = arg1 + arg2;
    return sum;
  }
  var num1 = add(, );
  var num2 = add(, );
  console.log(num1); // 输出:3
  console.log(num2); // 输出:6
  上面这个例子就是声明了一个名为 add 的函数,其功能就是把两个参数求和并返回。
 
  可以看到函数让代码更加有 意义,调用 add 函数的地方可以很好的理解这里是在做求和操作,同时提高了代码的复用率。
 
  3.2 对象
  对象由属性和方法组成。
 
  其格式如下:
 
  var obj = {
    属性名: 属性值,
    属性名: 属性值,
    方法名: 方法,
    方法名: 方法,
    '属性名3': 属性值,
  };
  属性名和方法名都为字符串,如果其符合变量命名规范,则可以不使用引号包裹。
 
  本质上方法也可以算作一个属性,通常在对象里一个属性的属性值为一个函数,就会称之为方法。
 
  var obj = {
    name: '小明',
    age: ,
    say: function() {
      console.log('我叫' + this.name + ', 我的年龄是' + this.age + '岁');
    },
    'father-name': '小蓝',

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读