首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

javai++ ++i区别

今天同事扔给我两道面试题,由于我2年前就接触过这道题,所以没啥意思,我看完后扔到一个交流群里,回答这道题绝大部分人竟然都答错了;很多人很清晰知道这两道题想考察面试者对 i++ ++i 理解...,也很清晰知道这二者区别,但是题还是做不对;两道题如下,大家可以先思考一下,给个答案,然后再去验证自己想法。...(这是一道典型看着非常简单题,但是不少人还是会因为粗心栽跟头) 第一题: int a = 0; for (int i = 0; i < 99; i++) {...(int i = 0; i < 99; i++) { b = ++ b; } System.out.println(b); 我估计会有不少人做错...i++ ++i 在理论上区别是: i++:是先把i拿出来使用,然后再+1; ++i :是先把i+1,然后再拿出来使用; 答案见下: 第一题:a=0 第二题:b=99 再升级一下 第三题

1.2K30

JS基础】JS Let Const 变量区别

在 JavaScript ,let const 都是用于声明变量关键字,但它们之间有一些重要区别: 可变性: let 允许在声明之后更改变量值。...) 作用域: let const 都具有块级作用域。...这意味着在使用它们声明变量时,变量仅在声明它们代码块(例如:函数、循环或其他控制结构)可用。...相反,let const 声明变量也会被提升,但是在被赋值之前,它们将处于临时性死区(TDZ),在这个阶段赋值操作将引发错误。...当您需要一个仅在代码块可用且易于更改变量时,使用 let;当您需要一个仅在代码块可用且不可更改变量时,使用 const。这有助于使代码更加健壮且易于理解。 Ref: 机器回答.

21610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java i = i++ j = i++ 区别

    由于i++i--使用会导致值改变,所以在处理后置++--时候,java编译器会重新为变量分配一块新内存空间,用来存放原来值, 而完成赋值运算之后,这块内存会被释放。...i原始值存放在后开辟内存,最后将这个值赋给j,进行j = i++运算之后,j会得到i值,而i又将自加,所以,在释放内存之后,原来存放ji地方将得到值分别是:j(此时值等于初始i值)i...每一次循环结束,用来保存i原始值内存数据会被销毁,然后i值又会被放在一段新内存,在进行上述循环,所以最终能够实现j数据增加。 (2)对于i = i++情况 ?...总结:  Java编译器每次遇到自增(指的是i++)、自减(指的是i--)运算符时候都会开辟一块新内存空间来保存赋值之前j值,即为缓存变量,然后再将这个换成变量值赋给左边变量。...扩展: 微软windows下visualstudio编译结果java不同,但在gcc等其他c语言编译器下,结果java是一样,千万要注意,由于有些人使用是c语言编译器但不是windows

    1.3K100

    JS变量类型计算

    题目 1.JS使用typeof能得到哪些类型 2.=== == 选择 3.JS中有哪些内置函数 4.JS变量按存储方式分为哪些类型,并描述其特点 5.如何理解JSON 值类型引用类型 值类型(...把a赋值给b是在栈重新开辟一块空间存储还是相同对象引用地址,ab存储地址相同,指向对象也相同。当对象值发生改变时,两者会同时改变。...window.abc //true nullundefined区别 null:是被赋值过对象,刻意把一个对象赋值为null,故意表示其为空,不应有值,所以对象为null是正常,typeof...:Math,JSON JS变量按存储方式分为哪些类型,并描述其特点 值类型何引用类型 如何理解JSON JSON是JS一个内置对象 区别 JS对象 {x:10} JSON对象 {'x':10} JSON... v = 1; // 报错,v未声明      for(i = 0; i < 2; i++) { // 报错,i未声明  } 禁止删除变量 严格模式下无法删除变量

    4.1K10

    Js变量

    Js变量:  1:如果在var没有初始化变量值,则默认为undefined.  2:可以不用var来申明一个变量,但是在过程级申明一个变量时,就必须用var.   ...var currentCount  5: 在 JScript null undefined 主要区别是 null 操作象数字 0,    而 undefined 操作象特殊值NaN (不是一个数字...对 null 值 undefined 值作比较总是相等。  6:   运算             结果   数值与字符串相加       将数值强制转换为字符串。   ...js数据类型  1:Jscript 有三种主要数据类型、两种复合数据类型两种特殊数据类型    主要(基本)数据类型是: 字符串 数值 布尔    复合(引用)数据类型是: 对象 数组    特殊数据类型是...: Null Undefined  2:测试是否已经声明变量 x :    if (typeof(x) == "undefined")      // 作某些操作 js内置对象  1:Jscript

    12.9K60

    JSisPrototypeOf hasOwnProperty 区别

    1、isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2原型链,是则返回true,否则返回false。 ...如果 object2 原型链包含object1,那么 isPrototypeOf 方法返回 true。 ...如果 object2 不是一个对象或者 object1 没有出现在 object2 原型链,isPrototypeOf 方法将返回 false。 ...2、hasOwnProperty  hasOwnProperty判断一个对象是否有名称属性或对象,此方法无法检查该对象原型链是否具有该属性,该属性必须是对象本身一个成员。 ...如果该属性或者方法是该 对象自身定义而不是器原型链定义 则返回true;否则返回false;  格式如下:  object.hasOwnProperty(proName);  判断proName名称是不是

    92840

    jscallapply区别

    调用函数时, callapply传递参数方式不同 以名为showHide函数为例: function showHide(name1, name2){ if(this.parentNode.parentNode.querySelector...身为VRMMORPG(虚拟大规模线上角色扮演游戏)《刀剑神域〈SAO〉》其中一名玩家:桐人和其他一万个玩家才刚登入享受此游戏之时,游戏中管理员对大家宣布了一个令人惊恐消息── 那就是,现在唯一要登出此游戏方法只有将这个游戏破关...,并且在这个游戏中GAME OVER的话,也就代表了现实世界“死亡”。.../image/jinshu.jpg"> 故事讲述是从东京都西部被分割出来这座都市,“超能力开发”被列为学校课程一部分...某一个暑假日子,在家里阳台上,他遇见了一位修女;这位少女自称自己名字叫“茵蒂克丝”,并是从魔法世界逃了出来,现在正在被魔法师追赶

    1.8K30

    面试官:i = i++ i = ++i 有什么区别

    出处:blog.csdn.net/qq_44377709/article/details/106643703 写在前面:前些天看完了JVM内存结构,自以为自己是懂了,心里想想不就是分线程共享线程私有嘛...其中一个方法对应一个栈帧 此题目我们只需要用到栈帧里面的局部变量操作数栈 2.1、第一步 int i = 1 只是一个简单赋值操作 2.2、第二步 i = i++ 结果:i还是等于1 2.3、第三步...int j = i++ 结果:i在局部变量变成了2,操作数栈 i 值为1,并且将 i 值返回给 j,即此条语句以后,i = 2,j = 1 2.4、第四步 int k = i + ++i *...i++ 结果:局部变量i = 4,k = 11 2.5、结果 3、i = ++i 按理说根据上面的分析过程,再来分析 i = ++i,就很简单了。...我们 i 变量先在局部变量表中进行自增,然后再将 i 进栈,然后再把栈数据返回给我们变量 i

    1.2K20

    void 在 JS TS 区别

    // 每日前端夜话 第588 篇 // 正文共 1200 字 // 预计阅读时间:7 分钟 如果你用过传统强类型语言,可能会很熟悉 void 概念:一种类型,告诉你函数方法在调用时不返回任何内容...void 作为运算符存在于 JavaScript ,而作为基本类型存在于 TypeScript 。在这两个世界,void 工作机制与大多数人习惯有点不同。...JavaScript void JavaScript void 是一个运算符,用于计算它旁边表达式。无论评估哪个表达式,void总是返回undefined。...function iHaveNoReturnValue(i: number): void void 作为类型也可以用于参数所有其他声明。...(undefined) // iTakeNoParameters(void 2) // 所以 void undefined 几乎是一样

    4K20

    图解 i++ ++i 区别!看了必懂

    0压入操作栈 ISTORE_1 //将当前栈顶元素,弹出并保存到局部变量slot_1 L1 ILOAD_1 //从局部变量第一个slot槽,取出该值,压入操作栈顶 IINC 0,1...//直接将slot槽值自增(+1)操作,注意此时是与当前栈无关 ISTORE_2 //将当前栈顶元素,弹出并保存到局部变量slot_2 L2 ILOAD_2 //从局部变量第二个...//将常量0压入操作栈 ISTORE_1 //将当前栈顶元素,弹出并保存到局部变量slot_1 L1 IINC 0,1 //直接将slot槽值自增(+1)操作 ILOAD_...1 //从局部变量第一个slot槽,取出该值(该值此时已经自增过了),压入操作栈顶 ISTORE_2 //将当前栈顶元素,弹出并保存到局部变量slot_2 L3 ILOAD_2...//从局部变量第二个slot槽,取出该值,压入操作栈顶 IRETURN //返回栈顶元素 最终输出结果为: a值是: 1 i值是: 1; 总结 i++ ++i 在理论上区别

    41820
    领券