当前位置: 首页 > 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服务可以用于简单的客户…...

Android系统10 RK3399 init进程启动(四十七) Android init 进程整体代码逻辑简述

配套系列教学视频链接&#xff1a;安卓系列教程之ROM系统开发-百问100ask说明系统&#xff1a;Android10.0设备&#xff1a; FireFly RK3399 &#xff08;ROC-RK3399-PC-PLUS&#xff09;前言本文简单描述一下android init祖先进程启动的基本执行流程&#xff0c;让大家有一个整…...

CSDN 编程竞赛三十二期题解

竞赛总览 CSDN 编程竞赛三十二期&#xff1a;比赛详情 (csdn.net) 竞赛题解 题目1、传奇霸业 传奇霸业&#xff0c;是兄弟就来干。小春&#xff08;HP为a&#xff09;遇到了一只黄金哥布林&#xff08;HP为x&#xff09;。小春每次能对哥布林造成b点伤害&#xff0c;哥布林…...

Kubernetes 中的 Pod Hook

Pod Hook 我们知道Pod是Kubernetes集群中的最小单元&#xff0c;而 Pod 是有容器组组成的&#xff0c;所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。 实际上 Kubernetes 为我们的容器提供了生命周期钩子的&#xff0c;就是我们说的Pod Hook&#xff0c…...

Linux操作系统安装MySQL(rpm安装)

Linux操作系统安装MySQL&#xff08;rpm安装&#xff09;1 背景2 环境说明3 准备工作3.1 端口查看3.2 检查安装3.3 创建MySQL用户和组4 MySQL安装4.1 下载MySQL4.2 解压安装包4.3 安装MySQL4.4 初始化MySQL4.5 启动MySQL4.6 设置MySQL初始密码4.6.1 查看数据库初始密码4.6.2 更…...

MySQL高级第二讲

目录 二、MySQL高级02 2.1 触发器 2.1.1 触发器介绍 2.1.2 创建触发器 2.2 MySQL的体系结构 2.3 存储引擎 2.3.1 存储引擎概述 2.3.2 各种存储引擎特性 2.3.3 InnoDB 2.3.4 MyISAM 2.3.5 MEMORY 2.3.6 MERGE 2.3.7 存储引擎的选择 2.4 优化sql 2.4.1 查看sql执行…...

凸优化专题1

多变量函数的求导与求梯度/矩阵求导 1. 导数 定义: 设f:Rn→Rm,且x∈intdomf,则f在点x的导数(或称Jacobian)记为矩阵Df(x)∈Rmnf:\R^n \rightarrow \R^m, 且x\in \mathbf{int}\ \mathbf{dom} f, 则f 在点x的导\\数(或称Jacobian)记为矩阵 Df(x) \in \R^{m\times n}f:Rn→Rm,且…...

【蓝桥杯每日一题】递推算法

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; 蓝桥杯 &#x1f319;我与杀戮之中绽放&#xff0c;亦如黎明的花…...

Unity性能优化: 性能优化之内存篇

前言 本文和传统的内存优化不一样&#xff0c;不是讲如何降低内存占用&#xff0c;而是讲编程开发中要注意的内存问题以及一些内存技术的演变与原理。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀 1: Application进程…...

华为OD机试题,用 Java 解【内存资源分配】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...

微服务之Nacos注册与配置

&#x1f3e0;个人主页&#xff1a;阿杰的博客 &#x1f4aa;个人简介&#xff1a;大家好&#xff0c;我是阿杰&#xff0c;一个正在努力让自己变得更好的男人&#x1f468; 目前状况&#x1f389;&#xff1a;24届毕业生&#xff0c;奋斗在找实习的路上&#x1f31f; &#x1…...

部门网站建设/世界最新新闻

算法10---二叉搜索树存在重复数据插入的实现 当用TREE-INSERT将n个具有相同关键字的数据项插入到一棵初始为空的二叉查找树中时&#xff0c;该算法的渐近性能如何&#xff1f;我们可以对TREE-INSERT做一些改进&#xff0c;即在第5行的前面测试key[z] key[x]&#xff0c;在第11…...

网站蜘蛛爬行统计/网络工程师

1、文件锁 如果对该表的更新或插入的操作&#xff0c;都会经过一个统一的文件&#xff0c;这种方式是可以解决的多进程并发的问题&#xff1b; 实现方式如下&#xff1a; public static function cbInventoryReserve() {$LOCK_FILE_PATH $_SERVER[DOCUMENT_ROOT]."wmsinv…...

咨询手机网站建设平台/seo怎么做排名

一、问题描述 当我们的IDEA升级到2020.2的版本时 会发现创建web、spring等项目时和以前的版本有差别 以前版本 2020.2版本 这时候我们该如何新建web项目呢&#xff1f; 二、问题解决 1.创建一个普通的Java项目 2.右键项目名——> Add Framework Support… 3.勾选We…...

深圳自适应网站开发公司/创意营销策划方案

2017年杭州师范大学程序设计基础复试仿真模拟三套题 (-)说明&#xff1a;本资料为2017复试学员内部使用&#xff0c;严格按照2017复试常考题型及难度全真模拟 测。_、选择题1 ,以下选项中表示一个合法的常量是 (说明&#xff1a;符号表示空格) ( )。A. 999B. OXabC. 123E0.2D. …...

保定网站建设价格/关键词优化排名查询

薛之谦《木偶人》官方版MV...

太原网站建设报价/百度快速seo

让一个系统能够变得更加坚固的最好办法是将系统独立出来。请参考你公司的安全管理策略和相关人员来找到你公司应该采用何种安全策略。这里有很多事情需要我们考虑&#xff0c;例如考虑如何安装我们的操作系统&#xff0c;应用服务器&#xff0c;数据库服务器&#xff0c;网络&a…...