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

复制变量值差别

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

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

var obj1 = new Object();
var obj2 = obj1 ;
obj1.name = 'Liz';
console.log(obj2.name);//Liz

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


没有块级作用域

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

    if (true) {
        var color = "blue";
    }
    console.log(color);

这里写图片描述

JS查询标识符

var color = "blue";
    function getColor (argument) {
        var color = "rad"
        return color;
    }
    console.log(getColor());

这里写图片描述
这里写图片描述
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);
    }
}
function factorial (num) {
    if (num<=1) {
        return 1;
    }else{
        return num*arguments.callee(num-1);
    }
}

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

this对象

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值