您的位置:首页 > Web前端 > JavaScript

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

2016-01-13 17:21 405 查看

复制变量值差别

普通复制

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: