js中为什么基本数据类型能调用对象方法

2023-05-16

在js中数据类型被分为两大类

  1. 基本数据类型
  2. 引用数据类型

引用数据类型可以使用原型对象中内置的实例方法。为了更方便开发人员操作基本数据类型,在基本数据类型中也有内置的方法。这些方法放在es三个特殊引用类型(基本包装类型)中,他们分别是:Boolean,Number,String。

当操作一个基本类型数据的时候,后台就会创建一个基本包装类型对象,通过这个创建的对象开发人员可以调用一些内置方法操作基本数据类型。

let str='string';
let str2 = str.substring(2);
console.log(str2)

在上段代码中,str2并不是一个对象 只是一个基本数据类型,然而他调用了一个对象方法。

原因如下:

在执行let str2= str.substring(2)的时候,js会进行以下步骤:

  1. 自动创建一个String类型的实例,这个实例就是一个基本包装类型的对象。
  2. 调用这个实例上的方法
  3. 销毁此示例

代码描述如下:

var str = new String('test');//创建一个基本包装类型对象 
var  str = str.substring()//通过对象调用方法
str =null //销毁实例对象 防止性能占用

js什么时候会自动创建一个对应的基本包装类型对象呢?

当程序执行时,当前执行代码如果需要获取到这个基本数据类型的值时(这个访问过程叫做读取模式),后台就会自动创建一个基本包装类型的对象。

var str = 'hhh'
console.log(str)//需要读取 str的值,进入读取模式 后台自动创建基本包装类型对象
var str2 = str //将str的值赋值给str2 需要从内存中读取str的值 所以也会进入读取模式

通过以上的描述 不难得出常规引用类型和基本包装类型的主要区别:对象的生存期

  • 引用数据类型:当使用new操作符创建的引用类型实例,在执行流离开当前作用域之前一直保存在内存中。
  • 基本包装类型:只存在一行代码之中,使用完后立即销毁

在js中给基本数据类型添加方法和属性也是可行的,但并不推荐这种做法(首先没有太大意义,其次容易造成一些错误)

//给包装对象添加原型方法
var str = 'hello'
//在包装对象原型对象下写方法
String.prototype.函数名=funcion(){
  //函数体
}
//这样基本数据类型就能调用新增的方法
console.log(str.新增函数名)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js中为什么基本数据类型能调用对象方法 的相关文章

  • conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了

    文章目录 背景 xff08 为什么 xff09 具体步骤查看conda支持的cuda版本下载cuda安装cuda查看cuda对应的cudnn版本下载cudnn版本安装cudnn 测试安装是否成功安装pytorch测试cuda版本 参考链接
  • COCO数据集格式、mask两种存储格式、官方包API详解

    文章目录 前言COCO数据集格式总体组织结构 96 image对象 96 的主要属性 xff1a 96 annotation对象 96 的属性主要 xff1a pycocotools包中的COCO对象及APICOCO对象的属性COCO对象的
  • Vue3通过axios发起get、post请求以及对应的springboot后端接收方式

    题目 前言前端请求中参数的存储格式application jsonmultipart form dataapplication x www form urlencoded axios发送请求的两种方法使用axios发送get请求使用axio
  • python读取、显示、保存图片的几种方法

    目录 读取图像使用opencv读取使用PIL包读取 保存图片显示图片代码总结 读取图像 读取图像我一般采用的有两种方法 xff0c 如果想要读成numpy数组格式就用opencv方式 xff0c 想要读成Image对象格式就用PIL包读取
  • linux_磁盘挂载

    我挂window磁盘用到的 许多同学挂载后都容易遇到权限不对 xff0c 中文乱码 xff0c 无法执行的问题 我记录一下 在 etc fstab 下加入 dev sda5 home blacklaw programs vfat user
  • 使用SimpleITK读取、保存、处理nii文件

    目录 前言nii格式读取nii成numpy格式将numpy格式保存成nii什么是origin Direction Spacing xff0c 以及如何设置它们示例重采样重采样代码 参考链接 前言 nii gz格式是保存医学图像非常重要一种格
  • Cron表达式详解

    目录 基础通配符说明常用示例参考链接 基础 在编写定时任务执行时间时 xff0c 会用到cron表达式 cron表达式一共有七位 xff0c 从左到右依次为 秒 分 时 日 月 周 年 每位可填的内容如下 序号说明是否必填允许填写的值允许的
  • Python装饰器

    目录 什么是装饰器装饰器不需要传入参数装饰器需要传入参数 什么是装饰器 Python的装饰器类似于Java的注解 xff0c 可以在不侵入原有代码的基础上进行额外的操作 xff0c 比如记录日志等操作 底层的实现相当于将一个函数传入了另一个
  • python ast 详解与用法

    目录 基本概念节点类型ast Assignast Nameast Constantast Callast Attribute 结点的遍历ast源码示例 结点的修改示例 参考链接 基本概念 在 python 中 xff0c 我们可以通过自带的
  • 写写博客:Markdown生僻语法(一) 希腊字母的编辑

    写写博客 xff1a Markdown生僻语法 一 希腊字母的编辑 写博客中间 xff0c 需要用到公式的编写 xff0c 中间有好多希腊字母 xff0c 写不来 xff0c 特此做个总结 xff1a 希腊字母一览表 xff1a Markd
  • 自用向,当树莓派烧录完rikirobot的镜像后怎么把它变为纯净ros镜像

    1 rikirobot已经安装了大部分的ros包 xff0c 具体镜像可以在tb上购买 xff0c 但他是为了主从机而设定的 xff0c 第一步 xff0c 先安装gedit xff08 密码默认123456 xff09 span clas
  • 机器学习:Linear Discriminant Analysis(过程详解+实例代码MATLAB实现

    目录 LDA概念线性判别分析 xff08 LDA xff09 二分类LDA二分类过程举个例子 线性判别分析 多分类LDA多分类过程 Experiment 3 Linear Discriminant AnalysisLDA二分类讲解LDA二分
  • python编程:从入门到实践 笔记

    文章目录 第二章 变量和简单数据类型2 1 运行 hello world py 时发生的情况2 2 变量2 2 1 变量的命名和使用2 2 2 使用变量时避免命名错误 2 3 字符串2 3 1 使用方法修改字符串的大小写name title
  • 网络层——IP协议

    协议格式网段划分特殊的IP地址IP地址的数量限制私有IP地址和公网IP地址 协议格式 4位版本号 xff1a 指定IP协议的版本 xff0c 对于IPv4来说 xff0c 就是44位首部长度 xff1a 标识IP报头的长度 xff0c 最小
  • 若依 CAS 6.1 java.io.FileNotFoundException: \etc\cas\thekeystore (系统找不到指定的文件。)

    参考文章 实际上语文水平不过关 xff0c 把cas resources内部的文件全部拷贝到cas overlay template src main resources下
  • 解决通过vnc登陆linux server,在terminal最小化后找不到的问题

    在左边的菜单栏右击 xff0c add new panel xff0c 再右击新添加的add to panel xff0c 然后会让你选择往这个新panel上添加新的菜单 xff0c 把window list添加就好了
  • CSS第二章:2.颜色单位(RGB值、RGBA值)

    总览 一 RGB 1 CSS中能够使用颜色名来使用颜色 2 不使用颜色名 xff0c 我们使用RGB值来描述颜色 3 R red G green B blue 4 每一种颜色的范围在0 255 xff08 0 100 xff09 之间 5
  • 信息化与数字化的区别

    数字化与信息化的区别 今日看到一篇文章 信息化与数字化的核心差异 xff0c 让我重新思考了这两个即熟悉又陌生的名词 xff0c 通过这篇文章和在B站上搜相对应的视频 xff0c 使我大致懂了一些 1 信息化是什么 xff1f 信息化是数据
  • 开启快乐之旅—【C#Winform&认识篇】

    入门学习 简单了解熟悉界简单操作1 xff1a 修改窗体标题2 xff1a 修改窗体图标3 xff1a 窗体出现位置4 xff1a 最大化 xff0c 最小化操作5 xff1a 是否任务栏显示form窗体6 xff1a 窗口大小 简单了解

随机推荐

  • ubuntu磁盘清理

    打开ubuntu software 搜索Bleachbit 安装即可 系统清理工具BleachBit使用 ubuntu清理磁盘空间的多种方法 Ubuntu上释放磁盘空间的几种简单方法 Ubuntu 安装 BleachBit 也可 1 查看电
  • 一些网站资源分享

    链接地址 网站地址 1 博客就是这个博客 2 音乐是我网易云歌单 3 图床是我保存的图库 4 西瓜导航里面有各种网站 5 钟馗之眼是一个爬虫全网某些特征的网站 6 罗马盘是资源网站 7 AI引擎 xff0c 体验智能的感觉 8 优店 xff
  • 软件工程的完整生命周期

    生命周期大体上分为11个步骤 xff0c 如下图 xff1a 第一步 xff1a 概念 创意 需求 产生 xff0c 这个环节一般是项目发起人完成 xff0c 也有可能由产品经理或收到反馈后发起 xff0c 很多时候是会带有这个项目的期望或
  • Qt-设置背景色的几种方式

    最近设置背景色 xff0c 被背景色搞得晕头转向 xff0c 然后总结了一下用过的方法与踩过的坑 xff0c 希望大家有所帮助 QLabel label 61 new QLabel CSS样式 xff0c 直接设置样式 xff0c 该方法对
  • C++ 如何获取数组/容器的长度?

    文章目录 一 获取数组的长度1 sizeof a sizeof a 2 end a begin a 二 获取标准库容器的长度三 数组作为函数参数时 xff0c 在函数中无法获取其长度 一 获取数组的长度 1 sizeof a sizeof
  • 计算机网络期末复习题

    1 请简述在划分子网的情况下 xff0c 路由器转发IP数据报的基本过程 答 xff1a 在划分子网的情况下 xff0c 路由器转发分组的算法如下 xff1a 1 从收到的数据报首部提取目的IP地址D xff08 1分 xff09 2 先判
  • Jetson TX1 TX2 IO 引脚设置

    有朋友问我引脚问题 xff0c 我就把一段文档摘抄在这里了 希望对大家有用 配置40引脚扩展接头 主屏幕 兼容的硬件屏幕 40引脚扩展标题屏幕 命令行界面 设备树覆盖 创建简单的设备树覆盖 为40针接头连接器创建自定义设备树覆盖 启动Jet
  • Android手机怎样投屏到win10(无需联网)

    一 前言 适用场景 xff1a 无可用wifi 想获得大屏观影体验 x1f601 二 具体操作 PC端 在Cortana处搜索 投影设置 投影到此电脑 处的设置如下如图 xff08 也可根据自己习惯调整 xff09 安卓端 华为手机为例 打
  • Windows远程控制ubuntu16.04的vnc教程(附灰屏和无鼠标只显示叉号的解决方案)

    VNC可远程Linux的桌面 xff0c 不仅仅只可以远程终端窗口 xff0c 操作起来要比ssh好用 xff0c 效果如图 VNC介绍 xff1a VNC Virtual Network Console xff0c 即虚拟网络控制台 xf
  • 联邦学习安全与隐私保护

    一 FL隐私保护方法 1 1 加密方法 通过将明文编码为密文的方式 xff0c 只允许特定人员解码 xff0c 为数据隐私保护提供了有效手段 xff0c 但往往需要较大的计算开销 xff0c 较难应用于实际场景中 安全多方计算 SMC研究的
  • vue - vue项目对axios请求的封装

    axios介绍 axios是基于promise的网络请求库 xff0c 可以在nodejs和浏览器中运行 在服务端axios使用原生的nodejs的http模块 xff0c 在客户端浏览器中则而是用xmlhttprequests xff0c
  • C++总结——语法篇

    Static关键字1 静态全局变量2 静态局部变量3 静态函数4 静态数据成员5 静态成员函数 引用引用与指针的区别 左值 右值 左值引用 右值引用 new delete与malloc free Static关键字 1 静态全局变量 sta
  • Android开发快速入门及导出apk

    环境及工具准备 jdk安装配置安装android studio或idea xff08 推荐直接使用idea xff0c android studio其实也是基于idea开发的 xff09 配置android sdk安装一个安卓模拟器 xff
  • 在阿里云搭建CENTOS7系统以及图形界面

    1 搭建CentOS7操作系统服务器 首先要购买服务器 xff0c 推荐学生认证可以获得好几个月的免费服务器 略去具体的过程 阿里云默认的系统不是CentOS7 xff0c 所以需要先将操作系统改成CentOS7 在实例的基本信息中 xff
  • linux基础学习,有相应的笔记文件XMind和Word(基于centos8(主要的)和Ubuntu20),里面有linux基本操作指令和JavaEE,大数据相关的shell。2021年4月26日

    前面的话 这篇文章是我学习linux的一个记录 xff0c 我是用XMind记笔记的 xff0c 然后转换为Word最后粘贴到这里的 xff0c 如果感兴趣的话 xff0c 可以下载我上传的文件 xff0c 都是免费的 xff0c 大家共同
  • MapReduce的详细使用

    MapReduce 文章目录 MapReduce1 常用数据序列化类型2 编程规范 xff08 三个阶段 xff09 Mapper阶段Reducer阶段Driver阶段 3 编程环境准备4 简单案例 单词统计 5 序列化序列化概述自定义 b
  • STM32-串口通信详解

    目录 前言 一 通信接口背景知识 1 并行通信和串行通信 2 串行通信的分类 二 STM32的串口通信基础 1 串口通信接口 2 串口通信框图 3 串口通信相关寄存器 4 波特率计算方法 三 库函数配置 1 串口配置一般步骤 总结 前言 众
  • 【SDN控制器分析之一】ONOS架构概述

    ONOS 设计目标 ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目 xff0c 在最初设计时有这么几个目标是明确的 xff1a 代码模块化 xff1a 支持把新的功能作为新的独立单元引入特性可配置 xff1a 无论是在启动
  • 如何让matlab形成多图共用颜色条?

    需求 xff1a 使用matlab命令tile layout功能 xff0c 从文件中读取名称不同的8组图片 xff0c 每组包含5个具有递增编号的图片 xff0c 实现的效果是 xff0c 返回一张8x5的大图 xff0c 也就是8行5列
  • js中为什么基本数据类型能调用对象方法

    在js中数据类型被分为两大类 基本数据类型引用数据类型 引用数据类型可以使用原型对象中内置的实例方法 为了更方便开发人员操作基本数据类型 xff0c 在基本数据类型中也有内置的方法 这些方法放在es三个特殊引用类型 xff08 基本包装类型