美文网首页
JS中的数据类型

JS中的数据类型

作者: 灯火葳蕤234 | 来源:发表于2019-04-15 14:55 被阅读0次
Value Types(值类型、元值)
  • Number
  • String
  • Boolean
  • Symbol
  • undefined
  • null
Reference Types(引用值)
  • Object
  • Function
  • Array
let x = 10;
let y = x;
x = 20;
//x 20
//y 10

如果我们使用一个引用类型或对象

let x = { value: 10 };
let y = x;
x.value = 20;
//x { value: 20 }
//y { value: 20 }

通过这两个例子,我们可以看出区别。
当我们使用对象的时候,对象不存储在变量里,对象存储在内存里的一个其他的地方,然后对象在内存中的地址存储在变量里(如变量x其实存储的是对象{ value: 10 }在内存中的地址),所以当我们拷贝x到y的时候,是这个内存地址被复制过去了。因此,x和y实际上是指向的同一个内存地址,我们不管是从x还是y去修改这个对象的时候,这种改变都将立即在另一个变量中体现出来。

结论:值类型复制值,对象和引用类型复制引用

另一个例子:

let number = 10;
function increase(number) {
  number++;
}
increase(number);
console.log(number);  //10

我们可以看到输出的是10,但我们不是+1了吗?
其实,当我们调用increase函数并传入number变量的时候,这个值被复制到函数的本地参数number里面,所以这个number变量与外面的number变量是完全无关的,increase函数运行结束,函数内的numer变量就不在作用域中了。所以输出还是为10。
现在我们把它转换为一个引用类型对象。

let obj= { value:10 };
function increase(obj) {
  obj.value++;
}
increase(obj);
console.log(obj);  //{ value:11 }

从输出我们可以看到,obj的值被改变了,这样的原因是,当我们调用increase函数并且传入obj这个对象,这个对象以引用的方式传递,所以在这个例子中,我们操作的不是两个独立的个体,我们操作的是两个不同变量所指向的同一个对象。

JavaScript中可以动态地添加或删除属性:
function Circle(radius) {
  this.raadius = radius;
  this.draw = function() { 
    console.log('draw');
  }
}
const circle = new Circle(10);
//新增属性
circle.location = { x: 1 }
const propertyName = 'center location';
circle[propertyName] = { x: 1};
//删除属性
delete circle['location'];//这里我们同样可以使用'.'操作符和'[]'操作符

我们可以看到,点操作符写法比方括号简单点,但是方括号在实际场景中也是很有用的,例如我们想要动态地访问一个属性名,或者我们使用的属性名称不符合语法规则的时候(例如包含-或者空格),就可以使用方括号来访问。

相关文章

  • JS 里的数据类型转换

    一.JS中的数据类型 js中的数据类型可以分为七种:string 、number、boolean、symbol、 ...

  • JS中的数据类型和转换

    一、JS中的数据类型 js中的数据类型可以分为五种:number 、string 、boolean、 underf...

  • js基础(一)

    1-js中的数据类型 js中的原始数据类型有6中,其中基本数据类型有4种(string、number、boolea...

  • 2022前端面试题汇总(附答案)更新中

    JS相关 1.JS中的数据类型 (1)数据类型分为基本数据类型和引用数据类型基本数据类型:number、null、...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • JS 高频面试题汇总

    # 说一下JS 中的数据类型有哪些 JS 数据类型包括 基本 / 引用 / 特殊 数据类型: 基本数据类型:Str...

  • JS 里的数据类型

    JS之父:Branden Eich。 JS的标准是ECMAScript。 JS只有七种数据类型,在这些数据类型中要...

  • js中的数据类型及转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,n...

  • js笔记二十六之预解释

    js中的数据类型 基本数据类型stringnumberundefinednullBoolean 引用数据类型对象{...

  • Web前端必知篇:原型链的讲解

    js中的数据类型 js中的数据类型有两种,1是基本数据类型,2是引用数据类型。引用数据类型又可分为原生引用类型和自...

网友评论

      本文标题:JS中的数据类型

      本文链接:https://www.haomeiwen.com/subject/geduwqtx.html