文章目录
前言
细节之处是我们大家最容易忽视的,将这些细节注意到位了,能帮助我们更好的写出安全、高效的代码。
一、后端
Java finally关键字
finally常与try/catch搭配着使用,其作用是保证finally代码块中的代码一定会被执行到。像对文件I/O、获取数据库连接等,都会使用finally来保证资源会被释放。但是异常处在这种位置finally会失效。
除此之外,return和finally都存在的时候,返回值被覆盖。
还有一种异常和return结合的情况也很特殊。
Mybatis查询没有数据返回结果List时,List是Null还是list.size=0?
结果:返回的list.size = 0
Java自动拆箱的注意点
public class Main {
public static void main(String[] args) {
//自动装箱
Integer i = 8;
//自定拆箱
int r = i;
}
}
上述过程,反编译代码后会看到,有个步骤:
装箱
Integer i = Integer.valueOf(8);
拆箱
int r = i.intValue();
注意点就是如果 Integer i = null; 自动拆箱时就会报空指针异常。
二、前端
innerText和innerHtml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../js/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<p id="flag">love & you</p>
</body>
<script type="text/javascript">
$(function () {
var value=document.getElementById('flag').innerText;
alert(value);
});
</script>
</html>
首先,我们使用innerText获取内容
然后,我们使用innerHTML获取内容
结果反应出,innerText会将&当作文本看待;innerHTML会将&当作html语句看待。
html()和append()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../js/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<p id="flag">love</p>
</body>
<script type="text/javascript">
$(function () {
$('#flag').append(' you')
});
</script>
</html>
首先,使用append()函数往p标签中间添加 'you'
然后,使用html()函数往p标签中间添加 'you'
通过上面结果,结论显而易见
return关键字
js在遍历数组时可以用到forEach和for,如果在它们的循环体中使用return关键字,最终的效果是不太一样的。
这里return并没有结束整个方法,而是跳出了整个循环,类似break。
解决方案: 换成for循环就可以结束整个方法。