资讯专栏INFORMATION COLUMN

题解JavaScript(持续更新)

DC_er / 3154人阅读

摘要:多个等号连续赋值第一次理解的时候,以为是连续赋值的问题。则是直接声明为了全局变量。这是因为默认附加到了全局对象上。以上是常见的题目来考察的细节问题,我会不定期的收集,来进行更新,欢迎互相指教

1. 多个等号连续赋值

(function(){
    var x=y=1;
})();
console.log(typeof x);
console.log(typeof y);

第一次理解的时候,以为是连续赋值的问题。但是实际上这不是重点,重点在于函数中x,y都存在,但是在输出的时候,x是函数内变量,在函数外无法读取。y则是直接声明为了全局变量。故。第一个输出为undefine。第二个输出为number。
要理解这段代码可以试着敲入

(function(){
    y=1;
})();
console.log(typeof y);

会发现,并没有给y使用声明变量的var,但是这段代码可以运行,输出为number。这是因为y默认附加到了全局对象上。多个等号连续赋值的时候,var声明的效果仅局限于最开始的那一个变量。

2. prototype相关、原型链

var fn=function(){}
fn.prototype={
  value:1,
  getValue:function(){
    return this.value;
  },
  setValue:function(v){
    this.value=v;
  }
};
var a=new fn();
var b=new fn();
a.setValue(2);
console.log(b.getValue());
delete a.value;
console.log(a.getValue());

这段代码的输出是1,1。我来根据步骤,解释下原因。

1.程序声明了变量a,b和函数fn。a,b此时为undefined,fn为一段函数代码。
2.为fn的prototype属性赋值一个对象object。其中包含了value,getValue,setValue.
3.a被赋值,a的__proto__指向的是fn的prototype,a并没有value属性
4.b被赋值,b的__proto__指向的是fn的prototype,b并没有value属性
5.a.setValue(2)为a增加了一个value属性,该值为2.
6.b.getValue()时,由于b并没有value属性,于是顺着__proto__向上查找,找到的value为1。
7.同第6步,删除了a中的value属性时,也是顺着__proto__向上查找,找到的value为1。

以上是常见的题目来考察JS的细节问题,我会不定期的收集,来进行更新,欢迎互相指教

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85978.html

相关文章

  • LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

    摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...

    tain335 评论0 收藏0
  • LeetCode - 007 - 整数反转(reverse-integer)

    摘要:详细介绍将其他值转成数字值。此方法更改数组的长度。详细介绍解题思路首先,将传入的数字转换成字符串,并分割成数组。本许可协议授权之外的使用权限可以从处获得。 Create by jsliang on 2019-05-19 09:42:39 Recently revised in 2019-05-19 16:08:24 Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 小伙伴们...

    venmos 评论0 收藏0
  • LeetCode刷题题解:495. 提莫攻击

    摘要:正式地讲,提莫在发起发起攻击意味着艾希在时间区间含和处于中毒状态。示例输入输出解释提莫攻击对艾希的影响如下第秒,提莫攻击艾希并使其立即中毒。第秒,提莫再次攻击艾希,艾希中毒状态又持续秒,即第秒和第秒。 ...

    buildupchao 评论0 收藏0
  • LeetCode 攻略 - 2019 年 8 月上半月汇总(109 题攻略)

    摘要:每天会折腾一道及以上题目,并将其解题思路记录成文章,发布到和微信公众号上。三汇总返回目录在月日月日这半个月中,做了汇总了数组知识点。或者拉到本文最下面,添加的微信等会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。 LeetCode 汇总 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...

    tracy 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月上半月汇总(55 题攻略)

    摘要:微信公众号记录截图记录截图目前关于这块算法与数据结构的安排前。已攻略返回目录目前已攻略篇文章。会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。本许可协议授权之外的使用权限可以从处获得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目录 不...

    warmcheng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<