1.对象:
js中的对象:复合数据,把基本数据设计为一个整体的数据容器
主要用于 用代码来描述现实世界中的业务数据的
创建对象
1.直接创建
var obj = {};
console.log(obj);
2.工厂模式创建对象
var obj1 = new Object();
console.log(obj1);
对象的方法:
1.取值,对象的属性
var project = new Object({
name: '张三',
age: 18,
})
// 语法糖: 点语法
console.log(project.name);
// 中括号取对象的属性 ['属性名']
console.log(project['age']);
2.新增(对象.属性名 没有属性新增) / 修改对象的属性(对象.属性名 有属性就是修改)
3.删除对象的属性 delete
函数:
给代码块取个名字 以后每次调用函数时 这个代码块就从头到尾重复运行,相互独立 ,不调用就不会运行
1.定义:es5写法
function fm() { }
var fn = function () { }
2.调用函数 函数名()
fm()
3.调用时传入少了
/解决方案:设定默认值
function fn (a=0,b=0) {
// //var a,b;
// // a=10,b=20
// // if(a==undefined){a=0};
// // if(b==undefined){b=0};
// // a=a||0;
// // b=b||0;
// console.log(a,b)
// console.log(a*b)
// }
// fn(10)
4.调用时传入多了
多传入的数据会在函数内部保存起来,但是不会使用,对于逻辑没有影响,会影响性能
5.函数的返回值 函数在没有返回值return;函数值为undefined; 有return ,函数值为return后面的值
函数 return 后面的代码不会执行
与函数有关的一些官方提供的关键字:
function:声明函数
fn.Length:函数的形参数的个数
arguments:实参数组
return:返回值; 函数内部可以不写 默认函数运行完毕后产生undefiend 写后面可以跟一个表达式(结果) 也可以不跟(undefiend)
this:它代表了代码运行的时候,这个单词对应的环境 是哪个对象运行的
eg:
函数访问到它外面的变量 这种操作叫函数的副作用
函数访问到它内部的变量 这种操作叫函数的正常操作
new:通过函数(构造函数) 创建对象
new:1.创建一个对象 空对象
2.用这个创建的空对象去调用函数
3.整个new表达式会得到一个对象
如果函数返回值是一个引用数据,new得到的对象就是这个返回值
如果函数返回值是一个基本数据,new得到的对象就是那个构造函数中的this对象
eg: