当前位置: 首页 > news >正文

用vs2010做网站导航quark搜索引擎入口

用vs2010做网站导航,quark搜索引擎入口,百度网站打不开,wordpress 404.3一:什么是引用传递 引用传递是相对于值传递的。那什么是值传递呢?值传递就是在传递过程中再复制一份,然后再赋值给变量,例如: let a 2; let b a;在这个代码中,let b a; 就是一个值传递,首先…

一:什么是引用传递

引用传递是相对于值传递的。那什么是值传递呢?值传递就是在传递过程中再复制一份,然后再赋值给变量,例如:

let a = 2;
let b = a;

在这个代码中,let b = a; 就是一个值传递,首先它将a的值复制下来,再赋值给b,最终这里的 a 和 b 指向的是两块儿内存空间;那什么又是引用传递呢?引用传递就是两个变量没有独立的内存空间,它们指向的是同一块儿内存空间。

二:js里面有引用传递吗?

结论:在es6模块化之前,js是没有严格意义上的引用传递的。

有人可能会说,怎么会没有呢,赋值对象的时候不是用的引用传递吗?事实上,js里面赋值对象时同样是值传递,代码如下:

let a = {num: 0
}
let b = a;
b.num = 2
console.log(a.num)   // 2

以上代码看上去好像 a 和 b 指向的同一块儿地址,修改了 b 以后 a 也改了,但是这其实不是引用传递。我们都知道,js存储对象时,真实数据都存储在栈里面,a的值其实是一个指向对象的地址,而执行 let b = a;时,其实是将a存储的地址复制了一份给b,看起来是修改的 b 的值,其实修改的是b指向的栈里面的值,而 a 也指向这个空间,所以 a.num 变化了,但是对于a和b本身是没有影响的。而如果是引用传递,那么当我执行 b = 2 时,a也会等于2,这才是二者指向同一块儿空间。

三:哪里有引用传递

引用传递在es6之前时完全没有的,在es6中,只有在模块化的时候的 export 和 import 是用的引用传递,代码如下:

export let a = 1;
setTimeout(()=>{a = 2;
},1000)

这个代码很简单,就是到处一个a的变量,并且在1秒后改变它的值,按照一般的想法来看,这个修改应该是不会影响到其他导入这个a的文件的,但是事实上,它是会修改的,代码如下:

import { a } from 'xxx'
console.log(a);   // 1
setTimeout(()=>{console.log(a)  // 2
},1500)

最后的结果如下,在这个文件里面改了a的值以后,也影响到了其他导入的文件
打印结果

四:作用

讲了这么多,那这个东西有什么用吗?这东西用处不大,就有一点需要注意,就是当多个敌方都引用一个的时候,一个地方修改了,其他地方都会修改,偶尔可能会导致一些bug出现

http://www.jinmujx.cn/news/76973.html

相关文章:

  • 网站开发视频教程百度云青岛seo网站排名
  • 自己做图片的网站链接关键词优化公司哪家强
  • 淘宝导购网站备案搜索引擎广告形式有
  • 用html做音乐网站新站优化案例
  • 怎么制作网站内容企业培训机构排名
  • 网站开发需要的学历武汉seo哪家好
  • 镇江建站营销策划书范文案例
  • 怎么做电子商务网站怎么做表格
  • dedecms做中英文网站天津seo排名
  • 怎样创建一个app重庆seo排名公司
  • 软件技术专升本对口专业seo网络营销技巧
  • wordpress积分交换广州seo外包多少钱
  • 商丘做网站哪家好百度搜索引擎网站
  • 陕西网站制作商郑州百度推广seo
  • 乐度网上购物网站建设方案海外新闻发布
  • id注册网站河南推广网站
  • wordpress 可视化插件seo推广教程视频
  • wordpress替换百度站内搜索网站交换链接的常见形式
  • 网页设计规范的主要内容简述seo对各类网站的作用
  • 西宁好的网站建设公司app排名优化公司
  • 网站公示如何做链接自己有货源怎么找客户
  • 做网站的合作案例91
  • 青岛微网站建设什么是优化师
  • 网页制作流程不包括西安seo顾问
  • 做网站设计要适配到手机端么短视频seo排名
  • 网站开发的团队有哪些seo网站营销推广公司
  • 无锡网站建设哪家公司比较好开封网站设计
  • 做网站付款流程短视频运营
  • 缪斯设计网站重庆企业免费建站
  • 餐饮网站开发背景站长工具a级