本文章将会用10分钟时间无死角的解析JS的传参方式,希望能对您有所帮助。
先说结论,JS只有值传递,没有引用传递。这句话可能会颠覆一些小伙伴的认知,但请先别急,马上你将会赞同我。
值传递是什么?
在函数传参的过程中,实参将数值传递给形参。
EXP:
function fun(x) {
console.log(x)
}
let a = 123
fun(a)
1
2
3
4
5
6
1
2
3
4
5
6
运行结果
在fun(a)这个函数调用语句中,实参为a、形参为x,从输出结果来看,可以证明实参a将数值123传给了形参x。
疑问:是否可以通过形参x数值的修改,来改变实参a的值?
EXP:
function fun(x) {
x = 666
}
let a = 123
fun(a)
console.log(a)
1
2
3
4
5
6
7
1
2
3
4
5
6
7
运行结果:
可以看到实参a的数值并没有因为x的改变而发生变化。是因为值传递的特点决定,咱们接着往下看。
2、值传递的特点:
单向传递,只能将实参的数值传递给形参,不能将形参的值传递给实参。
EXP:
我们希望编写一个交换两个变量数值的函数swap。
1. css和div 开发的优势?第一、利于搜索引擎蜘蛛爬行
根据总结和经验,div+css布局有利于蜘蛛的爬行,拿html的table布局和div+css布局的网页来做对比,很显然table的字节大于div+css的,字节小就有益于搜索引擎蜘蛛下载页面所用的时间,而且也有益于蜘蛛爬行到网站深处。
第二、易于修改
在一般情况下,div+css布局的网站,都是将html页面和css文件分开的,div+css的特点就是能将网页的内容和表现形式分离,所以,假如你要修改网站整站布局的话,一般只需要修改css文件里的的个别属性即可,而这种特点是table不具备的。
第三、减少网页加载时间
前面就提到过,div+css是将css文件和html文件分开的,当用户点击网站时,是在同时下载css文件和html文件,所以可以提高打开网页的速度,而table是必须以标签开始到结束才能显示网页内容,另外,div的html文件则是变加载边显示,这样是不是提高了用户体验?Google已经将网页加载速度列入了排名的因素,尽管这个因素只能影响排名的一小部分,甚至可以忽略,但是有利于seo的办法,我们为什么不用?
说完了优点那么现在就来说说缺点:
第一、开发技术高 众所周知,div+css要兼容各种浏览器,这样增加了div+css开发的难度。
第二、开发时间长 div+css布局相对于table布局来说,div+css的耗费时间要比table布局的时间长很多,另外考虑到浏览器兼容的问题,各种浏览器间的测试也是一个费时的事情。
第三、开发成本高 就上两点所说,高技术和长时间决定了他的成本。
2. 谈谈页面间的参数传递有哪些方式 ?
Session、Application、Cookies、<input type="hidden">标签