阅读地址
对象
-
有时也被叫作关联数组:因为每个属性都有一个用于访问它的字符串值
-
属性访问方式
obj.attr
obj['attr']
类似数组访问方式也行
-
对象中未赋值的属性的值为undefined(而不是null)。
-
**一个属性的名称如果不是一个有效的 JavaScript 标识符(例如,一个由空格或连字符,或者以数字开头的属性名),就只能通过方括号标记访问
-
遍历对象的所有属性三种方式(>=
ECMAScript 5
,ECMAScript 5 之前没有原生方法可以遍历)
for...in
该方法依次访问一个对象及其原型链中所有可枚举的属性。Object.keys(o)
该方法返回一个对象 o 自身包含(不包括原型中)的所有属性的名称的数组。Object.getOwnPropertyNames(o)
该方法返回一个数组,它包含了对象 o 所有拥有的属性(无论是否可枚举)的名称。
- 新建对象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个方法
- 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)的方式应该不仅仅是便捷,同时也不易踩坑
- 如果元素是数字,需要用
var arr = [42]
不能使用var arr = Array(42)
var arr = Array(9.3)
,这样做报RangeErro
r错误,而arr[9.3] = 'some string'
会将9.3作为数组对象的属性(在JavaScript中,数组也是对象)
- 遍历数组的3个方法
- for..in(不保证按照索引顺序返回且会将数组属性也遍历出来,如果对返回索引顺序有要求,不建议用)
- forEach()方法
- for循环
- 数组赋值的3个方法
emp[0] = "Casey Jones"
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
- 数组和正则表达式 当一个数组是一个正则表达式对一个字符串的匹配结果,这个数组返回属性和元素来提供正则匹配的信息。 , 和 的返回值是一个数组。 使用数组和正则表达式的的更多信息, 请看 Regular Expressions.
文本格式化
- 字符串对象
- String 对象是对原始string类型的封装,可以使用很多对象方法
面向对象编程
- 封装:
- 继承:
- 多态