1.基于对象:封装,继承,没有多态
1.1 封装。属性私有化,通过getter/setter进行访问
1.2 继承:子类继承父类,就会获取父类的属性和方法
1.2.1 第一种方式:原型链方式prototype
原型对象:就是一个普通对象,存放所有实例共享的属性和方法。
指向了new 后面的构造,附在this上
Student.prototype = new Person();
子类.prototype = new 父类();
//对象调用先找对象属性,如果没有再去原型对象里去找
1.2.2 用call/apply方法修改 作用域中的this
父类名.call(新对象,参数值列表)
调用父类构造,修改this = 新对象
Person.call(this,...)
2.函数的调用:
值传递与对象传递:
值传递,传递的是值的副本
对象传递,传递的是地址的副本
值类型:number,string,boolean。
3.字符串常用方法:
1. charAt(index); 获取下标处字符
2. charCodeAt(index);获取下标处字符的十进制数,用于ASCII/Unicode码
3. concat(str);拼接字符,相当于字符串的"+"
所有的字符串方法不会修改本身,成成一个新的字符串
4. indexOf(str);str第一次出现的位置下标
5. lastIndexOf(str);从后面开始第一次出现下标位置
indexOf(str);如果不包含str返回-1
6. match(regex/str);匹配正则字符串,返回数组。匹配不上返回null
7. replace(oldstr/regex,newstr);用新字符串替换正则或旧字符串。只换一次,所以正则要使用 //g g全局替换
8. search(str/regex);获取第一次匹配的下标。类似indexOf();匹配不到返回-1;
9. split(str);按照字符串 拆分成数组。参照数组的join(str)
",a,b,c,".split("'") === ["","a","b","c",""]
10.
1.数组slice(start,end); splic(formindex,length,...)
2.subString(fromindex,toindex);fromindex开始,dao toindex但是不包含
3.substr(fromindex,length); fromindex开始 截取length个字符
11. toLowerCase/toUpperCase:大小写转换
12. trim() 去除前后空格
1.Math 算术工具类
补:动态的的添加属性,对象属性是属于对象的。每个人(对象)都有名字,地球是属性人类
1. Math.abs(n); n的绝对值
2. Math.ceil(n);数轴取右
3. Math.floor(n);数轴取左
1. Math.floor(n + 0.5);四舍五入
4. Math.round(n);n四舍五入
5. Math.random(); 随机小数,范围[0,1)
6. Math.pow(n,m);n的m次幂
2.Data日期类型:
有年月日时分秒毫秒星期等属性:
1. getFullYear();//获取年
2. getMonth();//月 0-11
3. getDate();//日
4. getDay();//星期0-6 星期日是0
5. getHours();//时
6. getMinutes();//分
7. getSeconde();//秒
8. getMilliseconds();//毫秒
9. getTime();//从1970年1月1日凌晨0:0:0:0到现在的毫秒数
3.DOM编程核心就是获取元素,操作元素
1. document.getElementById("id"); 根据id获取元素
2. document.getElementsByName("name"); 根据name获取元素 数组(nodelist)
1. 有的时候需要[0]; !!!!!!!
3. document.getElementsByTagName("h1"); 根据标签获取元素 数组(hmtlcollection)
4. document.getElementsByClassName("类名");根据类名获取 元素 数组