阅读笔记系列将后续继续更新,文中代码及描述大多出自《avaScript权威指南》一书,部分为自我总结。笔记主要记载了,一些知识重点及一些容易被忽略的知识点。
按照惯例,构造函数均以大写字母开始
function Point(x,y){//按照惯例,构造函数均以大写字母开始
this.x = x; //关键字this指代初始化的实例
this.y = y; //将函数参数储存为对象的属性
} //不需要return
数组sort()方法排序
<!--sort方法传入一个比较函数,按照id大小排序。-->
<!--负数:a在c前,正数:a和c换位-->
var arr_obj = [ {id:3,name:'abc'},{id:2,name:'abc'}];
arr_obj.sort(
function(a,c){
return a.id - c.id;
}
);
数组forEach()方法排序
<!--forEach()无法在所有元素都传递给调用的函数之前终止遍历。-->
<!--也就是所,没有像for循环中使用的break语句-->
<!--如果要提前终止,必须把forEach方法放在一个try块中-->
function(a,f,t){
try{
a.forEach(f,t);
}catch(e){
if(e == foreach.break) return;
else throw e;
}
}
foreach.break = new Error("StopIteration");
对运算符 ++ 的理解
<!--
++ 的自增不是在表达式计算完毕后执行的,而是在返回原有值后立刻+1.
-->
var a = 1;
var b = (a++) + a;
console.log(b); // b = 3
var a = 1;
var b = a + (a++);
console.log(b); // b = 2 ps.不同语言结果有可能不同 比如PHP
<!--
a op= b ; a = a op b; op代表运算符;第一个表达式 a只计算了一次,第二个表达式,a计算了两次。
-->
var i =1;var data=[1,2,3];
data[i++]*=2;
console.log(data); //[1, 4, 3]
var i =1;var data=[1,2,3];
data[i++]=data[i++]*2;
console.log(data); //[1, 6, 3]
NaN 和其他任何值都不相等,包括他自己
x !== x //判断x是否为NaN,只有x为NaN,这个表达式才为true
js常用术语
1.直接量 2.存取器属性