WEB前端运算符以及数据类型转换流程控制详解

  • 算术运算符

+、-、*、/、%、**(幂次运算)

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>// /除法运算与C不同两个整数之间相除可能会得到小数let num1 = 5.0let num2 = 2.0console.log(num1 /num2)// **幂次运算console.log(num1 ** num2)console.log(num2 ** num1)// +加运算 不仅可以做数学运算还可以进行字符串拼接等功能console.log(num1 + num2)let str1 = "3"let str2 = "2"console.log(num1 + str1)console.log(str1 + str2)</script></body>
</html>
  • 逻辑运算符

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>// 逻辑运算符或|| 由||链接Boolean值中如果一个为真 则表达式为真if (true || false || false || false){console.log(true)}else{console.log(false)}// 逻辑运算符&& 又&&连接起来的Boolean值 如果其中一个为假  则表达式为假let num1 = 10let num2 = 5//      true    &&    trueif (num1 > num2 && num1 - num2 >= num2){console.log(true)}else{console.log(false)}// 逻辑运算符!他表示取反//    true      &&    trueif (num1 > num2 && !(num1 - num2 > num2)){console.log(true)}else{console.log(false)}</script></body>
    </html>
    
  • 比较运算符

    
    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//>、<、==、>=、<=、!=、===let num1 = 1let str1 = "1"// =赋值 ==值比较  ===值比较的基础上还会考虑类型if (num1 === str1){console.log(true)}else{console.log(false)}</script></body>
    </html>
    
  • 赋值运算符

    赋值运输符,顾名思义,就是用来给变量赋值的,最常见的就是=,等于符号在数学上表示判断是否相等,在编程中一般表示将右侧的值赋给左侧,常见的赋值运输符见表8-1。

    表达式结果
    a = 10a最后的值是10
    a += 10a = a + 10,最后a的值加10
    a -= 10a = a - 10
    a *= 10a = a * 10
    a /= 10a = a / 10
    a **= 10a = a ** 10
    表8-1
  • 自增自减运算符

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>let a = 5let b = 10//a++会先提取值在进行表达式运算let c = a++ + ++bconsole.log(c--)let d = c-- - --cconsole.log(d)let e = d++console.log(e)</script></body>
    </html>
    
  • 三目运算符

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//三目运算符如果?的左侧结果是true,则返回冒号左侧的结果,否贼返回冒号右侧的结果let a = 11let b = 1c = a==b?false:trueconsole.log(c)</script></body>
    </html>
    
  • 位移运算符

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//位移运算符:将数字转化为2进制然后向右移动两位// >>右移 <<左移 >>>无符号右移 <<<无符号左移let a = -12// 1000 1100// 0010 0000 0000 0000 0000 0000 0011// 128	 64	32 16	 8	4  2	1// 1     1  1  1     1  1  1    1//12的二进制结果 1 1 00//     0 0 11// console.log(a>>2>>2)console.log(-12 >>> 2)</script></body>
    </html>
    

数据类型转换

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>//数据类型转换 自动转换//数据类型的自动转换通常是从精度低的转向精度高的类型,或者根据数据类型的优先级转换后进行运算//优先级 boolean < number < stringlet a = 1let b = 2.5c = a + bconsole.log(c)// let d = "123"// let e = a + d// let f = true// console.log(d + f)// console.log(e)// 强制转换会使用到两个函数parseInt和pareseFloatlet d = "123"//parseint会将小数的小数部分扔掉保留整数部分// d = parseInt(d)//parsefloat会完整保留小数d = parseFloat(d)console.log(d)e = a + dconsole.log(e)</script></body>
</html>

流程控制

  • 顺序结构

    从页面的视角去看,代码按照从上到下的顺序执行

    从行的角度去看,代码按照从左到右的顺序执行

  • 分支结构

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>flag = prompt("你试试坤坤的粉丝吗?","1")// if (flag == "1"){// 	console.log("太好了,我也是");// }else if(flag == "2"){// 	console.log("你好酷")// }else if(flag == "3"){// 	console.log("你好傻")// }else{// 	console.log("你好 路人")// }//使用switch语句的时候如果没有break,将会击穿条件语句,一直到break为止switch(flag){case "1":console.log("太好了,我也是");breakcase "2":console.log("你好酷")breakcase "3":console.log("你好傻")breakdefault:console.log("你好 路人");}//swich的效率非常高,一般情况是if多分支3倍,switch使用了快表的技术//当分支非常多的时候 尽量使用switch语句//switch的case中必须是一个具体的值而不能表达式。</script></body>
</html>
  • 循环结构

    • for循环

    • <!DOCTYPE html>
      <html><head><meta charset="utf-8"><title></title></head><body><script>// for while 是循环结构//	循环起始;循环结束;循环变化arr = [10,20,30,40,50,60]// for(let i = 0; i< arr.length;i++){// 	console.log(arr[i])// }//for of 在遍历数组的时候常用,相对上一种方式更为简洁// for(let num of arr){// 	console.log(num)// }//for in 常用于遍历对象的let obj = new Object();// 为对象属性赋值obj.name = "刘建宏"obj.age = 16;obj.gender = "男";for(let attr in obj){console.log(attr) //输入对象的属性名console.log(obj[attr]) //输入对象的属性值}</script></body>
      </html>
      
    • while

    • <!DOCTYPE html>
      <html><head><meta charset="utf-8"><title></title></head><body><script>//while循环 会先判断条件 然后条件成立在执行语句//do while会先执行循环体 在判断条件知否成立// let i = 0;// while (i < 100) {// 	console.log(i)// 		++i// }let i = 0// while (i < 0) {// 	console.log(i)// 		++i// }do {i++console.log(i)} while (i < 0)// break中断当前循环且只能中断//continue中断本次循环进入下一次循环 当前循环有效</script></body>
      </html>
      

函数

  • 什么是函数?

    封装起来的代码片段,通常具有特定的功能,他可以提升代码的复用性,可读性等等

  • 如何创建一个函数

    在JS使用function关键字+函数名+([参数1,参数2,…])然后使用{}表示函数体

    //语法结构
    function 函数名([参数1.....]){//函数体代码[return 结果]
    }
    
    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//使用关键字function创建函数add,形参是a和bfunction add(a,b){c = a + breturn c}//调用函数时只需要书写函数名,并将你需要进行运算的数字穿个形参即可//100和10是实参let num1 = parseInt(prompt("请输入第一个数字"))let num2 = parseInt(prompt("请输入第二个数字"))result = add(num1,num2)console.log(result)</script></body>
    </html><!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>function chufa(a, b) {let result = a / breturn result}// console.log(chufa(10,5)) 等价于一下let result = chufa(10,5)console.log(result)</script></body>
    </html>
    
  • 函数分为有参/无参函数、有返回值/无返回值、以及系统定义函数和自定义函数

  • 值传递和引用传递

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//值传递,只是将变量的值赋值给了参数,让它参与函数的运算堆变量本身不产生任何影响//所有基本数据类型都是值传递function add(a){a = a + 10return a}num = 10console.log(add(num))// 20console.log(add(num))// 20console.log(add(num))// 20console.log(add(num))// 20function add2(arrary){arrary[0] += 10return arrary}//引用传递会将本身交给函数,它会参与函数的运算// 所有引用类型都是引用传递let arr = [1]console.log(add2(arr))//[11]console.log(add2(arr))//[21]console.log(add2(arr))//[31]console.log(add2(arr))//[41]</script></body>
    </html>
    
  • 函数作为参数进行传递

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>function area(width,height){return width * height}function C(width,height){return (width + height) * 2}function show(fn,width,height){return fn(width,height)}//函数作为参数传递时不能写参数列表否则表示调用,而不是传递函数console.log(C(10,10))console.log(show(C,10,10))console.log(show(area,10,10))</script></body>
    </html>
    
  • 默认值参数

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//默认值参数提高了编码效率,开发者可以使用默认值参数而不必传参,如果觉得默认值参数不够可靠,那么可以传参来覆盖原有的默认值function circleArea(r,PI=3.14){return PI*r*r}let result = circleArea(10)console.log(result)result = circleArea(10)console.log(result)</script></body>
    </html>
    
  • 匿名函数

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//所谓匿名函数,顾名思义就是没有名字的函数,一般情况下,匿名函数是用来当参数的,只是用一次,所以没有起名字的必要,直接在参数列表中写函数即可。function area(width,height){return width * height}function C(width,height){return (width + height) * 2}function show(fn, width, height) {return fn(width, height)}console.log(show(area,10,10))console.log(show(C,10,10))let result = show(function(a,b,){return a + b },10,10)console.log(result)</script></body>
    </html>
    
  • lambda表达式

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>//lambda表达式又称箭头表达式,它在匿名函数的基础上进一步进行了省略(function都不用写了)//当参数列表为空时()=>{代码块}//当参数列表为一个是,可省略括号即 param=>{代码块}//当参数列表大于1时,括号不可省略(param1,param2,pra.....)=>{代码块}function show(fn, width) {return fn(width)}show((a)=>{console.log(a++ + ++a)},10)</script></body>
    </html>
    
  • arguments

    <!DOCTYPE html>
    <html><head><meta charset="utf-8"><title></title></head><body><script>function fn() {if(arguments.length == 2){console.log(arguments[0] * arguments[1])}else if(arguments.length == 3){console.log(arguments[0] + arguments[1] + arguments[2])}else if(arguments.length == 4){console.log(arguments[0]-arguments[1]-arguments[2]-arguments[3])}else{let result = 0for(param of arguments){result += param}console.log(result)}}fn(10, 20)//200fn(10, 20, 30)//60fn(10, 20, 30, 40)//-80fn(10, 20, 30, 40, 50)//150</script></body>
    </html>
    

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

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

相关文章

LTD261次升级 | 小程序支持抖音客服、支持抖音登录 • 短信发送需实名认证 • 表单提交成功收邮件提醒

1、 抖音小程序新增抖音IM客服功能&#xff1b; 2、 抖音小程序支持一键登录、支持快捷授权手机号 3、 表单新增发送邮件到提交者邮箱&#xff1b; 4、 表单支持配置不自动推送客户管理&#xff1b; 5、 短信发送需实名认证签署承诺书&#xff1b; 6、 其他已知问题修复与优化&…

安装 nvm

前言&#xff1a; nvm 即 node 版本管理工具 (node version manager)&#xff0c;好处是方便切换 node.js 版本。 通过将多个 node 版本安装在指定路径&#xff0c;然后通过 nvm 命令切换时&#xff0c;就会切换我们环境变量中 node 命令指定的实际执行的软件路径。 使用场景…

数据结构笔记1

来自《Python数据结构学习笔记》&#xff08;张清云 编著&#xff09; 第一章 数据结构基础 1.逻辑结构 集合&#xff1a;结构中的数据元素除了同属于一种类型外&#xff0c;别无其他关系线性结构&#xff1a;数据元素之间一对一的关系树形结构&#xff1a;数据元素之间一对…

给定三条边a\b\c,请你判断一下能不能组成一个三角形

题目&#xff1a;给定三条边a\b\c&#xff0c;请你判断一下能不能组成一个三角形 输入描述&#xff1a; 输入包含多组数据&#xff0c;每组数据包含三个正整数a、b、c&#xff08;1≤a, b, c≤10^100&#xff09; 输出描述&#xff1a; 对应每一组数据&#xff0c;如果它们…

Open CASCADE学习|数据类型定义

今天研究一下Standard_TypeDef.hxx文件&#xff0c;该文件的代码如下&#xff0c;首先检查是否存在一个名为"_Standard_TypeDef_HeaderFile"的头文件&#xff0c;如果不存在则创建该头文件。 然后&#xff0c;它包含了一些标准库头文件&#xff0c;例如cstddef、cti…

抖音向微信引流主要有哪几种方法-数灵通

近年来&#xff0c;随着智能设备的普及和信息技术的进步&#xff0c;短视频制作门槛逐渐降低&#xff0c;用户自创视频数量迅猛增长&#xff0c;用户规模持续扩大&#xff0c;有力推动了移动短视频的繁荣发展&#xff0c;市场规模也在不断扩张。作为当下炙手可热的短视频APP&am…

pycharm安装过程

1、安装包官网下载 PyCharm: the Python IDE for Professional Developers by JetBrains 点击下载 下拉选择社区版本 选择下载 下载完成后&#xff0c;双击exe安装。 安装完成&#xff0c;生成的桌面快捷方式 同意并继续 进入开发界面

centos宝塔远程服务器怎么链接?

要远程连接CentOS宝塔服务器&#xff0c;可以按照以下步骤操作&#xff1a; 打开终端或远程连接工具&#xff0c;比如PuTTY。输入服务器的IP地址和SSH端口号&#xff08;默认为22&#xff09;&#xff0c;点击连接。输入用户名和密码进行登录。 如果你已经安装了宝塔面板&…

网络安全学习 --- 小实验

题目 要求 1.防火墙线下使用子接口分别对应两个内部区域。 2.所有分区设备可以ping通网关。 过程 1.接口&#xff0c;区域配置完成。 2.配置SWL2 vlan 2 vlan 3 # interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 2 to 3 # interface Giga…

JavaWeb之JavaScript-Vue --黑马笔记

什么是JavaScript&#xff1f; JavaScript&#xff08;简称&#xff1a;JS&#xff09; 是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互。 JavaScript 和 Java 是完全不同的语言&#xff0c;不论是概念还是设计。但是基础语法类似。 …

c语言不定参数

时间记录&#xff1a;2024/1/22 一、不定参数的函数定义和使用到的c函数 &#xff08;1&#xff09;定义 void fun1(参数类型 argName,...); 示例&#xff1a; void fun1(int count,...);&#xff08;2&#xff09;获取不定参数的值 #include <stdarg.h> //包含头文件…

java数据结构与算法刷题-----LeetCode667. 优美的排列 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 题目要求我们返回一个数组长度为n的数组&#xff0c;必须含有1~n…

信号处理--matlab绘制包络谱图

包络谱图是一种描述信号振动特征的频谱图&#xff0c;它可以显示出信号振动的主要频率成分和振幅变化情况。在机械系统故障诊断和健康监测等领域中&#xff0c;绘制包络谱图是一种常用的分析方法&#xff0c;其主要作用有以下几个方面&#xff1a; 检测故障特征频率&#xff1a…

AI 欺诈事件频出,如何重塑身份认证的安全性?

据报告表示&#xff0c;生成式人工智能每年可为世界经济注入相当于 4.4 万亿美元的资金。预计到 2030 年&#xff0c;人工智能对全球财政的潜在贡献将达到 15.7 万亿美元。人们惊叹于 AI 强大工作效率&#xff0c;期待能帮忙节省不必要的劳动力&#xff0c;但事实上 AI 出现之后…

C++类的简单学习

C语言结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数 之前在数据结构学习中&#xff0c;我们用C语言方式实现的栈&#xff0c;结构体中只能定义变量&#xff1b;现在以C方式实现&#xff0c;会发现struct中也可以定义函…

题记(29)--魔咒词典

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒&#xff0c;哈利很难全部记住&#xff0c;但是为了对抗强敌&#xff0c;他必须在危急时刻…

C++ Qt day1

提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数(要求使用C风格字符串完成) #include <iostream> #include <string.h> #include <array> using namespace std;int main() {string str;cout <<…

数据结构Java版(5)——链栈和链队列的实现

之前我们对链表进行了讲解&#xff0c;这次我们来用链表的方式来实现栈和队列两个接口&#xff0c;来加深我们对链表的理解。 一、链栈 栈的接口与顺序栈的接口相同&#xff0c;这里我们主要展示如何用我们自己写的链表来实现这个接口&#xff0c;代码展示如下&#xff1a; 接…

AI-数学-高中-8-函数奇偶性

原作者视频&#xff1a;函数】6函数奇偶性&#xff08;易-中档&#xff09;_哔哩哔哩_bilibili 示例&#xff1a; 已知奇偶性求解析式&#xff1a; 奇偶、单调函数综合示例&#xff1a;

黑马程序员——javase进阶——day01——匿名对象 , 继承 , 抽象类

目录&#xff1a; 面向对象回顾 面向对象的核心思想是什么?现有的类还是先有的对象?Java类的创建?类中的组成成分?创建对象所使用的关键字?创建对象的格式?调用对象的成员?定义构造方法的格式?定义构造方法的特点?构造方法的作用?面向对象三大特征是什么?封装的思想…