71爱课网 >  java培训学校 JavaScript的基本数据类型有哪些(前端基本数据类型)

JavaScript的基本数据类型有哪些(前端基本数据类型)

  • 授课方式: 面授/网课
  • 授课学校:java培训学校
  • 预约人数:1148人试听过
  • 教学点: 0个
  • 上课时段: 全日制
  • 开课时间:随到随学
  • 微信客服: 扫码咨询
  • 咨询电话: 15907412407

  原始类型

  JavaScript 中原始类型有六种,原始类型既只保存原始值,是没有函数可以调用的。

  六种原始类型

  string

  number

  boolean

  null

  undefined

  symbol

  为什么说原始类型没有函数可以调用,但'1'.toString()却又可以在浏览器中正确执行?

  因为'1'.toString()中的字符串'1'在这个时候会被封装成其对应的字符串对象,以上代码相当于new String('1').toString(),因为new String('1')创建的是一个对象,而这个对象里是存在toString()方法的。

  null到底是什么类型

  现在很多书籍把null解释成空对象,是一个对象类型。然而在早期JavaScript的版本中使用的是32位系统,考虑性能问题,使用低位存储变量的类型信息,000开头代表对象,而null就代表全零,所以将它错误的判断成Object,虽然后期内部判断代码已经改变,但null类型为object的判断却保留了下来,至于null具体是什么类型,属于仁者见仁智者见智,你说它是一个bug也好,说它是空对象,是对象类型也能理解的通。

  对象类型

  在 JavaScript 中,除了原始类型,其他的都是对象类型,对象类型存储的是地址,而原始类型存储的是值。

  var a = [];

  var b = a;

  a.push(1);

  console.log(b); // 输出[1]

  在以上代码中,创建了一个对象类型a(数组),再把a的地址赋值给了变量b,最后改变a的值,打印出b时,b的值也同步发生了改变,因为它们在内存中使用的是同一个地址,改变其中任何一变量的值,都会影响到其他变量。

  对象当做函数参数

  function testPerson(person) {

  person.age = 52;

  person = {

  name: '李四',

  age: 18

  }

  return person;

  }

  var p1 = {

  name: '张三',

  age: 23

  }

  var p2 = testPerson(p1);

  console.log(p1.age); // 输出52

  console.log(p2.age); // 输出18

  代码分析:

  testPerson函数中,person传递的是对象p1的指针副本

  在函数内部,改变person的属性,会同步反映到对象p1上,p1对象中的age属性发生了改变,即值为52

  testPerson函数又返回了一个新的对象,这个对象此时和参数person没有任何关系,因为它分配了一个新的内存地址

  以上分析可以用如下图表示

  

JavaScript数据类型

  如若转载,请注明出处:开源字节 https://sourcebyte.cn/article/123.html

推荐课程

师资力量