由于这两周在开发H5推广模板,所以结合实战在学习js基础。由于js知识点比较零碎,故总结一些零碎的知识点。
主要学习内容:
- ECMAScript 基础
- js对象基础
- 继承
ECMAScript 基础
语法:
- 区分大小写
- 变量弱类型
- 每行结尾;可有可无
- 注释和java和PHP相同
ECMAScript五种原始类型
Undefined
变量未初始化时,该变量的默认值为Undefined;Null
Undefined是从Null中派生出来的; null == undefined //trueBoolean
只要是对象,Boolean返回的就是true。0和null值默认为falseNumber
toString()方法可分为默认模式和基模式;
如:toString(16);String
使用 typeof var 可得var的变量类型
强制类型转换:在解决null这个特殊值时,比较有趣。
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work,causes an error
运算符
js中的浮点数乘法运算都是先扩大为整数再运算,而后除以相应的倍数,故在乘法的结果中也会出现无限循环小数。保险做法为先将运算数扩大百倍再将结果缩小百倍。
Function类
无重载(利用arguments可实现重载机制,arguments为参数可变数组)
函数也可作为参数传递
js对象基础
对象的废除
- 当再没有对对象的引用时,该对象被废除。
- 当强制将对象的引用设为null值时,可以强制性废除对象。
对象类型
本地对象(独立于宿主环境的ECMAScript实现提供的对象)
Array:
join()实现链接数组元素
push() :数组尾部增加一个元素,可传递多个元素,但总是习惯与传递一个参数且使用多次。
pop():数组尾部删除一个元素。
shift():删除数组中的第一个位置元素。
unshift:增加一个元素到第一个位置。Date:存在Date类,且有多种表现格式。
-
内置对象(由ECMAScript实现提供的,独立于宿主环境的所有对象,在ECMAScript程序开始执行时开始出现;每个内置对象都是本地对象;)
- Global:根本不存在。
默认的方法为global对象的方法,如isNaN();
encodeURI()
encodeURIComponent():想较于encodeURI,将特殊字符全部转化。
decodeURI()
decodeURIComponent():输出上面两种URI编码。
escape()
unescape():尽量避免使用,只能对ASCII正确编码。不能对Unicode全部编码。
eval():解释js的程序,慎重使用,很可能代码注入。Math:提供各种处理函数。
宿主对象
定义类或者函数:
工厂方式:每次创建一个对象,直接返回对象。
构造函数方式:使用this。
原型方式:
混合的构造函数/原型方式:构造变量,原型初始化函数。修改对象:
Object.prototype.function();
Object.prototype.var;继承
对象冒充
call(this,var a1,var a2);
apply(this,new Array("",""));