重温javascript --(一)值的介绍

值的介绍

一、 值类型:

  1. 原始值 stack栈: 遵循后进先出原则,中主要存放一些基本类型的变量和对象的引用。如:Number String Boolean undefined null symbol BigInt

    栈内不可修改值,内存满才会实现二次值覆盖

  2. 引用值 heap堆:用于复杂数据类型(引用类型)分配空间。 如:array object function ...date RegExp

    引用值在堆内存中,栈内存中存储的是堆内存的引用

  3. 图示:
    在这里插入图片描述

  4. 思考题:

    • 题:
      var a = {},var b = {},为什么 a===b 为 false
    • 解:
      1. 声明ab的时候,值{}依次在堆里创建了空间,并分别给ab暴露了一个指针路径
      2. ===比较的是ab的指针路径,虽然ab都为{},但是路径不一样,所以a===bfalse

二、运算符

顺序: 计算从左向右,赋值从右往左

  1. 算术运算符
    +:加法
    -:减法
    *:乘法
    /:除法
    %:取模(求余数)
    ++:递增
    --:递减
  2. 比较运算符
    ==:等于(类型转换后比较)
    ===:恒等(值和类型都相同)
    !=:不等于(类型转换后比较)
    !==:不恒等(值或类型不同)
    >:大于
    <:小于
    >=:大于或等于
    <=:小于或等于
    in:检查对象是否包含某个属性
    instanceof:检查对象是否是某个构造函数的实例
  3. 赋值运算符
    =:赋值
    +=:加等于
    -=:减等于
    *=:乘等于
    /=:除等于
  4. 逻辑运算符
    &&:逻辑与(and
    ||:逻辑或(or
    !:逻辑非(not):转成布尔值并取反
     data && fun() // `data`存在 执行`fun()`
     data || fun() // `data`或者`fun()`为`true`
     !'a' // false
     !''   // true
    
  5. 条件(三元)运算符
    ? ::条件(三元)运算符
    var a = 'a'
    var b = !!a ?  a : 'b'  // b = a   : 如果a是真的,则取a,否则取'b'
    
  6. 类型运算符
    • typeof:返回变量的类型:返回值为字符串类型, 全部小写

      typeof null返回结果为object,早期null 被视为一个特殊的对象,充当占位符

      简单封装一个typeof工具类:

      function getType(par) {
        var obj = {
          '[Object Object]': 'object',
          '[Object Array]': 'array',
          '[Object Number]': 'object - number',
          '[Object Boolean]': 'object - boolean',
          '[Object String]': 'object - string',
        }
        if (par === 'null') {
          return 'null';
        } else if (typeof (par) === 'object') {
          var str = Object.prototype.toString.call(par);
          return obj[str];
        } else {
          return typeof (par)
        }
      }
      
      • Object.prototype.toStringJavaScript 中一个非常重要的方法,它返回表示该对象的具体类型的字符串
      • call 方法主要用途是改变函数执行时的上下文(即 this 的指向)
    • delete:删除对象的属性

      var 定义的变量,delete 无法删除

      1. JavaScript 中,没有直接的方法可以“删除”一个作用域内的变量。一旦变量被声明,它就会一直存在,直到作用域结束或程序结束
      2. 你可以将变量的值设置为undefined 或其他默认值,以此来“清空”该变量
    • void:计算表达式并返回undefined
      <a href="javascript:void(0);">点击这里不会做任何事情</a>

  7. 其他运算符
    • ,逗号运算符:用于分隔多个表达式,并返回最后一个表达式的值。
      var a = (1 - 1, 1 + 1); // 值为: 2
    • ...:扩展运算符,用于数组或对象的展开

这里不介绍位运算符

三、 练习

  1. 题:// 一、交换a和b的值:
    var a = 1;
    var b = 2;
    
  • 解法1:借用中间变量
    var c = b; // c = 2
    b = a; // b = 1;
    a = c; // a = 2
    
  • 解法2:求和
    a = a + b;
    b = a - b; // b= 1
    a = a - b; // a= 2
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/566890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C盘满了如何清理

1.更改位置 &#xff08;1&#xff09;找到要更改的用户 &#xff08;2&#xff09;找到要更改的部分&#xff0c;右键点击“属性” &#xff08;3&#xff09;选择“位置”——“移动”——选择要移动的盘及地方 点击“确定”——“是”&#xff0c;等待迁移完成

STL_vector源码剖析

STL vector STL2.91源码地址: https://github.com/lewischeng-ms/sgi-stl 侯捷老师用的是 2.91,不同版本的STL差异很大&#xff0c;靠后版本的STL用了太多typedef以及继承关系&#xff0c;导致可读性很差。 本文参考博客: https://blog.csdn.net/weixin_45389639/article/detai…

Docker NetWork (网络)

Docker 为什么需要网络管理 容器的网络默认与宿主机及其他容器都是相互隔离的&#xff0c;但同时我们也要考虑下面的一些问题&#xff0c; 比如 多个容器之间是如何通信的容器和宿主机是如何通信的容器和外界主机是如何通信的容器中要运行一些网络应用(如 nginx、web 应用、数…

【Linux系统编程】第七弹---权限管理操作(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、修改文件权限的做法(一) 2、有无权限的表现 总结 上一弹我们讲解了Linux权限概念相关的知识&#xff0c;但是我们只知道有…

设计模式学习笔记 - 开源实战四(中):剖析Spring框架中用来支持扩展的设计模式

概述 上篇文章&#xff0c;学习了 Spring 框架背后蕴含的设计思想&#xff0c;比如约定优于配置、低侵入松耦合、模块化轻量级等等。这些设计思想可以借鉴到其他框架开发中&#xff0c;在大的设计层面提高框架的代码质量。 除了上篇文章降到的设计思想&#xff0c;实际上&…

yolov8 裁剪检测结果

yolov8 裁剪检测结果 1. 基础2. 图片批量裁剪2.1 检测裁剪2.2 分割裁剪 3. 视频裁剪3.1 检测裁剪3.2 分割裁剪3.3 实时裁剪 4. 源码 1. 基础 本项目是在 WindowsYOLOV8环境配置 的基础上实现的 思路&#xff1a;将检测得到的物体边框提取&#xff0c;然后边框裁剪原图&#xf…

Python网络数据抓取(3):Requests

引言 在这一部分&#xff0c;我们将探讨Python的requests库&#xff0c;并且利用这个库来进行网页数据抓取。那么&#xff0c;我们为何需要这个库&#xff0c;以及怎样利用它呢&#xff1f; requests库是广受大家欢迎的一个库&#xff0c;它是下载次数最多的。这个库使我们能够…

直流负载在新能源领域的作用有哪些

直流负载在新能源领域的作用主要体现在以下几个方面&#xff1a; 新能源如太阳能、风能等&#xff0c;其发电过程中产生的电能为直流电。传统的电力系统主要采用交流电&#xff0c;因此在新能源并网时需要进行逆变器转换。然而&#xff0c;逆变器在转换过程中会存在一定的能量损…

设计模式-模板模式

模板设计模式 定义 在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单来说,有多个子类共有的方法,且逻辑相同,可以考虑作为模板方法。 模板的价值就在于骨架的定义,骨架内部将问题…

手写基于redis-lua脚本实现分布式id生成器starter

手写基于redis-lua脚本实现分布式id生成器starter 文章目录 1.前言2.实现思路2.1lua脚本的特性2.2 了解三个redis命令2.3集群自增序列实现原理2.4三种实现思路2.4.1 实现思路一2.4.2 实现思路二2.4.3实现思路三 3.项目工程目录4.源码仓库地址5.依赖及使用配置5.1依赖5.2nacos配…

科研基础与工具(论文写作)

免责申明&#xff1a; 本文内容只是学习笔记&#xff0c;不代表个人观点&#xff0c;希望各位看官自行甄别 参考文献 科研基础与工具&#xff08;YouTube&#xff09; 学术写作句型 Academic Phrase bank 曼彻斯特大学维护的一个网站 写论文的时候&#xff0c;不不知道怎么…

机器学习基础-PR\ROC\F1

1 1 、ROC曲线2 、PC曲线3、F14 、正负样本不均衡时怎么选择 1 、ROC曲线 就是TPR 与FPR 曲线 如图&#xff0c;就是根据阈值不同&#xff0c;我们看我们的二分类器的结果&#xff0c;根据结果算出TPR(真阳性)与FPR(假阳性)&#xff0c;最好的情况就是如图&#xff0c;我们的…

2024年三支一扶报名照上传要求很严格

2024年三支一扶报名照上传要求很严格

2024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了&#xff0c;搞得石头哥不得不紧急的再新出一版&#xff0c;教大家开通最新版的cms网页管理后台 一&#xff0c;技术选型和技术点 1&#xff0c;小程序前端 wxml css JavaScript MINA原生小程序框架 2&#xff0c;数据库 云开发 云数据库 云…

合合信息Embedding模型:引领中文文本向量化技术新高度

目录 &#x1f345;前言&#x1f353;赛事含金量&#x1f353;Embedding技术简介&#x1f353;Embedding在大模型中的价值&#x1f353;合合信息Embedding模型特点及优势&#x1f353;合合信息Embedding模型测试&#x1f353;技术突破&#x1f353;公司介绍 &#x1f345;总结 …

360在线翻译免费API

一、需求&#xff1a; 根据360在线翻译&#xff0c;获取免费API&#xff0c;并调用 二、主要步骤 1、请求 url url "https://fanyi.so.com/index/search" 2、传入信息 datas {"query": "桌子"} 3、请求头 headers {"pro": &…

Axure糖尿病健康管理APP原型 (知识科普/病友社区/远程医生会诊/购物商城/血糖监测/饮食监测)

作品概况 页面数量&#xff1a;共 50 页 源文件格式&#xff1a;rp格式&#xff0c;兼容 Axure RP 9/10&#xff0c;非程序软件无源代码 应用领域&#xff1a;医疗健康、慢病管理、糖尿病管理 作品特色 本作品为Axure糖尿病健康管理APP端原型图&#xff0c;设计规范内容清晰…

第54篇:创建Platform Designer系统

Q&#xff1a;本期我们开始使用Platform Designer工具创建带IP核的FPGA自定义硬件系统。 A&#xff1a;Platform Designer是集成在Quartus软件里的系统设计工具&#xff0c;名称随着Quartus的不断更新曾命名为SOPC Builder和Qsys。 使用Platform Designer可以添加Quartus已有自…

Aigtek高压放大器在电活性聚合物中的作用是什么

电活性聚合物是一类特殊类型的聚合物&#xff0c;其性质和形状可以受到外部电场的调控。这些聚合物在多个领域中有着广泛的应用&#xff0c;包括人工肌肉、电动液体透镜、柔性电子、生物医学传感器等。高压放大器在电活性聚合物的研究和应用中扮演着关键的角色&#xff0c;下面…

【Qt 学习笔记】Qt常用控件 | 显示类控件 | Calendar Widget的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件 | Calendar Widget的使用及说明 文章编号&am…