javascript对象
有三种方式创建对象
1.利用字面量创建对象
var obj = {
name : '张三',
age : '18'
sayHello : function(){
console.log("hi");
}
}
调用对象的属性(两种方法):
对象名.属性
对象名['属性名']
2.利用new Object创建对象
var obj = new Object();
obj.name='张三';
obj.sex = '男';
obj.age = 17;
obj.say = funcation(){
alert('你好');
}
3.利用构造函数创建对象
我们为什么需要使用构造函数,就是因为我们前面两种创建对象的方式一次只能创建一个对象。
构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
构造函数首字母名称要大写。构造函数不需要return 就可以返回函数。
//构造函数
function Hreo(name,type,blood){
this.name=name;
this.type=type;
this.attack = funtion(attack){
console.log(“攻击方式”+attack)
}
}
//创建对象
var hreo1 = new Hreo('廉颇','力量型','近战');
var hreo2 = new Hreo('后羿','射手型','远程');
我们利用构造函数创建对象的过程我们也称为对象的实例化。
new关键字的执行过程。
new 构造函数可以在内存中创建了一个空的对象
this就会指向刚才创建的空对象
执行构造函数里面的代码 给这个空对象添加属性和方法
返回这点对象
遍历对象属性
for..in 语句用于对数组或者对象的属性进行循环操作。
for(变量 in 对象){
}
//demo
for(var k in obj){
console.log(k)//得到变量
console.log(obj[j])//得到变量的属性
}
Javascript 内置对象
javascript对象分为3种:自定义对象、内置对象、浏览器对象。
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能,
查阅文档:MDN
猜数字游戏
//程序随机生成一个1~10之间的数字,并让用户输入一个数字,
//1.如果大于该数字,就提示,数字大了,继续猜;
//2.如果小于该数字,就提示数字小了,继续猜;
//3.如果等于该数字,就提示猜对了,结束程序。
var num;
getNum();
function getNum(){
num = prompt("请输入一个数字");
}
function myFuncation(max,min){
return Math.floor(Math.random()*(max-min+1))+min;
}
var flagNum = myFuncation(10,1);
var flag;
do{
if(num > flagNum){
alert("数字大了,继续猜");
flag = false;
getNum();
}else if(num < flagNum){
alert("数字小了,继续猜");
flag = false;
getNum();
}else if(num === flagNum){
alert("猜对了,游戏结束");
flag = true;
getNum();
}else{
alert("程序异常,游戏结束");
flag = true;
}
}while (!flag)
内置数组对象的方法:
push:在数据末尾添加一个或者多个数组元素。
anshift():在数据开头添加一个或者多个数组元素。
pop:可以删除数组的最后一个元素。
shift:可以删除数组的第一个元素。
reverse() :反转数组。
sort():对数组进行排序。
indexof():返回数组查找给定元素的第一个索引。
lastIndexOf():返回数组的最后一个索引。
数组转换字符串:
toString():把数组转换成字符串,逗号分割每一项。
join(’分割符‘):方法用于把数组的所有元素转换为一个字符串。
字符串对象
基本包装类型:就是把简单数据类型包装成为了 复杂数据类型。
字符串的不可变性:
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了你,内存中新开辟了一个内存空间。
字符串的操作方法:
concat():用于连接两个或多个字符串。拼接字符串,等效于+
substr(start,length):从start位置开始,length取的个数
slice(start,end):
substring(star,end):从start开始,截取到end结束,end取不到,不接受负值。
replace:('被替换的字符','替换为的字符')
split():字符转换为数组
堆、栈
1.栈:由操作系统自动分配释放存放函数的参数值,局部变量的值等。
堆:存储复杂的类型(对象),一般由程序员分配,若程序员不释放,由垃圾回收机制回收。