js 易考知识点总结

来源:互联网 发布:淘宝女装模板 编辑:程序博客网 时间:2024/05/16 08:50

1. js面向对象编程(参考:
http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html)
定义类(class)的方法:
(1)使用构造函数,内部用this关键字指代实例对象。
 function Cat() {
    this.name = “大毛”;
  }
生成实例的时候,使用new关键字。
  var cat1 = new Cat();
  alert(cat1.name); // 大毛
类的属性和方法,还可以定义在构造函数的prototype对象之上。
(2)Object.create(); 根据原型创建一个新的对象;
原型对象:
var Cat = {
    name: “大毛”,
    makeSound: function(){ alert(“喵喵喵”); }
  };
然后,直接用Object.create()生成实例,不需要用到new。
  var cat1 = Object.create(Cat);
  alert(cat1.name); // 大毛
  cat1.makeSound(); // 喵喵喵
2. typeof xxx (参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof)
Undefined “undefined”
Null “object”
Boolean “boolean”
Number “number”
String “string”
Symbol (ECMAScript 6 新增) “symbol”
而且函数的类型是”function” , 其他类型都返回”object”.
(1)null 类型typeof就会返回”object”是特例。
var x = null;typeof x;返回”object”
(2)
typeof Math.LN2 === ‘number’; //表示ln(2)
typeof Infinity === ‘number’; //这个属性表示无穷大,
//比如:Math.pow(100,1000);就会返回Infinity.
typeof NaN === ‘number’; // 注意NaN也是返回’number’
typeof “” === ‘string’;
typeof undefined === ‘undefined’;
typeof {a:1} === ‘object’;
typeof [1, 2, 4] === ‘object’; // 注意没有数组类型,数组只是一个Array对象,所以typeof [] 返回”object”.
typeof Math.sin === ‘function’;
3. join();
数组的join方法,如果没有参数,默认各个元素以逗号分隔,如果参数是”空字符串,则各个元素以空字符串连接。
eg: var a = [‘x’,’y’,’z’]; var result = a.join() ; //result变为”x,y,z”;
eg: var a = [‘x’,’y’,’z’]; var result = a.join(”) ; //result变为”xyz”;
4. array的forEach/map方法区分
1).相同点:都是可以接受一个有三个参数elem , index ,array 的匿名函数;
2).不同点:
array.forEach是对数组的每个元素做处理,相当于for循环:
var x = [1,2,3];
var sum = 0;
x.forEach(function(elem){
sum += elem;
});
map方法是对数组每个元素做处理返回,然后返回一个新的数组。原数组不改变。
var a = [2,4,8,6];
var arr = a.map(function(elem){
return elem/2;
});
//arr变成[1,2,4,3]
5. 数组方法:find()/findIndex()/filter()
find():
function isBigEnough(element) {
return element >= 15;
}
[12, 5, 8, 130, 44].find(isBigEnough); // 130
返回找到的第一个回掉函数返回值为真的元素。没有满足的返回undefined,只会返回符合要求的第一个元素。
findIndex():
返回找到的第一个回调函数返回值为真的元素的index,未找到返回-1 。
function isBigEnough(element) {
return element >= 15;
}
[12, 5, 8, 130, 44].find(isBigEnough); // 3
filter():
返回满足回调函数的元素,组成新的数组返回。
function isBigEnough(element) {
return element >= 15;
}
var result = [12, 5, 8, 130, 44].filter(isBigEnough);
//结果是[130,44];

原创粉丝点击