JS面向对象

1、对象和面向对象

1.1、对象字面量个JSON

var obj={aaa,111};
var json={"aaa":111};

对象字面量定义方法和json很像,只有一点不同,json的key要求必须加“”;

1.2、Json组成

Var json={"aaa":1,"bbb":2,"ccc":3,"ddd":4}

Json由{}和key:value以及逗号组成,三部分。(只有一个键值对key:value时,可以没有逗号)

1.3、For...in...

Var json={"aaa":1,"bbb":2,"ccc":3,"ddd":4}
for(var key in json){
    //key代表aaa,bbb.....等
//json[key]代表1,2,3....等
}

1.3、参数和值问题

一、简单类型数据做参数,函数内部对参数的修改不应影响外部变量
简单类型传数值。
二、复杂类型数据做参数,函数内部对参数的修改会应影响外部变量
复杂类型传地址。

2、数组高级API

2.1、API学习方法(四点)

调用者:谁调用的。 参数:有无,几个。
返回值:有无,什么类型。 功能:干什么用的。

3、Array的内置方法

3.1、判断数组和转换数组

Instanceof:是一个关键字。判断A是否是B类型。

布尔类型值=A Instanceof B;

Array.isArry()//html5中新增 判断是不是数组

布尔类型值=Array.isArry(变量);
调用者:Array           参数:变量(被检测值)     返回值:布尔类型    

toString()//把数组转换成字符串,每一项用分割

字符串  =  数组.toString();

valueOf() //返回数组对象本身

数组本身 = 数组.valueOf();

Join //根据每个字符把数组元素连起来变成字符串

字符串  =  数组.join(变量);

变量可以有可以没有。不写默认用逗号分隔,无缝连接用空字符串。

3.2、数组增删和换位置(原数组讲被修改)

push() //在数组最后面插入项,返回数组的长度

数组1改后的长度  =  数组1.push(元素1);

pop() //取出数组中的最后一项,返回最后一项

被删除的元素  =  数组1.pop();

unshift() //在数组最前面插入项,返回数组的长度

数组1改后的长度  =  数组1.unshift(元素1);

shift() //取出数组中的第一个元素,返回最后一项

被删除的元素  =  数组1.shift();

reverse()//翻转数组(原数组讲呗反转,返回值也是被反转后的数组)

反转后的数组  =  数组1.reverse();

sort(); //给数组排序,返回排序后的数组,

从小到大排序后的数组  =  数组1.sort(function(a,b){
                                  return a-b;
});

无参:按照数组元素的首字符对应的Unicode编码值从小到大排列数组元素。
带参:必须为函数(回调函数--callback)。函数中带有两个参数,代表数组中的 前后元素。如果计算后(a-b),返回值为负数,a排b前面。等于0不动。 返回值为正数,a排b后面。

4、了解方法

concat() //把参数拼接到当前 数组

新数组 = 数组1.concat(数组2);

slice() //从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始

新数组 = 数组1.slice(索引1,索引2);

splice()//删除或替换当前数组的某些项目,参数start,deleteCount,options(要替换的项目)

新数组 = 数组1.splice(起始索引,结束索引,替换内容);

indexOf()、IastIn dexOf() //如果没有找到返回-1

索引值 = 数组.indexOf/lastIndexOf(数组中的元素);

迭代方法 不会修改原数组
every()、filter()、forEach()、map()、some()

数组/boolean/无 = 数组.every/filter/forEach/map/some(
                            function(element,index,arr){
                                            程序和返回值;                       
   }
);
//对数组中每一项运行以下函数,如果都返回true,every返回true,如果有一项返回false,则停止遍历 every返回false;不写默认返回false
array.every(function(item,index,arr) {
})
//对数组中每一项运行以下函数,该函数返回结果是true的项组成的新数组
var arr = array.filter(function(item,index,arr) {
});
console.log(arr);  
//遍历数组
array.forEach(function(item,index,arr){
});
//对数组中每一项运行以下函数,返回该函数的结果组成的新数组
var arr = array.map(function(item,index,arr) {
    return "\"" + item + "\"";
})
//对数组中每一项运行以下函数,如果该函数对某一项返回true,则some返回true
var b =  array.some(function(item,index,arr) {
    if (item == "ww") {
        return true;
    }
    return false;
});

清空数组

var array = [1,2,3,4,5,6];
array.splice(0,array.length); //删除数组中所有项目 
array.length = 0; //length属性可以赋值,其它语言中length是只读
array = [];  //推荐

Date/Math简单数据类型

1、构造函数的原理

function  Num(aaa){
this["[[PrimitiveValue]]"] = num/1;
return  aaa/1;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • title: js面向对象date: 2017年8月17日 18:58:05updated: 2017年8月27日...
    lu900618阅读 3,638评论 0 2
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,455评论 0 4
  • 昨晚的惠灵顿,吹了一夜的风。 一路开车南下,早有所闻惠灵顿是出了名的风城,在新闻里看见当地人为了...
    文刀佑佑阅读 4,088评论 0 3
  • 四、谁说美国不惩罚学生 经过了第一天的失败课堂管理,我立即向羊小姐讨教,怎样才能镇住这帮熊孩子。...
    Gogolearning阅读 3,405评论 0 2