发表于: 2018-05-11 23:16:32
1 651
今天完成的事情:
研究一下js方便使用gulp
明天计划的事情:
能初步做出js1的水平
遇到的问题:
递归算法一开始不是很懂
function fld(num){
if (num===0),return 0;
if( num === 1),return 1;
return fld(num-2)+ fld (num -1)
}
fid(6) ;
输出的结果是8 就很不懂
最后发现这个递归会重复计算,我以为他会只计算一次if不符合的时候直接计算得出结果而不是反复计算
收获:
数字加法
true + true // 21 + true // 2
布尔值可以计算
运算子有一个字符就会算字符叠加
1 + 'a' // "1a"false + 'a' // "falsea"
加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心。
'3' + 4 + 5 // "345"3 + 4 + '5' // "75"
上面代码中,由于从左到右的运算次序,字符串的位置不同会导致不同的结果。
除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算。
1 - '2' // -11 * '2' // 21 / '2' // 0.5
上面代码中,减法、除法和乘法运算符,都是将字符串自动转为数值,然后再运算。
评论