9:30-10:30 修改code review 部分
10:30-11:30 自己在本地修改后,因为commit了多余的文件,所以想要取消commit的操作,git的操作
git log
git reset --soft commit_id//这是取消暂存区,但保留本地工作区
--hard commit_id//彻底回退到上一个版本的操作,无任何保留
1. 最近事情可能很多,以后会遇见的情况也很多,自己应该更耐心一些。
2. 今天学着先解决之前遗留的问题,以后也是,任何问题当下解决,不再拖延
运算符
- 赋值运算符区分是左关联还是右关联 运算符的优先级
- ==是抽象相等,而===是绝对相等比较,会另外比较数据类型(即堆的存放位置也会比较)
自己搜索查询num++(后面自加)和++num(前面自加)的区别,并进行总结。
- 以下例子中两种代码差异看起来不大,甚至结果也相等,但实质有区别
var num = 20;
++num;//Output 21
var num = 20;
num++;//Output 21
- num++是后置递增操作符:
执行前置递增操作符时,变量的值都是在语句被求值之后改变的
var num = 30;
var anotherNum = age++ + 2;
alert(num);//Output 31
alert(anotherNum);//Output 32
在这个例子中,num的值是在执行完anotherNum的语句求值之后再执行的递增操作,因此anotherNum的值等于num的原始值30+2后为32,接着执行num+1的操作,因此num成为了31
- ++num是前置递增操作符:
执行前置递增操作符时,变量的值都是在语句被求值之前改变的
var num = 30;
var anotherNum = ++age + 2;
alert(num);//Output 31
alert(anotherNum);//Output 33
这个例子中变量anotherNum的初始值等于变量num的值前置递增之后+2,由于先执行了加法操作,num的值变成了31,所以再加上2就是33
所有这 4个操作符对任何值都适用,也就是它们不仅适用于整数,还可以用于字符串、布尔值、浮点数值和对象。在应用于不同的值时,递增和递减操作符遵循下列规则。
- 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减 1 的操作。字 符串变量变成数值变量。
- 在应用于一个不包含有效数字字符的字符串时,将变量的值设置为 NaN。 字符串变量变成数值变量。
- 在应用于布尔值 false 时,先将其转换为 0再执行加减 1的操作。布尔值变量变成数值变量。
- 在应用于布尔值 true 时,先将其转换为 1再执行加减 1的操作。布尔值变量变成数值变量。
- 在应用于浮点数值时,执行加减 1的操作。
- 在应用于对象时,先调用对象的 valueOf()方法以取得一个可供操作的 值。然后对该值应用前述规则。如果结果是 NaN,则在调用 toString()方法后再应用前述规 则。对象变量变成数值变量。
如何利用Math方法对得到的结果进行保留两位小数,四舍五入,向上取整,向下取整等操作,并进行总结。
- indexOf和praseFloat的方法实现:
//四舍五入保留2位小数(若第二位小数为0,则保留一位小数)
function keepTwoDecimal(num) {
var result = parseFloat(num);
if (isNaN(result)) {
alert('传递参数错误,请检查!');
return false;
}
result = Math.round(num * 100) / 100;
return result;
}
//四舍五入保留2位小数(不够位数,则用0替补)
function keepTwoDecimalFull(num) {
var result = parseFloat(num);
if (isNaN(result)) {
alert('传递参数错误,请检查!');
return false;
}
result = Math.round(num * 100) / 100;
var s_x = result.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return s_x;
}
function returnFloat(value){
var value=Math.round(parseFloat(value)*100)/100;
var xsd=value.toString().split(".");
if(xsd.length==1){
value=value.toString()+".00";
return value;
}
if(xsd.length>1){
if(xsd[1].length<2){
value=value.toString()+"0";
}
return value;
}
}
var num=3.1;
console.log(returnFloat(num));
- number对象:
var a = 9.39393;
alert(a.toFixed(2));//9.39
只有ie5.5以上的版本才支持。
JavaScript 中 Number()、parseInt()、parseFloat()的区别
1.丢弃小数部分,保留整数部分
parseInt(5/2)
2.向上取整,有小数就整数部分加1
Math.ceil(5/2)
3,四舍五入.
Math.round(5/2)
4,向下取整
Math.floor(5/2)
fot语句
- 在执行循环之前初始化变量和定义循环后要执行的代码
for(var i = 0;i < 10; i++){
alert(i);
}
- 在for语句中,可以不使用
var
,而直接在变量初始化表达式中进行赋值。在外部初始化的变量,在for循环内部同样可以使用,如
var i;
for(i = 0; i < 10; i++){
alert(i);
}
以上代码与在循环初始化表达式中声明变量的效果是一样的。
-
另外,for语句的初始化表达式、控制表达式和循环表达式都是可选的,如果全部省略,就会创造一个无限循环。
而只给出控制表达式的for语句相当于一个while循环
while语句
- while语句有可能循环体内的代码被执行之前,就会对出口条件求值,因此循环体内的代码有可能永远都不会被执行。
如
var i = 0;
while (i < 10) {
i += 2;
}
这个例子中,i起始值为0,每次循环增加2,只要i < 10,循环就会继续下去
do while语句
- 在循环体内的代码被执行之后,才会测试出口条件,即对条件表达式求值之前,循环体内的代码至少会被执行一次
var i = 0;
do {
i += 2;
}while (i < 10);
alert(i);
以上例子中,i的初始值为0,每次循环递增2,一次执行之后,i的值为2,只要i的值小于10,循环就会一直下去
网友评论