web前端 -- javascript(02) -- 数据类型转换、常见运算符及顺序、选择和循环结构

news2024/12/23 23:24:10

数据类型转换

(1)自动类型转换:

特点:低类型自动向高类型进行转换

boolean < int < float < string

PS:

  1. boolean类型如果与数值型进行运算:true = 1;false = 0
  2. 其他基本数据类型与字符串拼接时,都会转为字符串拼接


(2)强制类型转换

特点:高类型向低类型进行转换

paseInt();        // 字符串 -> 整数

paseFloat();        // 字符串 -> 浮点数

(3)示例:js类型转换

let num1 = window.prompt("请输入第一个整数","0"); // 10
let num2 = window.prompt("请输入第二个整数","0"); //20
// let num2 = paseInt(window.prompt("请输入第二个整数","0")); //20 --- 一步到位

// prompt接收的类型为字符串类型
alert(num1 + "+" + num2 + "=" + (num1 + num2))  //10 + 20 = 1020
alert(`${num1} + ${num2} = ${num1 + num2}`)  //10 + 20 = 1020

// 接收的类型为字符串类型,做四则运算,需转为数字
num1 = parseInt(num1) // 强制类型转换
num2 = parseInt(num2)

alert(typeof num1); // number

let num = "1234567"
parseInt(num)  // 1234567
parseInt("dashabi") // NaN(not a number)
parseInt("1234asdfg") //1234asdfg(尽可能从第一个位置开始去转换能转换的)
parseInt("a1234asdfg")  // NaN

常见运算符

(1) 算数运算符

  • +
  • -
  • *
  • /
  • %
  • **

(2) 关系运算符(比较运算符)

  • >
  • <
  • >=
  • <=
  • ==        //  仅比较值,不比较类型
  • ===        //  类型和值都回进行比较

(3) 逻辑运算符

  • &&(与)        //  并且(所有成立则成立)
  • ||(或)        //  或者(一个成立则成立)
  • !(非)        //  取反

假:0;false;"";NaN;null;undefined


面试:

<1> && 与 & 的区别:

&&:逻辑与。a&&b就是当且仅当两个操作数均为 true时,其结果才为 true,只要有一个为false,a&&b就为false。

&:按位与。a&b是把a和b都转换成二进制数然后再进行与的运算

<2> || 与 | 的区别:

||:逻辑或。先判断条件1,若条件1可以决定结果,则不会执行条件2;

|:按位或。先判断条件1,不论条件1是否可以决定结果,都回执行条件2


(4) 自加自减运算符

  • ++        //  对变量加1
  • --        //  对变量减1


PS:++()和--()优先级较低,比赋值符(=)优先级别还低;()++和()-- 优先级别较高,仅次于括号()

let i = 10
let a = i++    // a = 10 ; i = 11
let b = ++i    // b = 12 ; i = 12
let c = i--    // c = 12 ; i = 11
let d = --i    // a = 10 ; i = 10

(5)赋值运算符

  • =        //  将等号右侧的结果赋值给左侧的变量
  • +=        //  a += 10   -->  a = a + 10
  • -=        //  a -= 10   -->  a = a - 10
  • *=
  • /=
  • %=
  • **=

(6)三目运算符(简化版 if else 结构)

变量 = 表达式 ? 值1 : 值2 ;

if  (表达式){

        变量 = 值1;

}else{

        变量 = 值2;

}

顺序、选择和循环结构

(多条语句之间的顺序)

(1)顺序执行

(总体来说,代码都是从左到右,自上而下执行的)

(2)选择结构

(可能需要根据不同的情况,做出不一样的流程选择)

<1> 单分支

if(条件){

        //  如果条件为真,则立刻执行{}中代码

}

<2> 双分支

if(条件){

        //  如果条件为真,则执行 if 中代码

}else{

        //  如果条件为假,则执行 else 中代码

}

<3> 多分支

【1】可使用单双分支嵌套实现(层数太多则不建议)

let week = 星期数
if(week == 1){
    星期一
}else{
    if(week == 2){
        星期二
    }else{
        if(week == 3){
            星期三
        }else{
            if...
        }
    }
}

【2】使用 if  else  if  语句结构

if (condition1) {
    // 符合条件1
} else if (condition2) {
    // 符合条件2
} else if (condition3) {
    // 符合条件3
}
......
else {
    // 前面所有条件不满足的剩余条件
}

【3】switch语法

switch( 变量 ){
    case 常量1:
        执行代码1;
        break;
    case 常量2:
        执行代码2;
        break;
    case 常量3:
        执行代码3;
        break;
    ......
    default:
        剩余条件
        break;
}

例:switch用法

let week = parseInt(prompt("请输入星期数:","1"));
switch(week){
    case 1:
        alert("周一上班");
        break;
    case 2:
        alert("周二白班");
        break;
    case 3:
        alert("周三夜班");
        break;
    case 4:
        alert("周四项目");
        break;
    case 5:
        alert("周五调休");
        break;
    case 6:
    case 7:
        alert("周末休息");
        break;
    default:
        alert("输入错误!");
        break;
}

<4> 例:js的顺序、选择结构

let a = parseInt(prompt("请输入您的年龄:"))

// 判断是否成年
if (age >= 18){
    alert("恭喜您成年了")
}else{
    alert("对不起,您还是小孩子")
}

// 判断星期
let week = prompt("请输入星期数:","1")
if(week == "1"){
    alert('今天星期一,猴子穿华益')
}else if(week == "2"){
    alert('今天星期二,猴子跑步')
}else if(week == "3"){
    alert('今天星期二,猴子爬山')
}else if(week == "4"){
    alert('今天星期二,猴子考试')
}else if(week == "5"){
    alert('今天星期二,猴子打老虎')
}else if(week == "6" || week == "7"){
    alert('今天星期二,猴子休息')
}else {
    alert('输入错误!')
}

(3)循环结构 --- 重复执行代码

<1> 存在3个基本循环

  • for 循环

for(定义变量;条件;变量进行变化){

        //  循环体,由一行或者多行代码组成

} 

break关键字:终止循环
continue关键字:跳过本次循环,进入下一次循环

例:for循环

// 在控制台输出0-9

for(let i = 0; i < 10; i++ ){
    console.log(i)
}

// 求1-100的和
// let sum = 0;
// for(let i = 0; i <= 100 ; i++ ){
//     sum += i;
// }
// alert(`1-100的和为:${sum}`);

for(let i = 0; i <= 100 ; i++ ){
    if(i == 50){
        break;  // 到49之后程序再未执行
    }
    console.log(i);
}
  • while 循环

while ( condition ) { 

        //  循环体

}

例:while循环

// 100!

let fact = 1;
let i = 1;
while(i <= 100){
    fact *= i;
    ++i;
}
alert("100的阶乘是${fact}")

  • do while 循环

do { 

        //  循环体

}while( condition );

let sum = 0;
let i = 1;
do{
    sum +=100;
    i +=2;
}while(i <= 100)
alert(`0-100内偶数的和${sum}`)

let sum1 = 0;
for (let i = 0;i <=100; i++){
    if(i % 2 != 0){
        sum += i;
    }
}
alert(`0-100内奇数的和${sum}`)

<2> 案例:打印九九乘法表

let res = " ";
for (let i = 1; i <= 9; i++){
    for (let j = 1; j <= i; j++){
        res +=`${i} x ${j} = ${i * j}\t`;
    }
    res += "\n";
}
alert(res)

console.log(res)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

whistle以及谷歌插件Proxy SwitchyOmega实现代理

whistle提供本地服务器&#xff0c;以及代理 Proxy SwitchyOmega拦截浏览器的网络请求&#xff0c;指向whistle服务 ip 为什么要用它们呢&#xff1f; 其实一开始使用的是mac的charles&#xff0c;但是出现了网页上传文件数据的时候会被篡改&#xff0c;也可能是我配置的原因…

声明式事务控制

声明式事务控制 编程式事务控制相关对象 PlatformTransactionManager PlatformTransactionManager接口是spring的事务管理器&#xff0c;它里面提供了常用的操作事务的方法 方法说明TransactionStatus getTransaction(TransactionDefaultion defination)获取事务的状态信息…

外贸跨境商城系统-后台采集-外贸跨境电商平台搭建

一、外贸跨境商城系统框架 欢迎名片交流 JAVA语言 后端: SpringBoot, Mysql8.0, Redis, Nginx 手机端&#xff1a;uniapp, H5, App打包 前端布局&#xff1a;H5端、PC电脑端、APP端、小程序端 后台&#xff1a;总后台管理、商家后台管理 二、外贸跨境商城基础功能架构…

Chrome浏览器的自动播放限制策略(原文)

客户&#xff1a;为什么明明我设为自动播放了&#xff0c;却无法自动播放&#xff1f;我&#xff1a;#$%^#~客户&#xff1a;为什么其他浏览器可以自动播放&#xff0c;Chrome浏览器不能自动播&#xff0c;您们产品有问题...我&#xff1a;^$&*^(*&^(*% 好吧&#xff…

【CesiumJS入门】(0)专栏介绍&项目搭建

前言 开了一个新的专栏&#xff0c;叫【CesiumJS入门】&#xff0c;因为自己也是初学者&#xff0c;所以专栏主要是记录自己学习CesiumJS的过程&#xff0c;如果还能给后来者带来一点参考那就真是太好了。 本项目的仓库地址&#xff1a;https://gitee.com/cswwww/cesium-tyro…

Python入门教程+项目实战-13.1节-集合基础概念

目录 13.1.1 理解集合类型 13.1.2 集合的类型名 13.1.3 集合的定义 13.1.4 在循环中遍历集合 13.1.5 集合的元素输出顺序 13.1.6 知识要点 13.1.7 系统学习python 13.1.1 理解集合类型 集合类型与字典类型非常接近&#xff0c;Python中的集合类型也是用{}符号括住的一个…

Zemax Lumerical | 二维光栅出瞳扩展系统优化(下)

简介 本文提出并演示了一种以二维光栅耦出的光瞳扩展&#xff08;EPE&#xff09;系统优化和公差分析的仿真方法。 在这个工作流程中&#xff0c;我们将使用3个软件进行不同的工作 &#xff0c;以实现优化系统的大目标。首先&#xff0c;我们使用 Lumerical 构建光栅模型并使用…

封装设计!抽象BasePage,提升WEB自动化测试用例质量和效率

目录 前言&#xff1a; 一、什么是抽象BasePage 二、BasePage中的属性和方法 三、BasePage中的代码实现 四、抽象Page对象 五、测试用例 六、总结 前言&#xff1a; 对于测试工程师来说&#xff0c;WEB自动化测试是非常重要的一部分。然而&#xff0c;WEB自动化测试的开…

软件测试实用案例上机报告一

文章目录 一、上机内容&#xff08;单元测试&#xff09;二、简单计算机测试1、题目2、编码&#xff08;源代码&#xff09;3、HTMLTestRunner生成可视化报告4、coverage查看覆盖情况 三、基本覆盖路径法测试1、题目2、编码&#xff08;源代码&#xff09;3、复读 &#x1f414…

【构造+数论+Tree】CF1627C

Problem - 1627C - Codeforces 题意&#xff1a; 给定一棵树的形态&#xff0c;让你给这棵树的边赋值&#xff0c;使得每对相邻的边的边权和都是质数 思路&#xff1a; 一开始模拟了一下样例&#xff0c;Sample3告诉我们如果有三条边相邻就是无解&#xff08;可以猜的结论&a…

详解.NET IL代码

IL是什么&#xff1f; Intermediate Language &#xff08;IL&#xff09;微软中间语言 C#代码编译过程&#xff1f; C#源代码通过LC转为IL代码&#xff0c;IL主要包含一些元数据和中间语言指令&#xff1b; JIT编译器把IL代码转为机器识别的机器代码。如下图 语言编译器&am…

让代码创造童话,共建快乐世界

六一儿童节即将到来&#xff0c;小朋友们开心的笑容弥漫了整个城市。对于大多数孩子来说&#xff0c;六一儿童节意味着玩具和糖果。但尽管这些看起来微不足道&#xff0c;却是他们幼小而纯真心灵的欢笑。而心怀童真的大人们则用他们手中的代码&#xff0c;创造出一个快乐而幸福…

CI858K01 3BSE018135R1 简化数据的编译

CI858K01 3BSE018135R1系列由以下部分组成: em4远程:完全连接到安全基础设施em4警报:能够发送短信或电子邮件警报em4本地:为不需要远程通信或只需要局域网的应用而设计 CI858K01 3BSE018135R1 remote的主要优势是可以连接到互联网&#xff0c;从而提供编程、监控和数据记录功…

怎么把图片转换成pdf格式?

怎么把图片转换成pdf格式&#xff1f;PDF 文件是一种非常流行的文件格式&#xff0c;几乎所有的电脑都自带了 PDF 阅读器工具。将图片转换成 PDF 格式后&#xff0c;在任何电脑或移动设备上&#xff0c;都能轻易地查看、共享和传输&#xff0c;兼容性更好。PDF 文件可以加密保护…

Zotero之多篇文献引用

前提 需看下我的这篇&#xff1a;Zotero文献在word中的引用 具体操作 Step01 在Word中引用多篇文献 点击“Add/Edit Citation”在跳出的Zotero搜索框中&#xff0c;选择“经典视图”在跳出的“添加/编辑引注”界面中&#xff0c;点击“多重来源”&#xff08;单一来源&…

MFC (四) 处理文本

默认消息的处理方法 1.确认什么消息 2.添加消息处理函数 3.添加代码 默认消息指在消息定义中已存在的消息 这里我们对文本做换行处理 1.我们在ondraw里修改代码&#xff0c;这样&#xff0c;无论放大&#xff0c;缩小&#xff0c;都不会改变文本 void CMFCpaintView::On…

基于博客系统的测试

目录 1.测试用例 2.编写代码 2.1InitAndEnd 2.2BlogCases 编写测试用例 2.2.1.登录 2.2.2博客列表页 2.2.3写博客 2.2.4博客详情页校验 2.2.5写博客后,校验博客列表页 2.2.6删除刚才测试发布的博客 2.2.7注销 1.测试用例 2.编写代码 创建两个类 2.1InitAndEnd 用于…

【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

一、数据集准备 数据集下载地址&#xff1a;https://github.com/YimianDai/sirst 1. 需要将数据集转换为YOLO所需要的txt格式 参考链接&#xff1a;https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 import os, shutildef checkPngXml(dir1, dir2…

OceanBase并行执行中 DTL消息接收处理的逻辑

OceanBase 并行执行的消息处理框架是很有意思的&#xff0c;里面用到了不少面向对象编程思想&#xff0c;值得分析。 DTL 从宏观上看可以分为三大部分&#xff1a; DTL 消息发送DTL 消息缓存DTL 消息处理 本文介绍 DTL 消息处理。 核心组件 DTL 消息缓冲区 DTL 消息缓冲区…

不懂这10个命令,别说你会调试网络设备

我的网工朋友大家好啊 好久没跟你们聊思科设备了。 虽然目前大方向上&#xff0c;企业用的设备越来越偏向国产化&#xff0c;学习华为、华三等厂商知识的人也越来越多。 但不可否认的是&#xff0c;思科仍然是厂商老大哥。 交换机、路由器这两块&#xff0c;思科占的全球市场…