JavaScript系列-数据类型

news/2024/7/24 6:50:48 标签: javascript, 开发语言, 前端

ES6变量类型

JavaScript编程语言中,变量类型分为基本变量类型引用类型,两种变量类型的区别在于

  • 基本类型变量值存放于栈中,引用类型变量值存放于堆中
  • 基本类型赋值给其他变量,是将其值复制过去
  • 引用类型赋值给其他变量,复制的是地址值,两者指向同一个对象
//定义a和b两个基本变量,b的值改变影响a
let a = 10;
let b = 10;
b = 20
console.log(a)//10

//定义一个引用类型 obj1 ,obj2 与obj1 指向同一个地址,修改obj2 其实obj1 同一个对象
let obj1 = {a:10,,b:20}
let obj1= obj2 
obj2.a = 2;
console.log(obj1.a)//2
console.log(obj2.a)//2

image.png

image.png

1.基本变量类型

image.png

2.引用类型

image.png

变量类型检测

对于类型的检测,有以下三种方案

1.基本类型的检测使用 typeof

  • typeof 可以检测出基本类型的大部分类型,除了null,typeof null 返回是’object’
  • 对于引用类型使用typeof ,返回的都是‘object’,因此无法使用typeof 检测引用类型

image.png

let a = 10;
let b ="123";
let c =true;
let d= undefined
let e = null
let f = Symbol("a")

function getType(name){
    return typeof name;
}

console.log(
getType(a),//"number"
getType(b),//"string"
getType(c),//"boolean"
getType(d),//"undefined"
getType(e),//"object"
getType(f),//"symbol"
)

2.引用类型检测使用 instanceof

  • instanceof 的原理是检测对象原型链上,是否存在构造函数的prototype属性
  • 基本类型不能直接使用此方法检测,如果是通过构造函数定义,可以检测出来,null和undefined也不行

image.png

使用例子
object instanceof construtor
检测object 原型链是否存在与construtor.prototype 一致的属性

let a = [1,2]
let b = function(){}
a instanceof Array //true
b instanceof Function //true

3.引用类型和基本类型检测通用方法 Object.prototype.toString.call(变量)

image.png

Object.prototype.toString.call("123")//"[Object String]"
Object.prototype.toString.call([1,2,3])//"[Object Array]"

http://www.niftyadmin.cn/n/5251811.html

相关文章

Java-JDBC操作MySQL

Java-JDBC操作MySQL 文章目录 Java-JDBC操作MySQL一、Java-JDBC-MySQL的关系二、创建连接三、登录MySQL四、操作数据库1、返回型操作2、无返回型操作 练习题目及完整代码 一、Java-JDBC-MySQL的关系 #mermaid-svg-B7qjXrosQaCOwRos {font-family:"trebuchet ms",verd…

vue中滚轮缩放事件

在Vue中&#xff0c;可以使用原生JS的滚轮事件监听来实现滚轮缩放&#xff1a; 首先在模板中给需要监听滚轮事件的元素添加一个ref属性&#xff0c;用于在Vue中获取元素节点。 <template><div ref"scale"><!-- 需要缩放的内容 --></div> &…

vue-socket.io以及原生websocket的使用

vue3使用socket.io 1、安装 npm install vue-socket.io2、创建socket.js文件 export const registerSockets (sockets, proxy) > {sockets &&Object.keys(sockets).forEach((t) > {// console.log(t);// "subscribe" ! t &&// "un…

【vue3基础核心语法】简单学习vue3核心语法加elementPlus,vue3和vue2的区别,有vue2基础的看完这篇快速使用。学习笔记持续更新【详细注释】

前言 一直用的vue2写的。一直没有接触过vue3没有机会使用工作中 自己又比较懒&#xff0c;一直拖着没学&#xff0c;因为感觉学了不用&#xff0c;过段时间我就忘得差不多了。 这次刚好公司有了这个vue3的项目&#xff0c;我就来学习一波&#xff0c;然后实战练练刚好记得牢一…

<HarmonyOS主题课>使用DevEco Studio高效开发【课后考核】

【习题】使用DevEco Studio高效开发 单选题 用哪一种装饰器修饰的组件可作为页面入口组件&#xff1f;(B) A. Component B. Entry C. Preview D. Builder ArkTS Stage模型支持API Version 9&#xff0c;关于其工程目录结构说法正确的是&#xff1f;&#xff08;C&#xff09;…

class064 Dijkstra算法、分层图最短路【算法】

class064 Dijkstra算法、分层图最短路【算法】 算法讲解064【必备】Dijkstra算法、分层图最短路 code1 743. 网络延迟时间 // Dijkstra算法模版&#xff08;Leetcode&#xff09; // 网络延迟时间 // 有 n 个网络节点&#xff0c;标记为 1 到 n // 给你一个列表 times&…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它…

京东数据运营(京东API接口):10月投影仪店铺数据分析

鲸参谋监测的京东平台10月份投影仪市场销售数据已出炉&#xff01; 10月份&#xff0c;环同比来看&#xff0c;投影仪市场销售均上涨。鲸参谋数据显示&#xff0c;今年10月&#xff0c;京东平台投影仪的销量为16万&#xff0c;环比增长约22%&#xff0c;同比增长约8%&#xff1…