js运算,笔试踩坑知识点

文章目录

    • 前端面试系列
    • 运算符
    • 记住口诀
    • 先计算 后 赋值
    • 赋值从右向左
    • ++ 和 - -
    • 计算从左向右
    • 括号里的加减优先于括号外的乘除
    • 交换俩数的值
    • 答案

在这里插入图片描述

前端面试系列

js运算 笔试踩坑知识点
前端js面试题 (三)
前端js面试题(二)
前端js面试题 (一)
css前端面试题(三)
css前端面试题(二)
css前端面试题 (一)
html面试题(二)
html 高频面试题

运算符

常见的算术运算符,+-*%/=()

不常见的运算符 ++,--,+=,-=,%=,/=

记住口诀

先计算,后赋值,计算从左向右,赋值从右向左。
先乘除后加减,括号里的加减优先于括号外的乘除。

哪些属于赋值呢 +=,-=,%=,/=,=

先计算 后 赋值

var a = 1;
var b = 2;
var d = 0;d -= a + b
console.log(d)

赋值从右向左

var a = 1;
var b = 2;
var d = 0;d -= a += b /= d + 1
console.log(a)
console.log(b)
console.log(d)

++ 和 - -

符号在前,先计算再运行
符号在后,先运行再计算

var a = 5;
var b = a++ + 12 + ++ a
console.log(a);
console.log(b);
var a = 5;
var b = (a ++) + (12 + -- a)
console.log(a);
console.log(b);

计算从左向右

var a = 5;
var b = 3;
b += a++ + (12 + -- a)
console.log(a);
console.log(b);

括号里的加减优先于括号外的乘除

var a = 5;
var b = 3;
b += a++ * (12 + -- a)
console.log(a);
console.log(b);

交换俩数的值

var a = 123, b = 234;
a = a + b
b = a - b
a = a - b

答案

先计算后赋值, a + b = 3, 然后 d = 0 - 3

var a = 1;
var b = 2;
var d = 0;d -= a + b
console.log(d) // -3

同样先计算后赋值,多个赋值,从右向左
d + 1 = 1
b = 2 / 1 = 2
a = 1 + 2 = 3
d = 0 - 3 = -3

var a = 1;
var b = 2;
var d = 0;d -= a += b /= d + 1
console.log(a) // 3
console.log(b) // 2
console.log(d) // -3

多次计算,从左向右,++ 在后先运算后加1,++在前,先加1,后运算

a++ 此时 a为 5 变为 5 + 12 + ++a 但完成转变后 a = a + 1 = 6
17 + ++ a 因为++ 在前面,a = a + 1 = 7 所以,b = 17 + 7 = 24

var a = 5;
var b = a++ + 12 + ++ a
console.log(a); // 7
console.log(b); // 24

同理类推

var a = 5;
var b = (a ++) + (12 + -- a)
console.log(a); // 5
console.log(b); // 22
var a = 5;
var b = 3;
b += a++ + (12 + -- a)
console.log(a); // 5
console.log(b); // 25

括号内的加减法优先于括号外的乘除法, 但计算还是从左向右

a++ * (12 + -- a) 变为 5 * (12 + -- a) 然后 a = a + 1 = 6
先算括号里面的加法 ,发现 --在a的前面,所以 a = a - 1 = 5,5 * (12 + -- a)变为5 * (12 + 5) = 85
最后 b = b + 85 = 88

var a = 5;
var b = 3;
b += a++ * (12 + -- a)
console.log(a); // 5
console.log(b); // 88

在这里插入图片描述

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

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

相关文章

基于SpringBoot的SSMP整合案例(开启日志与分页查询条件查询功能实现)

开启事务 导入Mybatis-Plus框架后,我们可以使用Mybatis-Plus自带的事务,只需要在配置文件中配置即可 使用配置方式开启日志,设置日志输出方式为标准输出mybatis-plus:global-config:db-config:table-prefix: tb_id-type: autoconfiguration:…

【原创课设】java+swing+mysql选课管理系统设计与实现

摘要: 随着学校规模的扩大和课程设置的多样化,传统的手工选课管理方式已经无法满足现代教育的需求。因此,开发一款高效、便捷的选课管理系统变得尤为重要。该系统可以提高选课工作的效率,减少人为错误,同时也能为学生…

工业摄像机参数计算

在工业相机选型的时候有点懵,有一些参数都不知道咋计算的。有些概念也没有区分清楚。‘’ 靶面尺寸 CMOS 或者是 CCD 使用几分之几英寸来标注的时候,这个几分之几英寸计算的是什么尺寸? 一开始我以为这个计算的就是靶面的实际对角线的尺寸…

nfs配置

1.NFS介绍 NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操 作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文 件系统中,而在本地端的系统中来看&#…

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点: TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定,脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

Docker从零开始学习,及常用命令大全(附带代码讲解)

Docker从零开始,及常用命令大全(附带代码讲解) docker是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。…

Qt QtCreator调试Qt源码配置

目录 前言1、编译debug版Qt2、QtCreator配置3、调试测试4、总结 前言 本篇主要介绍了在麒麟V10系统下,如何编译debug版qt,并通过配置QtCreator实现调试Qt源码的目的。通过调试源码,我们可以对Qt框架的运行机制进一步深入了解,同时…

使用Redis实现热搜功能

Redis热搜 原理数据类型redis操作简单实现 实操封装方法执行方法最后使用springboot的定时任务对热搜榜单进行维护 原理 使用redis实现热搜的原理就是维护一个zset集合,然后使用score作为当前搜索词的搜索量,score越高的搜索词就说明该搜索词热度越高。…

设计模式之十一:代理模式

代理可以控制和管理访问。 RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法就和运行在客户自己本地JVM对对象进行正常方法调用一样。 步骤一:制作远程…

机器学习——朴素贝叶斯

目录 一、贝叶斯方法 背景知识 贝叶斯公式 二、朴素贝叶斯原理 判别模型和生成模型 1.朴素贝叶斯法是典型的生成学习方法 2.朴素贝叶斯法的基本假设是条件独立性 3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测 用于文…

Redis为什么要使用SDS作为基本数据结构

Redis为什么要使用SDS作为基本数据结构 Redis SDS与C语言中字符串的对比二进制安全兼容部分C字符串函数 Redis SDS与C语言中字符串的对比 SDS中保存了字符串的长度属性,我们在获取字符串长度是的时间复杂度为O(1),而C中字符串则需要对字符串进行遍历时间…

Lambertian模型(完美漫反射)

这里使用相乘的方式组合光照色和纹理色。根据这个模型,面朝光源的区域光照强度高,纹理色也相应增强。面背光源的区域光照弱,纹理色也被抑制。这样通过光照和纹理的结合,可以合成出具有照明效果的面部颜色,而不仅仅是固定的纹理本身的颜色。相乘方式可以近似实现不同光照方向下面…

【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密

VSCode 插件 DevChat——国内开源的 AI 编程! 写在最前面DevChat是什么?什么是以提示为中心的软件开发 (PCSD)?为什么选择DevChat?功能概述情境构建添加到上下文生成提交消息提示扩展 KOL粉丝专属福利介绍D…

【JavaEESpring】Spring Web MVC⼊⻔

Spring Web MVC 1. 什么是 Spring Web MVC1.1 什么是 MVC ?1.2 是什么 Spring MVC? 2. 学习 Spring MVC2.1 建立连接2.2 请求2.3 响应 3. 相关代码链接 1. 什么是 Spring Web MVC 官⽅对于 Spring MVC 的描述是这样的: 1.1 什么是 MVC ? MVC 是 Model View C…

Python---字符串 lstrip()--删除字符串两边的空白字符、rstrip()--删除字符串左边的空白字符、strip()--删除字符串右边的空白字符

strip() 方法主要作用:删除字符串两边的空白字符(如空格) lstrip() 方法 left strip,作用:只删除字符串左边的空白字符 left 英 /left/ 左 rstrip() 方法 right strip,作用:只删除字符…

C# OpenCvSharp 去除文字中的线条

效果 中间过程效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Windows.Forms; using static System.Net.Mime.MediaTypeNames;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent…

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#xff0…

Spring-Security前后端分离权限认证

前后端分离 一般来说,我们用SpringSecurity默认的话是前后端整在一起的,比如thymeleaf或者Freemarker,SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道,前后端分离的话,那就…

【python后端】- 初识Django框架

Django入门 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🌝分享学习心得,欢迎指正,大家一起学习成长! 文章目录 Django入门…

[工业自动化-16]:西门子S7-15xxx编程 - 软件编程 - 西门子仿真软件PLCSIM

目录 前言: 一、PLCSIM仿真软件 1.1 PLCSIM仿真软件基础版(内嵌) 1.2 PLCSIM仿真软件与PLCSIM仿真软件高级版的区别? 1.3 PLCSIM使用 前言: PLC集成开发环境是运行在Host主机上,Host主机与PLC可以通过…