1. 构造函数示例:
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
2. 遍历对象:
var obj = {
name: 'pink',
age:18,
sex:'男'
}
for(var k in obj){
console.log(k);//输出属性名
console.log(obj[k]);//输出属性值
}
3. 内置对象:MDN 文档,https://developer.mozila.org/zh-CN/
Math: Math.PI, Math.max(),Math.abs(),
Math.floor() 向下取整,往最小了取值,
Math.ceil() 向上取整,往最大了取值,
Math.round() 四舍五入 .5特殊,往大了取值 ,如Math.round(-1.5)取值为-1
Math.random() 取值区间为 [0,1)返回一个随机的小数
获取两个数之间的随机整数,并包含这2个整数,公式:
Math.floor(Math.random()*(max-min+1))+min
Date:
var date = new Date();
console.log(date.getFullYear());//返回当前日期的年
console.log(date.getMonth() + 1);//返回的月份小一个月,要+1
console.log(date.getDate());//返回的是 几号
console.log(date.getDay());//周一返回1,周六返回6,周日返回的是0
console.log(date.getHours());//时
console.log(date.getMinutes());//分
console.log(date.getSeconds());//秒
console.log(date.valueof());//距离1970.1.1总的毫秒数(时间戳)
console.log(date.getTime());//距离1970.1.1总的毫秒数(时间戳)
var date1 = +new Date();//距离1970.1.1总的毫秒数(时间戳)
console.log(Date.now());//H5新增 获得总的毫秒数
倒计时案例:
function countDown(time){
var nowTime = +new Date();//返回当前时间总的毫秒数
var inputTime = +new Date(time);//返回用户输入时间总的毫秒数
var times = (inputTime - nowTime) / 1000;//times是剩余时间总的秒数
var d = parseInt(times / 60 / 60 / 24);//天
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24);// 时
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60); //分
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60);//秒
s = s < 10 ? '0' + s : s;
}
Array:
var arr = [1,2,3];//字面量方式创建数组
var arr = new Array();//对象方式创建一个空数组
var arr = new Array(3);//创建长度为3的空数组
var arr = new Array(2,3);//创建arr=[2,3]数组
instanceof 可以用来检测是否为数组
console.log(arr instanceof Array);//返回true
console.log(Array.isArray(arr));//返回true,H5新增方法
数组添加新元素:
var arr = [1,2,3];
arr.push(4,'pink');//arr = [1,2,3,4,'pink']
arr.unshift('red','purple');//arr = ['red','purple',1,2,3,4,'pink']
push()在数组末尾添加新的元素,返回新数组长度;
unshift()在数组开头添加新的元素,返回新数组长度;
数组删除元素:
arr.pop();
arr.shift();
pop()删除数组的最后一个元素,一次只能删除一个,并返回删除的那个元素
shift()删除数组的第一个元素,一次只能删除一个,并返回删除的那个元素
arr.reverse();//翻转数组
arr.sort(function(a,b){// 数组排序
return a - b; //升序顺序
//return b - a; 降序顺序
})
返回数组元素索引号方法:
var arr = ['red','blue','green'];
//从前往后,返回第一个满足条件的索引号,若找不到元素,则返回-1
console.log(arr.indexOf('blue'));
//返回元素索引号,从后往前查找
console.log(arr.lastIndexOf);
数组转换为字符串:
var arr = [1,2,3];
console.log(arr.toString());
console.log(arr.join());//1,2,3
console.log(arr.join('-'));//1-2-3
字符串对象:
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串
var str = '改革春风吹满地,春天来了';
console.log(str.indexOf('春'));//从头开始,返回第一个出现位置
console.log(str.indexOf('春',3));//从索引号是3的位置开始往后查找
查找字符串案例:
查找所有o出现的位置以及次数:
var str = "oabcoefoxyozzopp";
var index = str.indexOf('o');
var num = 0 ;
while(index !== -1){
console.log(index);
num++;
index = str.indexOf('o',index + 1);
}
console.log('o出现的次数是:'+num);
根据位置返回字符:
var str = 'andy';
console.log(str.charAt(3));//y
console.log(str.charCodeAt(0));//返回相应索引号的字符ASCII值,目的:判度用户按下了哪个键
console.log(str[0]);//a, H5新增的方法
统计出现最多的字符和次数:
var str = 'oabcoefoxyozzopp';
var o = {};
for(var i = 0; i < str.length; i++){
var chars = str.charAt(i);
if(o[chars]){
o[chars]++;
}else{
o[chars] = 1;
}
}
console.log(o);
var max = 0;
var ch = '';
for(var k in o){
if(o[k] > max){
max = o[k];
ch = k;
}
}
console.log(max);
console.log('最多的字符是:'+ch);
//concat('字符1','字符2'.........) ,字符串连接
console.log(str.concat('red'));
//substr('截取的其实位置',‘截取几个字符’),第一个2是索引号,第二个2是取几个字符
console.log(str.substr(2,2));
//替换字符 replace('被替换的字符',‘替换为的字符’),只会替换第一个字符
var str = 'andy';
console.log(str.replace('a','b'));
有字符串"abcoefoxyozzopp",要求把里面所有o替换为*:
var str = 'abcoefoxyozzopp';
while(str.indexOf('o') !== -1){
str = str.replace('o','*');
}
console.log(str);
字符转换为数组,split('分隔符')
var str = 'red,pink,blue';
console.log(str.split(','));//["red","pink","blue"]
简单类型(值类型)与复杂类型(引用类型)
var timer = null;
console.log(typeof timer);// object (特殊)
值类型:简单数据类型,在存储时变量中存储的是值本身,string,number,boolean,undefined,null
引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),通过new关键字创建的对象(系统对象,自定义对象),如Object,Array,Date等
堆与栈:
栈:由操作系统自动分配释放存放函数的参数值、局部变量的值等,简单数据类型存放到栈里面。
堆:存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收,复杂数据类型存放到堆里面。
简单数据类型,是存放在栈里面,里面直接开辟一个空间存放的是值;
复杂数据类型,首先在栈里面存放地址(十六进制表示),然后这个地址指向堆里面的数据