当前位置: 首页 > news >正文

20230228----重返学习-数组-引用数据类型的转换-基础调试用方法-对象检测-各数据转布尔值及相等运算符-条件语句-循环语句

day-017-seventeen-20230228-数组-引用数据类型的转换-基础调试用方法-对象检测-各数据转布尔值及相等运算符-条件语句-循环语句

数组

  • 字面量表示法

    [数组成员0,数组成员1,数组成员2]
    
  • 用中括号语法来取值

    var ary = [5,6,7]
    console.log("ary[0]--->", ary[0])
    
  • 数组构成

    //下标/索引 0 1 2
    var ary = [1,2,3]//{0:1,1:2,2:3,length:3,[[Prototype]]: Array}
    console.log("ary[0]--->", ary[0])
    
    1. 数组成员 123
    2. length: 数组长度。
      - ary.length-1 表示数组ary最后一项的索引
      - ary[ary.length-1] 表示数组ary最后一项

引用数据类型的转换

  • 对象数组转为布尔值
    • 依旧都为true
    • Boolean({})//true
    • Boolean([])//true
  • 对象转为字符串
    • 都为'[object Object]'
    • String({})//'[object Object]'
    • String({a:1})//'[object Object]'
    • String(String({a:1,b:2}))//'[object Object]'
  • 数组转为字符串
    • 数组里面的每一项都转为字符串,如果有两项及两项以上则用逗号,拼接起来
    • String([])//''
    • String([1])//'1'
    • String([1,2])//'1,2'
    • String([1,true])//'1,true'
    • String([1,null])//'1,'
      • 因为(null).toString()//会报错,所以null转为空字符串了之后与其它元素拼接。
    • String([1,undefined])//'1,'
      • 因为(undefined).toString()//会报错,所以undefined转为空字符串了之后与其它元素拼接。
  • 对象转为数字
    • 都为NaN
      • 先转为字符串,之后用Number()来转化。
        • Number({})//NaN
        • Number({0:1})//NaN
        • Number({a:1})//NaN
  • 数组转为数字
    • 先转为字符串,之后用Number()来转化。
    • Number([])//0
    • Number([1])//1
    • Number([1,2])//NaN

基础调试

  1. console.log()

    • 控制台上打印出多个内容。
      • 控制台想要看见,一般就用这个console.log()
  2. console.dir()

    • 控制台上输出一个对象或者一个值的详细信息
      • 一般用在函数上。
      • console.dir()不可以一次性输出多个值。
  3. alert()

    • 浏览器窗口中弹出一个提示框提示框中输出指定的信息。
      • 只传一个参数,并且里面的参数都会通过toString()转成字符串并展示。
  4. confirm()

    • 浏览器窗口中弹出一个提示框,允许用户选择,并返回一个布尔值
      • 只传一个参数,并且里面的参数都会通过toString()转成字符串并展示。
      • 点击确定,结果是true
      • 点击取消,结果是false
  5. prompt()

    • 浏览器窗口中弹出一个提示框,允许用户输入字符串。
      • 只传一个参数,并且里面的参数都会通过toString()转成字符串并展示。
      • 点击取消,必定得到null
      • 点击确定,都是input输入框里的字符串值

对象检测

  • typeof
    1. 不会细分对象
    2. null为什么也是object
      • typeof会把变量转为二进制000开头就会识别为对象null64位都是0
    3. 结果是字符串,即单引号''包着数据类型
  • instanceof
  • constructor
  • Object.prototype.toString.call()

转布尔值

  • !!变量相当于Boolean(变量)
    !!100;//true
    !!'';//false
    !![];//true

  • !先把后面的值转为字符串,再取反。
    !''//true

  • 加号+的计算规则

    • 数字+数字,正常加。

    • 数字+字符串,直接拼接。

    • 数字+非字符串的基本数据类型,其它类型转number类型再加。

    • 数字+对象对象字符串,拼串。

    • +变量,一个加号强行转number类型

    • 示例:

      • 1+{}//'1[object Object]'
      • {}+1//1左边花括号{}当成了空代码块,实际上就是+11
      • ({})+1//'[object Object]1'左边花括号{}变成了对象{},之后对象{}转成字符串'[object Object]'
      • +1//1 一个加号强行转number类型
      • +true//1 一个加号强行转number类型
      • +{}//NaN 一个加号强行转number类型对象{}转成字符串'[object Object]'字符串'[object Object]'转成NaN
      • +[]//0 一个加号强行转number类型,,空数组[]转成空字符串''空字符串''转成0
      • +[1,2]//NaN 一个加号强行转number类型数组[1,2]转成字符串'1,2'字符串'1,2'转成NaN

JavaScript运行机制

浏览器开辟两块内存

  • Stack栈
    1. 存储基本数据类型
    2. js代码执行
  • Heap堆
    • 存储引用数据类型

赋值三步曲

  1. 创建值
  2. 创建变量
  3. 赋值(连接起来)
  • 原始值类型操作的是引用数据类型操作的是空间地址

条件语句

if语句

括号里的条件最终会是布尔值,如果是true,就会进入并执行。
else里的语句if语句else if语句都不执行的情况下,就会自动执行。
同一语句团里,如果if语句else if语句有一个判断为true,那么就只执行这一语句块余下语句块都会被跳过。

  if(怎么样){//code...}
  if(1>0){console.log("if()里条件对了,执行if语句");//"if()里条件对了,执行if语句"}
  if(4>5){console.log('if()里条件对了,只执行if语句')}else{console.log('if()里条件不对,else语句执行')//'if()里条件不对,else语句执行'}
  //进且必定只进一个。if(1>0){console.log("if()里条件对了,只执行if语句")//"if()里条件对了,只执行if语句"}else if(3>2){console.log("if()里条件错了,else if()里条件对了,执行else if语句")}else{console.log("if()里条件错了,else if()里条件错了,执行else语句")}
  var num = 1if(num){console.log("if()里条件对了,执行if语句");}

switch多向分支

一个变量在不同值情况下的不同操作,我们可以改写为switch case判断

var num = 100
switch (num) {case 50:console.log("case 50--");break;case 100:console.log("case 100--");break;case 150:console.log("case 150--");break;case 200:console.log("case 200--");break;default //=>等价于else,而且最后一个判断结束无需设置breakconsole.log("default语句");
}
  • 变量传进来的值case的值必须全等才会执行
  • 如果case语句执行了,但没遇到break,会一直跳过后方的case值直到后面case语句中有break

==的规则

  1. 原始值类型长得一模一样就相等为true
  2. 对象必须空间地址相同相等为true
  3. 不同数据类型之间,除了对象字符串要转字符串进行比较,其他不同类型都是转number再进行比较。
  4. null==undefined相等为true
  5. nullundefined其他值永远不等
  6. NaN六亲不认,包括自己。var a=NaN;var b=a;console.log(a==b);//false

循环语句

  • while(){}

    • while循环先判断后循环

    • 条件为true,就执行

    • 一定要在循环体改循环条件依赖的变量,否则将会一直循环下去。

      let fang1 = 0;
      while (fang1 < 0) {console.log(fang1, 1);//不执行fang1++;//在`循环体`内`改循环条件依赖的变量`;
      }
      
  • do{}while()

    • do–while循环先循环后判断

    • 不管三七二十一先执行一遍

    • 一定要在循环体改循环条件依赖的变量,否则将会一直循环下去。

      let fang2 = 0;
      do {console.log(fang2, 2);//执行一次fang2++;//在`循环体`内`改循环条件依赖的变量`;
      } while (fang2 < 0);
      
  • for(){}

    for (循环变量; 循环条件; 循环变量变化) {//循环体;
    }
    
    for (var i = 0; i < 3; i++) {console.log(111);console.log(i);//0 1 2
    }
    console.log(i);// 3
    // @1 var i=0
    // @2 i<3 执行 console.log(111);
    // @3 i++  i=1
    // @4 i<3 执行 console.log(111);
    // @5 i++  i=2
    // @6 i<3 执行 console.log(111);
    // @7 i++  i=3
    // @8 i<3 不满足  整个for循环结束
    

进阶参考

相关文章:

20230228----重返学习-数组-引用数据类型的转换-基础调试用方法-对象检测-各数据转布尔值及相等运算符-条件语句-循环语句

day-017-seventeen-20230228-数组-引用数据类型的转换-基础调试用方法-对象检测-各数据转布尔值及相等运算符-条件语句-循环语句 数组 字面量表示法 [数组成员0,数组成员1,数组成员2]用中括号语法来取值 var ary [5,6,7] console.log("ary[0]--->", ary[0])数组…...

apscheduler 定时任务框架

Apscheduler 介绍 四大组件 triggers&#xff1a;触发器&#xff0c;用于设定触发任务的条件job stores&#xff1a;作业存储器&#xff0c;用于存放任务&#xff0c;可以存放在数据库或内存&#xff0c;默认内存executors&#xff1a;执行器&#xff0c;用于执行任务&#x…...

Softing OPC Tunnel——绕过DCOM配置实现OPC Classic广域网通信

一 摘要 Softing OPC Tunnel是dataFEED OPC Suite的一个组件&#xff0c;可避免跨设备OPC Classic通信中出现的DCOM配置问题&#xff0c;同时可保证跨网络数据交换的高性能和可靠性。OPC Tunnel内部集成的存储转发功能&#xff0c;可在连接中断时缓存数据&#xff0c;并在重新…...

Java的运算操作

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【JavaSE_primary】 文章目录算术运算符增量运算符注意自增自减运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非&#xff01;…...

基于OBD系统的量产车评估测试(PVE)

在轻型汽车污染物排放限值及测量方法&#xff08;中国第六阶段&#xff09;中&#xff0c;除了对汽车尾气排放等制定了更为严格的限制之外&#xff0c;也在OBD系统认证项目中增加了新的要求——量产车评估&#xff08;Production Vehicle Evaluation&#xff09;测试。该测试由…...

【蓝桥杯集训10】Tire树 字典树 最大异或对专题(3 / 3)

目录 字典树模板 1、插入操作 2、查询操作 143. 最大异或对 - trie 二进制 3485. 最大异或和 - 前缀和Trie滑动窗口 字典树模板 活动 - AcWing 字典树&#xff1a;高效存储和查找字符串集合的数据结构 son[节点1地址][值]节点2地址 —— 节点1的子节点为节点2cnt[节点地…...

docker部署zabbix6.2.7+grafana

目录 1、下载docker 2、下载相关镜像文件 3、创建一个供zabbix系统使用的网络环境 4、创建一个供mysql数据库存放文件的目录 5、启动mysql容器 6、为zabbix-server创建一个持久卷 7、启动zabbix-server容器 8、创建语言存放目录 9、启动zabbix-web容器 10、启动zabbix…...

【Java开发】JUC基础 04:Synchronized、死锁、Lock锁

1 概念介绍并发&#xff1a;同一个对象被多个线程同时操作&#x1f4cc; 线程同步现实生活中&#xff0c;我们会遇到“同一个资源&#xff0c;多个人都想使用”的问题&#xff0c;比如&#xff0c;食堂排队打饭,每个人都想吃饭&#xff0c;最天然的解决办法就是&#xff0c;排队…...

离散数学---期末复习知识点

一、 数理逻辑 [复习知识点] 1、命题与联结词&#xff08;否定&#xffe2;、析取∨、合取∧、蕴涵→、等价↔&#xff09;&#xff0c;命题(非真既假的陈述句),复合命题(由简单命题通过联结词联结而成的命题) 2、命题公式与赋值&#xff08;成真、成假&#xff09;&#x…...

在线安装ESP32和ESP8266 Arduino开发环境

esp32和esp8266都是乐鑫科技开发的单片机产品&#xff0c;esp8266价格便宜开发板只需要十多块钱就可以买到&#xff0c;而esp32是esp8266的升级版本&#xff0c;比esp8266的功能和性能更强大&#xff0c;开发板价格大约二十多元就可以买到。 使用Arduino开发esp32和esp8266需要…...

【Python实战】激情澎湃,2023极品劲爆舞曲震撼全场,爬虫一键采集DJ大串烧,一曲醉人女声DJ舞曲,人人都听醉~(排行榜采集,妙啊~)

导语 哈喽&#xff01;大家好。我是木木子吖~今天给大家带来爬虫的内容哈。 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 今天教大家Python爬虫实战一键采集大家喜欢的DJ舞曲哦&#xff01; …...

[SSD综述 1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?

版权声明&#xff1a;付费作品&#xff0c;未经许可&#xff0c;不可转载前言SSD &#xff08;Solid State Drive&#xff09;&#xff0c;即固态硬盘&#xff0c;通常是一种以半导体闪存&#xff08;NAND Flash&#xff09;作为介质的存储设备。SSD 以半导体作为介质存储数据&…...

SAP Insurance Analyzer

SAP Insurance Analyzer 是一款用于保险公司财务和风险管理的软件。SAP Insurance analyzer 支持基于 IFRS 17 或 Solvency II 的保险合同估值和计算要求。SAP Insurance Analyzer 于 2013 年 5 月推出&#xff0c;为源数据和结果数据集成了一个预配置的保险数据模型。 源数据…...

自动化测试 ——自动卸载软件

在平常的测试工作中&#xff0c;经常要安装软件&#xff0c;卸载软件, 即繁琐又累。 安装和卸载完全可以做成自动化。 安装软件我们可以通过自动化框架&#xff0c;自动点击Next,来自动安装。 卸载软件我们可以通过msiexec命令行工具自动化卸载软件 用msiexec 命令来卸载软件 …...

05 封装

在对 context 的封装中&#xff0c;我们只是将 request、response 结构直接放入 context 结构体中&#xff0c;对应的方法并没有很好的封装。 函数封装并不是一件很简单、很随意的事情。相反&#xff0c;如何封装出易用、可读性高的函数是非常需要精心考量的&#xff0c;框架中…...

clean

clean code 记得以前写过这题&#xff0c;写的乱七八糟&#xff0c;分析来分析去。 后悔应该早点写代码&#xff0c;leetcode大一就该刷了。 https://leetcode.cn/problems/plus-one/submissions/ class Solution { public:vector<int> plusOne(vector<int>&…...

佛科院计算机软件技术基础——线性表

一、基础知识了解&#xff1a;结构体的理解&#xff1a;我们知道整型是由1位符号位和15位数值位组成&#xff0c;而就可以把结构体理解为我们定义的数据类型&#xff0c;如&#xff1a;typedef struct {int data[2]; //存储顺序表中的元素int len; …...

linux下终端操作mysql数据库

目录 一&#xff0e;检查mysql是否安装 1. 查看文件安装路径 2. 查询运行文件所在路径(文件夹地址) 二&#xff0e;登录mysql 三&#xff0e;列出mysql全部用户 四&#xff0e;常用指令 &#xff11;&#xff0e;查看全部数据库 &#xff12;&#xff0e;选择数据库 …...

MySQL参数优化之thread_cache_size

1.thread_cache_size简介 每建立一个连接&#xff0c;都需要一个线程来与之匹配&#xff0c;此参数用来缓存空闲的线程&#xff0c;以至不被销毁&#xff0c;如果线程缓存中有空闲线程&#xff0c;这时候如果建立新连接&#xff0c;MYSQL就会很快的响应连接请求。 show statu…...

gRPC服务健康检查(二):gRPC健康检查协议详解

gRPC健康检查协议健康检查用于检测服务端能否正常处理rpc请求&#xff0c;客户端对服务端的健康检查可以点对点进行&#xff0c;也可以通过某些控制系统&#xff08;如负载平衡&#xff09;进行。客户端可以根据服务端返回的状态执行对应的策略。因为GRPC服务可以用于简单的客户…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...