MDN JavaScript重温笔记

阅读地址

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide

对象

  • 有时也被叫作关联数组:因为每个属性都有一个用于访问它的字符串值

  • 属性访问方式

  1. obj.attr
  2. obj['attr']类似数组访问方式也行
  • 对象中未赋值的属性的值为undefined(而不是null)。

  • **一个属性的名称如果不是一个有效的 JavaScript 标识符(例如,一个由空格或连字符,或者以数字开头的属性名),就只能通过方括号标记访问

  • 遍历对象的所有属性三种方式(>=ECMAScript 5,ECMAScript 5 之前没有原生方法可以遍历)

  1. for...in 该方法依次访问一个对象及其原型链中所有可枚举的属性。
  2. Object.keys(o) 该方法返回一个对象 o 自身包含(不包括原型中)的所有属性的名称的数组。
  3. Object.getOwnPropertyNames(o) 该方法返回一个数组,它包含了对象 o 所有拥有的属性(无论是否可枚举)的名称。
  • 新建对象3个方法
  1. 对象初始化器
  2. 构造函数
  3. Object.create方法
  • 为对象类型定义属性
Car.prototype.color = null;
car1.color = "black";
  • 定义方法
objectName.methodname = function_name;
var myObj = {
  myMethod: function(params) {
    // ...do something
  }
}
  • getters和setters
var o = {
  a: 7,
  get b() { 
    return this.a + 1;
  },
  set c(x) {
    this.a = x / 2
  }
}
  • delete可以删除对象的非继承来的属性 如果一个全局变量不是用 var 关键字声明的话,你也可以用 delete 删除它:
g = 17;
delete g;

数组

  • 新建数组的3个方法
  1. 3个方法举例
var arr = new Array(element0, element1, ..., elementN);
var arr = Array(elechuangjment0, element1, ..., elementN);
var arr = [element0, element1, ..., elementN];
// 译者注: var arr=[4] 和 var arr=new Array(4)是不等效的,
// 后者4指数组长度,所以使用字面值(literal)的方式应该不仅仅是便捷,同时也不易踩坑
  1. 如果元素是数字,需要用 var arr = [42] 不能使用 var arr = Array(42)
  2. var arr = Array(9.3) ,这样做报RangeError错误,而arr[9.3] = 'some string'会将9.3作为数组对象的属性(在JavaScript中,数组也是对象)
  • 遍历数组的3个方法
  1. for..in(不保证按照索引顺序返回且会将数组属性也遍历出来,如果对返回索引顺序有要求,不建议用)
  2. forEach()方法
  3. for循环
  • 数组赋值的3个方法
  1. emp[0] = "Casey Jones"
  2. var myArray = new Array("Hello", myVar, 3.14159)
  • delete可以删除不是继承来的属性

  • 数组对象具有的方法

  • concat() 连接两个数组并返回一个新的数组。

  • join(deliminator = ',') 将数组的所有元素连接成一个字符串。

  • push() 在数组末尾添加一个或多个元素,并返回数组操作后的长度。

  • pop() 从数组移出最后一个元素,并返回该元素。

  • shift() 从数组移出第一个元素,并返回该元素。

  • unshift() 在数组开头添加一个或多个元素,并返回数组的新长度。

  • slice(start_index, upto_index) 从数组提取一个片段,并作为一个新数组返回。

  • splice(index, count_to_remove, addElement1, addElement2, ...)从数组移出一些元素,(可选)并替换它们。

  • reverse() 颠倒数组元素的顺序:第一个变成最后一个,最后一个变成第一个。

  • sort() 给数组元素排序。

  • indexOf(searchElement[, fromIndex]) 在数组中搜索searchElement 并返回第一个匹配的索引。

  • lastIndexOf(searchElement[, fromIndex]) 和 indexOf差不多,但是是从结尾开始,并且是反向搜索。

  • forEach(callback[, thisObject]) 在数组每个元素项上执行callback。

  • map(callback[, thisObject]) 在数组的每个单元项上执行callback函数,并把返回包含回调函数返回值的新数组。》译者注:也就是遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组。

  • filter(callback[, thisObject]) 返回一个包含所有在回调函数上返回为true的元素的新数组。》译者注:callback在这里担任的是过滤器的角色,当元素符合条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素。

  • every(callback[, thisObject]) 当数组中_全部元素_在callback上被返回true时就返回true。》译者注:同上,every其实类似filter,只不过它的功能是判断是不是数组中的所有元素都符合条件,并且返回的是bool值。

  • some(callback[, thisObject]) 只要数组中有_一项_在callback上被返回true,就返回true。

  • reduce(callback[, initialValue]) 对数组每项进行操作,比如从1加到100最后结果是多少

var a = [1, 2, 3, ..., 100];
var total = a.reduce(function(first, second) { return first + second; }, 0); //0为初始化结果
console.log(total) // Prints 60
  • 数组和正则表达式
    当一个数组是一个正则表达式对一个字符串的匹配结果,这个数组返回属性和元素来提供正则匹配的信息。 RegExp.exec(), String.match() String.split 的返回值是一个数组。 使用数组和正则表达式的的更多信息, 请看 Regular Expressions.

文本格式化

  • 字符串对象
  1. String 对象是对原始string类型的封装,可以使用很多对象方法
  2. 正则表达式
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

面向对象编程

转载于:https://my.oschina.net/kmwzjs/blog/747422

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值