摘要:以我的理解简单非严格模式下,函数形参和绑定,二者无论谁修改,都会互相影响。严格模式下,参数的值不会随对象的值的改变而变化。有意思的是在下,如果使用函数默认值,也会出现类似严格模式的效果。原文首发于我的博客
下面这一题来自 javascript-puzzlers
function sidEffecting(ary) { ary[0] = ary[2] } function bar(a,b,c) { c = 10 sidEffecting(arguments) return a + b + c } bar(1,1,1)
上述的结果是什么?答案是21,当然这是非严格模式,如果严格模式,那么答案为12。
以我的理解简单非严格模式下,函数形参和arguments绑定,二者无论谁修改,都会互相影响。
但是,严格模式下,任何在函数体内的修改,或形参,或 arguments 只会影响自己,不会影响对方,可以修改下列代码试一试。
function test(a, b, c) { // "use strict" var a = 4 console.log(a + b + c) // arguments[0] = 4 console.log(arguments[0] + arguments[1] + arguments[2]) } test(1,2,3)
严格模式下,参数的值不会随 arguments 对象的值的改变而变化。在正常模式下,对于第一个参数是 arg 的函数,对 arg 赋值时会同时赋值给 arguments[0],反之亦然(除非没有参数,或者 arguments[0] 被删除)。严格模式下,函数的 arguments 对象会保存函数被调用时的原始参数。arguments[i] 的值不会随与之相应的参数的值的改变而变化,同名参数的值也不会随与之相应的 arguments[i] 的值的改变而变化。
有意思的是在ES6下,如果使用函数默认值,也会出现类似严格模式的效果。
function test(a, b, c = 3) { var a = 4 console.log(a + b + c) // arguments[0] = 4 console.log(arguments[0] + arguments[1] + arguments[2]) } test(1,2,3)
花了半个小时,发现自己以前对严格模式理解还有不足,以后这道题作为面试题还不错。
原文首发于我的github博客:https://github.com/isLishude/...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88723.html
摘要:最近在做的后台管理页面,其中用到了来选择日期时间,但是在将数据传回后台的过程中遇到了一些令人头疼的问题,在此记录一下解决方案,以免日后再次遇到。 最近在做vue+element-ui的后台管理页面,其中用到了DateTimePicker来选择日期时间,但是在将数据传回后台的过程中遇到了一些令人头疼的问题,在此记录一下解决方案,以免日后再次遇到。 showImg(https://segm...
摘要:以下简称是语言的下一代标准。因为当前版本的是在年发布的,所以又称。用它所声明的变量,只在命令所在的代码块内有效。的继承机制,实质是先创造父类的实例对象所以必须先调用方法,然后再用子类的构造函数修改。 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。 也就是说,ES6就是E...
摘要:以下简称是语言的下一代标准。的继承机制,实质是先创造父类的实例对象所以必须先调用方法,然后再用子类的构造函数修改。总结以上就是最常用的一些语法,可以说这的语法,在的日常使用中占了追加十分钟好的吗分钟掌握核心内容下 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。 也就是说...
摘要:的对象只是指向内存中某个位置的指针。所以在拷贝中的对象时,要根据实际情况做一些考虑。结论中最好的对象拷贝的算法,很大程度上取决于其使用环境,以及你需要拷贝的对象类型。 翻译:疯狂的技术宅原文:https://smalldata.tech/blog/2... 本文首发微信公众号:前端先锋欢迎关注,每天都给你推送新鲜的前端技术文章 在开始之前,我先普及一些基础知识。Javascrip...
摘要:对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。和差不多,想法一样,但是和相比,搜索到的有价值结果不是很多,没有的理想,还有一些来着百度知道。 对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。阅读别人的代码远比自己写代码要难。Linus 是Linux的早期作者,一句影响深远的话是Read The Fucking Source Code(RTF...
阅读 2953·2021-11-22 12:06
阅读 575·2021-09-03 10:29
阅读 6444·2021-09-02 09:52
阅读 1995·2019-08-30 15:52
阅读 3380·2019-08-29 16:39
阅读 1166·2019-08-29 15:35
阅读 2043·2019-08-29 15:17
阅读 1368·2019-08-29 11:17