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

JavaScript 权威指南学习记录

2016-01-28 00:00 302 查看
2016.1.28

3.1.3JavaScript中的算术运算

NaN(Not a Number)无法通过x==NaN来判断变量x是否是NaN,相反,应当使用x!=x来判断,当且仅当x为NaN的时候,表达式的结果才是true。

isFinite(),在参数不是NaN、Infinity或-Infinity的时候返回true。

负零值与正零值相等,除了作为除数外。

3.3布尔值

下面这些值会被转换成false:underfined、null、0、-0、NaN、""//空字符串

3.6包装对象

var s ="test";
x.len=4;
var t= x.len;
console.log(t);//返回undefined


第二行代码创建一个临时字符串对象,并给其len属性赋值为4,随即销毁这个对象。最后尝试读取len值,这个属性值自然不存在。存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象

var s ="test";
var x =new String(s);
x.len=4;
var t= x.len;
console.log(t);//返回undefined

console.log(x==s);//返回true,如果===则返回false

3.7不可变得原始值和可变的对象引用

对象的比较与值的比较是不相同的:即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素完成相等的两个数组也不相等。

3.8对象转换为原始值

对象到布尔值:所有的对象(包括数值和函数)都转换为true。

3.10.1函数作用域和声明提前

JavaScript中使用函数作用域,变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。

JavaScript函数里声明的所有变量都被"提前"至函数体的顶部。

var scope ="global";
function f(){
console.log(scope);//输出"undefined"
var scope="local";//变量在这个赋初始值,但变量本身在函数体内任何地方均是有定义的
console.log(scope);//输出"local"
}


全局变量和局部变量

var i =0;//全局变量

n=0;//全局变量

function demo(){

var a =0;//局部变量

b=0;//全局变量

}

2016/2/4

8.7函数属性、方法和构造函数

8.7.1length属性

在函数的体内,可以用arguments.length来表示传入函数的实参的个数,即实参的真实个数

而使用arguments.callee.lengh则表示期望的实参个数。

function ra(a,b){
this.a=a;
this.b=b;
var h=arguments.callee.length;
var i=arguments.length;
console.log(h);//h的值为2
console.log(i);//i的值为1
}
ra(1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: