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
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
相关文章推荐
- Winform中调用js函数
- json-server模拟服务器数据
- js到服务器端的URL中文乱码问题
- JSON 解析器。JSON.stringify和JSON.parse
- "Could not load file or assembly \u0027Newtonsoft.Json, Version=4.5.0.0
- JS给元素增加className
- 21、javascript 基础
- json 数组操作
- js 全选
- coco2d js 修改预加载,使用自定义图片
- Knockoutjs快速入门(经典)
- js获得子页面元素
- javascript判断NaN
- js实现温度计时间样式代码分享
- js实现select跳转菜单新窗口效果代码分享(超简单)
- 《JavaScript高级程序设计》读书笔记——窗口大小
- fastjson的部分使用
- 日常问题记录--getJSON函数不执行回调函数的原因总结
- JS打字效果的动态菜单代码分享
- js new一个函数和直接调用函数的区别