JavaScript基础学习

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等

堆与栈:

栈:由操作系统自动分配释放存放函数的参数值、局部变量的值等,简单数据类型存放到栈里面。

堆:存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收,复杂数据类型存放到堆里面。

简单数据类型,是存放在栈里面,里面直接开辟一个空间存放的是值;

复杂数据类型,首先在栈里面存放地址(十六进制表示),然后这个地址指向堆里面的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值