一、JS对象
var obj = {};// 初始化一个JS对象
obj.test = function(options){ //添加方法
//TODO something
}
obj.a = 5;//添加属性
js本来就是动态的,它可以给任何对象在任何时候添加属性和方法
二、JS对象扩展
JS内置对象的原型不能整体覆盖,只能单独地动态地为原型添加属性或方法
//无论arr放到那,Array.prototype.push的上面或下面都可以,push都能覆盖Array原型的原push方法 var arr=[]; //这就是动态 Array.prototype.push=function(){ alert("1"); } arr.push(); //此处提示“1”
三、JS基本数据类型
菜鸟教程:字符串(String)、数字(Number)、布尔(Boolean)、未定义(Undefined)、(函数)function (null-空、array-数组、date-日期、object-对象 等均为对象类型)。
JavaScript标准中规定了9种类型:Undefined 、Null 、Boolean、 String 、Number、 Object 、Reference 、List、 Completion
其中,Reference List Completion三种类型仅供语言解析运行时使用,无法从程序中直接访问。
1. Undefined类型:Undefined类型只有一个值undefined。
2. Null类型:Null类型也只有一个值null。Null类型的语义是“一个空的对象引用”。
3. Boolean类型:Boolean有两种取值true和false。
4. String类型:String类型的的正式解释是一个16位无符号整数类型的序列。
5. Number类型:JavaScript的Number共有18437736874454810627 (就是 264-253 +3)个值。JavaScript的6. Number以双精度浮点类型存储,除了9007199254740990表示NaN,它遵守IEEE 754(见附1)规定,占用64位8字节。
6. Object类型:JavaScript中最为复杂的类型就是Object,它是一系列属性的无序集合。
typeof操作符:对一个变量进行推断变量的类型,可能返回以下字符串:
1. "undefined" 如果这个值,未定义;
2. "boolean" 布尔值;
3. "string" 字符串;
4. "number" 数值;
5. "object" 对象(null,date,array,定义未初始化);
6. "function" 函数
使用方法:typeof 97 或 typeof(97);返回"number"
四。JavaScript高级技术
function sortNumber(a,b){ console.log("sort:"+a+'---'+b); return a - b; } function sortChinese(a,b){ console.log("sort:"+a+'---'+b); return a.localeCompare(b); } var arrayNum = new Array(6); arrayNum[0] = "10"; arrayNum[1] = "5"; arrayNum[2] = "40"; arrayNum[3] = "25"; arrayNum[4] = "1000"; arrayNum[5] = "1"; console.log(arrayNum.sort()); // 英文排序有效 console.log(arrayNum.sort(sortNumber)); // 数字排序有效 console.log(arrayNum.sort(localeCompare)); // 中文排序无效(英文系统下测试无效)
The END .
JS Array 排序
var array=[{time:11111},{time:22222},{time:1484728285732},{time:10000},{time:111}]; array = array.sort(function(a,b){return a.time - b.time;}); console.log(JSON.stringify(array)); //[{"time":111},{"time":10000},{"time":11111},{"time":22222},{"time":1484728285732}]