当前位置:   article > 正文

《JS高级程序设计》读书笔记_js高级程序设计读书笔记

js高级程序设计读书笔记

复制变量值差别

  1. 普通复制
var num1 = 5;
var num2 = num1;
num1 = 6;
console.log(num1);//6
console.log(num2);//5
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述
这里写图片描述
2. 引用复制

var obj1 = new Object();
var obj2 = obj1 ;
obj1.name = 'Liz';
console.log(obj2.name);//Liz
  • 1
  • 2
  • 3
  • 4

这里写图片描述
这里写图片描述


没有块级作用域

Javascript不会像C、C++、Java一样由花括号来封闭代码块。如下图,在if中定义的color会被添加到全局环境,for循环液一样。

    if (true) {
        var color = "blue";
    }
    console.log(color);
  • 1
  • 2
  • 3
  • 4

这里写图片描述

JS查询标识符

var color = "blue";
    function getColor (argument) {
        var color = "rad"
        return color;
    }
    console.log(getColor());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这里写图片描述
这里写图片描述
JS先查询局部变量再查询
如果在局部环境中搜索到同名标识符,则搜索会停止。


转换方法

所有对象都具有toLocaleString()、toString()、valueof()方法。
toString()、valueof()方法返回值相同,即每个值的字符串形式拼接形成一个以逗号分隔的字符串。

操作方法

·slice()
·splic()

没有重载

函数内部属性

函数内有两个特殊对象arguments(除了包含传入函数的所有参数还有一个属性callee指向拥有这个arguments对象的函数)和this。

arguments对象

function factorial (num) {
    if (num<=1) {
        return 1;
    }else{
        return num*factorial(num-1);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
function factorial (num) {
    if (num<=1) {
        return 1;
    }else{
        return num*arguments.callee(num-1);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

虽然两种写法都实现了递归,并且都非常简单,但在耦合性上,第二种写法要好多了。

this对象

this是函数在执行时所处的作用域(当在网页是全局作用域中调用函数时,this对象引用的就是window)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/871272
推荐阅读
相关标签
  

闽ICP备14008679号