分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

js 值类型和引用类型

发布时间:2023-09-06 01:57责任编辑:沈小雨关键词:js

今天来给大家介绍一下数据类型的另一种解读,值类型和引用类型(及简单类型和复合类型)

一、基本概念

  ECMAscript变量包括两种不同的数据类型的值,一种叫做简单类型(值类型),指的是简单的数据段,另一种叫做复合数据类型(引用类型),是由多个值构成的对象。

  在js的数据类型中,number,boolean,string,null和undefined都属于值类型,而函数和对象属于引用类型。

二、数据类型判断

  基本类型:typeof

  引用类型:instanceof

var a=10;console.log(typeof a);//numbervar b=true;console.log(typeof b);//booleanvar arr=[];console.log(arr instanceof Array);//truevar obj={};console.log(obj instanceof Object);//true;var fun=function(){ ?var i=0; ?console.log(i); ???????????}console.log(fun instanceof Function)//true

三、存储机制

  基本数据类型:是存放于栈内存中,包括变量标识符和变量的值,基本数据类型复制后开辟的是新的内存,两个变量互不影响。

  引用类型:保存在堆内存中,是对地址的引用(及指针),所以变量复制后的两个变量指向的还是同一个对象,因此对其中一个进行操作,另一个结果也会受到影响。

  先给大家举点例子吧

var num1=10;var num2=num1;num2-=2;console.log(num1,num2);//10,8var arr1=[1,2,3];var arr2=arr1;arr2.push(4);console.log(arr1,arr2);//[1,2,3,4],[1,2,3,4]var person1={name:‘zhangsan‘,age:20}var person2=person1;person2.name=‘lisi‘;console.log(arr1,arr2);//{name:‘lisi‘,age:20},{name:‘lisi‘,age:20}

四、创建对象实例的方法

  1,使用new操作符后跟Object构造函数

  2,字面量

  

var obj=new Object();//或var obj2={};console.log(obj,obj2);//{},{} ????console.log(obj==obj2) ?false ?堆内存,不同地址/获取//以及点表示法和方括号表示法var person1={name:‘zhangsan‘,age:20}console.log(person1.name)//zhangsanconsole.log(person1[‘name‘])//zhangsan

  ps:点表示法和方括号表示法的区别

  1,能用点表示法标识的一定可以用方括号表示,但能用方括号表示的,不一定能用点表示

  2,方括号表示法可以用变量名做属性名,点表示法不能

  3,方括号可以用纯数字表示属性,点表示法不能

  4,方括号表示法可以用js的关键字和保留字作为属性,点表示法不能

  此处我就不向大家要一一举例啦,这里还是很好理解的,总之就是方括号表示法的功能强于点表示法,但是一般我们用点表示法注意下特殊的就好了。

js 值类型和引用类型

原文地址:https://www.cnblogs.com/epines/p/9131305.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved