首页 > 编程语言 >JavaScript 面向对象(番外)JS原始类型和引用类型

JavaScript 面向对象(番外)JS原始类型和引用类型

时间:2022-11-24 00:12:58浏览次数:78  
标签:对象 番外 JavaScript JS 原始 引用 https 类型

书摘来自异步社区《JavaScript面向对象精要》一书中的第1章,第1.1节

第1章 原始类型和引用类型

大多数开发者在使用Java或C#等基于类的语言的过程中学会了面向对象编程。由于JavaScript没有对类的正式支持,这些开发者在学习JavaScript时往往会迷失方向。JavaScript不需要在开头就定义好各种类,你可以在写代码的过程中根据需要创建数据结构。由于JavaScript缺少类,也就缺少用于对类进行分组的包。在Java中,包和类的名字不仅定义了对象的类型,也在工程中列出文件和目录的层次结构,JavaScript编程就好像从一块空白石板开始:你可以在上面组织任何你想要的东西。些开发者选择模仿其他语言的结构,也有一些人则利用JavaScript的灵活性来创建一些全新的东西。对没有掌握JavaScript的人来说,这种选择的自由令人崩溃,然而一旦你熟悉了它,你会发现JavaScript是一种无比灵活的语言,可以很轻松地适应你的编程习惯。

为了便于开发者从传统的面向对象语言过渡,JavaScript把对象作为语言的中心。几乎所有JavaScript的数据要么是一个对象要么从对象中获取。其实就连函数在JavaScript中也被视为对象,这使得它们成为JavaScript的一等公民。

使用和理解对象是理解整个JavaScript的关键。你可以在任何时候创建对象,在任何时候给对象添加、删除属性。JavaScript对象是如此灵活,可以创造出其他语言不具有的独特而有趣的模式。

本章致力于鉴别和使用两种JavaScript基本数据类型:原始类型和引用类型。虽然两者都通过对象进行访问,但是理解它们行为之间的区别是非常重要的。

1.1 什么是类型

JavaScript虽然没有类的概念,但依然存在两种类型:原始类型和引用类型。原始类型保存为简单数据值。引用类型则保存为对象,其本质是指向内存位置的引用。

为了让开发者能够把原始类型和引用类型按相同方式处理,JavaScript花费了很大努力来保证语言的一致性。

其他编程语言用栈储存原始类型,用堆储存引用类型,JavaScript则完全不同:它使用一个变量对象追踪变量的生存期。原始值被直接保存在变量对象内,而引用值则作为一个指针保存在变量对象内,该指针指向实际对象在内存中的存储位置。虽然看上去原始值和引用值一样,但是它们还是有区别的,本章稍后会介绍。

当然,原始类型和引用类型还有其他区别。

 

https://blog.csdn.net/lilele0227/article/details/88210194?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

JavaScript 基本数据类型和引用类型的区别详解

https://blog.csdn.net/weixin_41121240/article/details/109272539

https://www.cnblogs.com/Jccc/p/5144489.html

https://www.cnblogs.com/ljuyi/p/6100071.html

https://www.w3school.com.cn/js/pro_js_primitivetypes.asp

标签:对象,番外,JavaScript,JS,原始,引用,https,类型
From: https://www.cnblogs.com/dork/p/14028287.html

相关文章

  • JavaScript 面向对象 番外 Object.defineProperty()
     注意,如果描述符中的某些属性被省略,会使用以下默认规则: ......
  • javascript-代码随想录训练营day8
    344.反转字符串题目链接:https://leetcode.cn/problems/reverse-string/题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。......
  • JS函数总和
    函数定义: JavaScript使用关键字function定义函数。 函数可以通过声明定义,也可以是一个表达式。 函数声明语法: parameters:参数 functionname:函数名称 ......
  • js013-js分离的DOM操作
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><tableborder="1"><thead><tr>......
  • JS验证及错误调试
    /* try语句测试代码块的错误。 catch语句处理错误。 throw语句创建自定义错误。 finally语句在try和catch语句之后,无论是否有触发异常,该语句都会执行......
  • springboot整合jsp打包
    本文主要分享了对整合jsp的springboot项目打jar包,如何正确的配置maven pom。二、打包配置1.pom.xml添加spring-boot-maven-plugin配置<build><plugins>......
  • springboot整合jsp传参
    ViewController:packagecom.keafmd.controller;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframewo......
  • js012-提交表单的两种方式
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>提交表单</title></head><body><formid="i1"action="https://www.baidu.com">......
  • Mapbox 与 Babylon.js 可视化 glsl 特效篇(十一)
    我决定不从Babylonjs基础来讲了直接整合mapbox与babylonjs可视化来讲我整合一个类库后续不断更新中npmi@haibalai/mapbox-babylonjs 初始化mapbox-babylonjs......
  • Mapbox 与 Babylon.js 可视化 glsl 特效篇(十)
    我决定不从Babylonjs基础来讲了直接整合mapbox与babylonjs可视化来讲我整合一个类库后续不断更新中npmi@haibalai/mapbox-babylonjs 初始化mapbox-babylonjs......