-
i++ 与 ++i 的主要区别有两个:
1、 i++ 返回原来的值,++i 返回加1后的值。
2、 i++ 不能作为左值,而++i 可以。毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。
首先解释下什么是左值(以下两段引用自中文维基百科『右值引用』词条)。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。
一般来说,左值是可以放到赋值符号左边的变量。但
能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
比如,
int i = 0; int *p1 = &(++i); //正确 int *p2 = &(i++); //错误 ++i = 1; //正确 i++ = 5; //错误
查看全部 -
i++ 与 ++i 的主要区别有两个:
1、 i++ 返回原来的值,++i 返回加1后的值。
2、 i++ 不能作为左值,而++i 可以。毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。
首先解释下什么是左值(以下两段引用自中文维基百科『右值引用』词条)。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。
一般来说,左值是可以放到赋值符号左边的变量。但
能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
比如,
int i = 0; int *p1 = &(++i); //正确 int *p2 = &(i++); //错误 ++i = 1; //正确 i++ = 5; //错误
查看全部 -
i++ 与 ++i 的主要区别有两个:
1、 i++ 返回原来的值,++i 返回加1后的值。
2、 i++ 不能作为左值,而++i 可以。毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。
首先解释下什么是左值(以下两段引用自中文维基百科『右值引用』词条)。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。
一般来说,左值是可以放到赋值符号左边的变量。但
能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
比如,
int i = 0; int *p1 = &(++i); //正确 int *p2 = &(i++); //错误 ++i = 1; //正确 i++ = 5; //错误
作者:叶王
链接:https://www.zhihu.com/question/19811087/answer/80210083
查看全部 -
i++ 与 ++i 的主要区别有两个:
1、 i++ 返回原来的值,++i 返回加1后的值。
2、 i++ 不能作为左值,而++i 可以。毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。
首先解释下什么是左值(以下两段引用自中文维基百科『右值引用』词条)。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。
一般来说,左值是可以放到赋值符号左边的变量。但
能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
比如,
int i = 0; int *p1 = &(++i); //正确 int *p2 = &(i++); //错误 ++i = 1; //正确 i++ = 5; //错误
作者:叶王
链接:https://www.zhihu.com/question/19811087/answer/80210083
查看全部 -
操作符之间的优先级(高到低):
算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
查看全部 -
Js的数组的创建同Java相似查看全部
-
alert:表示弹出的是警告,只有确定按钮;confirm:表示的是对问题的确定,有确定和取消两个按钮;prompt:表示的是在弹窗中对你输入的值的解答,有输入框,确定和取消三个按钮。
查看全部 -
//获取显示秒数的元素,通过定时器来更改秒数。
var num = 5;
setInterval(function(){
if(num >= 0){
document.getElementById("second").innerHTML=num;
num--;
}else{
clearInterval();
//通过window的location和history对象来控制网页的跳转。
window.location.href="https://www.imooc.com";
}
},1000);
查看全部 -
offsetHeight = clientHeight + 滚动条 + 边框。
查看全部 -
9-18 输出结果不一样, 要研究一下
查看全部 -
111
查看全部 -
测试一下我自己都不想看你怎么样
查看全部 -
Math对象
Math 对象属性
Math 对象方法
查看全部 -
1 string.substring( 起点 , 终点 );
2 string.substr( 起点 ,长度 );查看全部 -
提取字符串substring()
1. mystr.substring(1,5),不带引号,两个参数分别表示提取的开始下标和结束下标。 提取字符串中下标在1~5之间的字符,注意,下标为1的也会被提取出,但是下标 是5的不会被提取。 2. 如果只有一个参数,则这个参数是第一个参数,表示提取的开始下标,一直提取到 对象的结尾。
3. 目前这些方法包括之前遇到的字符串方法,都是第一个参数必写,第二个参数可省 略。
4. 如果两个参数相等,返回空字符串"",第一个小于第二个,正常写 法。 第一个大于第二个,方法会自动调换两个参数。查看全部 -
字符串分割split()
split( ) 方法将字符串分割为字符串数组,并返回此数组。
例:
var mystr="86-010-85468578";
document.write(mystr.split("-")+ "<br />"); //86,010,85468578
document.write(mystr.split("") + "<br />"); //8,6,0,1,0,8,5,4,6,8,5,7,8
document.write(mystr.split("",3)); //8,6,0
语法:mystr.split("A",B);
//以A为据点对字符串分割,分割B次,输出前B段字符,且不输出A
查看全部 -
返回指定的字符串首次出现的位置
两种写法
mystr.indexOf("b" , i); //从下标为i开始寻找字符b,找不到则返回 -1
mystr.indexOf("b"); //从下标为0开始寻找字符b,找不到则返回-1
查看全部 -
返回指定位置的字符
charAt( ) 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。
注意:
1. 字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)。
2. 如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。
注意:一个空格也算一个字符。
查看全部 -
问:
mydate已经是当前时间了,为什么还要加一个getTime()呢?为什么不能写成
mydate.setTime(mydate + 60 * 60 * 1000);
答:
mydate应该是一个字符串,字符串的+号是拼接两个字符串,getTime是计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。如果想得到推迟后的时间话,需要把这个字符串变成数值,再使用+号,这个时候不是拼接,而是加和。其中getTime正巧起到了桥梁作用。
查看全部
举报