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

js个人笔记

2015-08-21 15:46 621 查看
基础

1,逻辑运算符优先级 ’&&‘ > ‘||’。

2,==只关心内容不关心数据类型,===都关注,但是NaN == NaN是false的,boolean的true和false是存储为1和0的,true==“true”是false的true==1是true的。

3,强制转换为Number(字符串/boolean)或者parseInt(),Number(小数点)会把小数去掉,Number(数字字母)解析为NaN,Number(空格)解析为0;
parseint(小数点)解析不去掉小数,parsetInt(数字字母)会解析到第一个非数字字符为止。

4,boolean类型false: " ",Null,NaN,underfined,0,false;其余均为true。

5,隐式转换:Number:可以使用+ - * /进行转换,a = +a; 字符串:a = a + ""; boolean: a = !!a;

6,数据类型:简单数据类型:string number Boolean Null undefined 复杂数据类型:object (其中特殊对象:array function)。简单数据类型(又称值类型)存放在栈中,复杂数据类型(又称引用类型)存放在堆中。例如:var b = new object(); 在堆的的内存中存放new object()对象,该内存地址为ox118,则栈中存放var b = ox118,使得b指向该对象。数组存放同理。js数组不同于其他语言,数组不定义长度无穷大,数据类型不限制。

7,函数:用来封装经常使用的代码块。用return返回值。

混淆点

1,typeof,instanceof

typeof:
返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回原始类型或者函数,如下几个结果:
number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。
instanceof: 判断一个变量是否是某对象的实例。eg:var a=new Array(); alert(a instanceof Array)

2,call apply
function Animal(){

this.name = "Animal";

this.showName = function(){

alert(this.name);

}

}

function Cat(){

this.name = "Cat";

}

var animal = new Animal();

var cat = new Cat();

//通过call或apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用了。

//输入结果为"Cat"

animal.showName.call(cat,",");

call 的意思是把 animal 的方法放到cat上执行,原来cat是没有showName() 方法,现在是把animal 的showName()方法放到 cat上来执行,所以this.name 应该是 Cat

3,map
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: