函数返回值
如果一个函数没有明确的返回值,接收这个函数,结果是undefined
* arguments----->可以获取函数调用的时候,传入的实参的个数
* arguments是一个对象,是一个伪数组
* arguments.length--->是实参的个数
* arguments[索引]---->实参的值
创建对象三种方式
-
1.调用系统的构造函数创建对象
-
var 变量名= new Object(); Object 是系统的构造函数 Array
var obj = new Object(); //对象有特征---属性和行为---方法 //添加属性-----如何添加属性? 对象.名字=值; obj.name = "小苏"; obj.age = 38; obj.sex = "女"; //添加方法----如何添加方法? 对象.名字=函数; obj.eat = function () { console.log("我喜欢吃油炸榴莲凉拌臭豆腐和大蒜"); };
-
2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
第一种 function createObject(name,age) { var obj = new Object();//创建对象 //添加属性 obj.name = name; obj.age = age; //添加方法 obj.sayHi = function () { console.log("阿涅哈斯诶呦,我叫:" + this.name + "我今年:" + this.age); }; return obj; } 第二种 function Person(name,age) { this.name=name; this.age=age; this.sayHi=function () { console.log("我叫:"+this.name+",年龄是:"+this.age); }; }
自定义构造函数 可以判断对象具体属于哪一个类别
-
3.字面量的方式创建对象
var obj = {
name: "上官",
age: "20"
}
console.log(obj);
栈放地址 堆放数据
总结对象
字面量方式的缺陷
一次性对象 值被写死了
访问属性的另一种写法
######一种是 对象点的方式
比如在json中 循环遍历 如果 json.key 相当于添加属性 不能获取值
如果是 json[key]相当于 获取里面的属性名字 里面的值可变
//对象中确实有这个属性对象.属性名字 或者对象[属性名字]
对象没有这个属性遍历 使用 对象[属性名字]
一种是对象[“name”]; []的形式
JSON格式的数据
var json = {
"name": "小明",
"age": "10",
"sex": "男"
};
//遍历对象,是不能通过for循环遍历,无序
//key是一个变量,这个变量中存储的是该对象的所有的属性的名字
for (var key in json) {
console.log(key + "===========" + json[key]);
}
数据类型
//原始数据类型: number,string,boolean,undefined, null,object
//基本类型(简单类型),值类型: number,string,boolean
//复杂类型(引用类型):object
//空类型:undefined,null
//值类型的值在哪一块空间中存储? 栈中存储
//引用类型的值在哪一块空间中存储?对象在堆上存储,地址在栈上存储
//var num=10;//值类型,值在栈上
//var obj={};//复杂类型,对象在堆,地址(引用)在栈
//值类型之间传递,传递的是值
//引用类型之间传递,传递的是地址(引用)
//值类型作为函数的参数,传递的是值
//引用类型作为函数的参数,传递的是地址
引入类型传递的是地址
var obj={
name:"小明"
};
function f2(obj2) {
obj2.name="小红";
}
console.log(obj.name);//
f2(obj);
console.log(obj.name);//
内置对象
* 1.内置对象----js系统自带的对象
* 2.自定义对象---自己定义的构造函数创建的对象
* 3.浏览器对象---BOM的时候讲
* 内置对象:
* Math
* Date
* String
* Array
* Object
Math对象
实例对象 : 通过构造函数创建出来,实例化对象
静态对象: 不需要创建 直接就是一个对象,属性,方法直接通过这个对象名字调用,
leg Math.abs(x);等 静态方法 必须通过大写进行调用 第一个字母大写
Math不是一个函数 是对象
Math.abs(null) 结果是 0
Math.PI 输出的是 3.1415…
Math.ceil() 向上取整
Math.floor() 想下取整
Math.E 常数的底数
Math.fround() 转换成小数
Math.max(10,20)输出一堆数字的最大值
Math.min()输出一堆数字的最小值
Math.random()获取0到1的随机数 不包括1 包括0
Math.sqrt() 开平方
Math.pow(2,3) 8 幂运算