- js代码要写在body代码的下面===>因为代码从上向下执行 若body页面里面的代码在下面,js代码在上面
在执行的时候js中的代码会用到body中的代码,就会报错 - 若将js中的代码放到 window.οnlοad=function () { } 页面加载事件onload
就是最后执行这个方法里面的代码 - 只要页面加载完毕,这个事件就会触发-----页面中所有的内容,标签,属性,文本,包括外部引入js文件
// 函 数
//通过函数
//求两个数字的和
function consoleSum() {//函数定义
var num1 = 100;
var num2 = 200;
var sum = num1 + num2;
console.log(sum);
}
//调用
consoleSum();
//函数返回值
function getsum(x,y){
var sum = x + y;
return sum;
}
//getsum(10,20) 函数调用
var result = getsum(10,20);//函数返回值定义变量接受
console.log(result);
//若函数中没有return或return后面没有任何内容 调用的时候接受了 结果就是undefined
//命名函数
function f1(){
console.log(aa);
}
f1() //函数调用 如果一个函数能够调用 :函数代码() f1代表函数代码
//匿名函数
function (){
}
//函数表达式 : 把一个函数给一个变量
//例
var ff = function (){
};
//如果是函数表达式,那么此时前面变量中存储的就是一个函数,就可以加小括号调用
//注意:函数表达式后面要加分号; var num = 10 ;
var f2 = function (){ //匿名函数不能被直接调用
console.log(xx);
};
f2();//函数调用 如果一个函数能够调用 :函数代码() f2存的是函数代码
函 数 的 调 用
//普通函数
function f1() {
console.log(“文能”);
}
f1();
//构造函数---通过new 来调用,创建对象
function F1() {
console.log("我是构造函数,我骄傲");
}
var f=new F1(); 这句话就代表直接输出"我是构造函数,我骄傲" 就是执行函数 档创建对象f的时候这个构造函数F1就被调用
//对象的方法
function Person() {
this.play=function () {
console.log("玩代码");
};
}
var per=new Person();
per.play(); 对象.函数 --》调用对象里边的函数
// 对 象
//对象:特指的某个事物,具有属性和方法(一组无序的属性的集合)
//特征---->属性
//行为---->方法
点语法 : 对象.名字=值 对象.名字=函数 没有什么点,就有了
创建对象三种方式
1.调用系统的构造函数创建对象
var 变量名=new Object();Object系统构造函数
2.自定义构造函数创建对象(结合第一种和需求工厂模式创建对象)
函数与构造函数区别:名字的首字母是否大写 函数主要用于调用 构造函数主要用于创建对象 用法一样 区别不大
3.字面量的方式创建对象
1.3方式确定不了属于什么类型就是用不了instanceof js高级源代码3
第一种方法创建对象
var obj=new Object();
对象有属性和方法
添加属性和方法 对象名点。就有了
添加属性 对象.名字=值
obj.name="小苏";
obj.age=12;
添加方法 对象.名字=函数
obj.eat=function (){ 没必要给函数名字 因为eat里面相当于有这个函数
console.log(自行车);
};//匿名函数赋值加分号
obj.play=function (){
console.log(zxc);
};
console.log(obj.name);获取
方法的调用
obj.eat(); eat里面存一个函数加括号调用
第二种方法创建对象
自定义构造函数创建对象 先定义一个构造函数在创建对象
1.function Person(){
this.name=“小名”;
this.age=12;
this.sayhi = function () {
console.log(“我叫:”+this.name);
}
}
var obj = new Person();创建对象也叫实例化对象
console.log(obj.name);
obj.sayhi();
2.function Person(name,age) {
this.name=name;
this.age=age;
this.sayHi=function () {
console.log("您好");
};
}
//创建对象---->实例化一个对象,的同时对属性进行初始化(赋值的意思)
var per=new Person("小红",20);
1.开辟空间存储对象
2.把this设置为当前的对象
3.设置属性和方法的值
4.把this对象返回
工厂模式
function createObject(name,age) {
var obj=new Object();
obj.name=name;
obj.age=age;
obj.sayHi=function () {
console.log(“您好”);
};
return obj;
}
var per2=createObject(“小明”,20);
* 共同点:都是函数,都可以创建对象,都可以传入参数
*
* 工厂模式:
* 函数名是小写
* 有new,
* 有返回值
* new之后的对象是当前的对象
* 直接调用函数就可以创建对象
*
* 自定义构造函数:
* 函数名是大写(首字母)
* 没有new
* 没有返回值
* this是当前的对象
* 通过new的方式来创建对象 js高级视频4
一个函数创建对个对象
function Person(){ 构造函数
this.name=name;
this.age=age;
this.sayhi = function () {
console.log(“我叫:”+this.name);
}
}
var obj = new Person(“小名”,10); 构造函数–>创建对象
console.log(obj.name);
obj.sayhi();
var obj2 = new Person("小白",20);
console.log(obj2.name);
obj2.sayhi();
console.log(obj instanceof Person); true 判断是否是Person类型 前面的是对象后面的是构造函数名字
console.log(obj2 instanceof Person); true
对象通过构造函数创建
第二种方法创建对象
字面量的方式创建对象
var num = 10; 字面量方式为变量赋值
var arr = []; 字面量方式创建数组
var obj={};
obj.name="小苏";
obj.age=12;
obj.play=function (){
console.log(zxc);
};
obj.play();
优化后的写法 访数组
var arr = [10,20,30];
var obj2={
name:"小苏" ,
age:12,
play:function (){
console.log(zxc);
}
};
obj2. play();
json对象与javascript对象字面量区别: 上面和下面
1.json没有声明变量(json中没有变量的概念)
2.没有末尾的分号(因为这不是javascript语句,所有不需要分号)
3.json对象的属性必须加双引号,js中可加可不加
JSON格式数据的数据:一般都是成对的,是键值对
json也是一个对象,数据都是成对的,一般json的数据无论是值还是键都要用双引号
var json={
"name":"小苏" ,
"age":"12",
"sex":"男"
};
for (var key in json) {
console.log(key + "===========" + json[key]);
} key不是关键字 是自己定义的
输出的结果是 name===========小明
age===========10
sex===========男
第五天13源代码
系统对象 是系统构造函数还是系统对象对象Object
var obj={} obj就是一个对象
Math
Math是一个对象 不是一个方法
Math.PI math的属性 就是π
Math.Max(12,10,20) math的方法 取最大值
Date
是一个函数,构造函数,对象:用它必须创建实例对像
操作时间 需创建Date实例对像
// var dt=new Date();
// var dt=+new Date();//一种特殊的写法,只适用于这个Date的对象
// console.log(dt);输出当前时间
// dt.getFullYear();//年 getFullYear相当于Date函数里面的方法
// dt.getMonth();//月---从0开始
// dt.getDate();//日
// dt.getHours();//小时
// dt.getMinutes();//分钟
以上创建对象得到的都是时间类型
创建对象之外的 得到的结果是数字类型
var dt=Date.now();
console.log(dt); 得到当前时间
--------------------
//数组可以存储任何类型的数据
foreach 遍历
猜测:数组名.数组名( 函数){}
var arr=[
function () {
console.log(“十一假期快乐”);
},
function () {
console.log("十一假期安全");
},
function () {
console.log("十一假期如意");
}
];
回调函数:函数作为参数使用
arr.forEach(function (ele) {
ele(); ele代表数组里边的每个元素
});
foreach遍历数组