前言:
博主的博客统分为三篇,上篇是博主的技术分享,中篇是博主今日生活记录,下篇是博主每天分享一个有意思的事情,也许是一部电影,也许是一首好听的歌。
本篇博主分享的技术是:沙箱,递归,浅拷贝,深拷贝,遍历DOM数
life bitter short,oneself stupidity oneself happy!
上篇:技术交流
01 沙箱
问:什么是沙箱?
答:沙箱可以理解为内部测试,不影响外界。 就像一个产品在发布之前,会进行各种检测,这个时候,检测的过程可以理解为沙箱,它的结果和外界无干。 博主又一次沉浸在自问自答中 = =
//此处是沙箱的示例
var num = 1000;
(function(){
//这是一个自调用函数
var num = 50; //声明一个和外界一样的变量,并且赋值
console.log(num); // 打印的结果是50
})()
//此时,外界的num 是不被改变的
02 递归
问:什么是递归?
答:递归就是自己调用自己,递归分为两个过程,递和归两个过程,递的时候只做判断,归的时候才做计算
下面将会有代码加图文讲解:
//示例: 使用递归实现1+2+3+4+5的和
function sum(num){
if(num == 1){
//条件判断,防止无限调用
return 1; // num == 1 的时候开始 归的过程
}
return num + sum(num - 1); // 递的过程,在返回结果时,一致在调用自己的函数,直到满足条件开始归的过程
}
var result = sum(5);
console.log(result); //控制台结果:15
图文讲解:
总结:递归对于基础不是很好或者不太理解递归原理的小白来说,可以说是一种思想转变的过程,以前在学习java的时候,我对递归也是一知半解,后来学习JavaScript突然顿悟了,所以,总结经验来讲,遇到实在不能理解的地方不要过于深究,等下次遇到的时候,有了灵感,你就能心有灵犀一点通啦。 哈哈哈哈 >_<
03 浅拷贝
问:什么是浅拷贝?
答:从字面量的理解就可以看出,拷贝就是一种复制,就相当于把一个对象中的所有的内容,复制一份给另外一个对象,或者说,就是把一个对象的地址给另一个对象,他们指向相同,两个对象之间有相同的属性或者方法,都可以使用
//示例:
var obj1 = {
//定义一个对象</