11.27学习日记


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. 今天学着先解决之前遗留的问题,以后也是,任何问题当下解决,不再拖延


运算符

  1. 赋值运算符区分是左关联还是右关联 运算符的优先级
  2. ==是抽象相等,而===是绝对相等比较,会另外比较数据类型(即堆的存放位置也会比较)

自己搜索查询num++(后面自加)和++num(前面自加)的区别,并进行总结。

  • 以下例子中两种代码差异看起来不大,甚至结果也相等,但实质有区别
var num = 20;
++num;//Output 21
var num = 20;
num++;//Output 21
  1. 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

  1. ++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方法对得到的结果进行保留两位小数,四舍五入,向上取整,向下取整等操作,并进行总结。

  1. 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));
  1. 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)


js取两位小数的方法


fot语句

  1. 在执行循环之前初始化变量和定义循环后要执行的代码
 for(var  i = 0;i < 10; i++){
        alert(i);
}
  1. 在for语句中,可以不使用var,而直接在变量初始化表达式中进行赋值。在外部初始化的变量,在for循环内部同样可以使用,如
var i;
for(i = 0; i < 10; i++){
        alert(i);
}

以上代码与在循环初始化表达式中声明变量的效果是一样的。

  1. 另外,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,循环就会一直下去

你可能感兴趣的:(11.27学习日记)