一、类型转化
1,自动类型转化 (+)
2,强制类型转化
String()
Number()
Boolean()
parseInt()
parseFloat()
二、函数
1,获得函数
2,函数的参数
3,全局作用域
4,作用域链
5,函数执行上下文,函数的执行环境
1,函数是一些可执行性代码的集合,其实函数是不包含函数名的,函数名是用来找到函数体的
2,我们的javascript是完全的面向对象,其实我们设置的每个变量,函数都是某个对象的属性,这个全局对象就是window对象,在浏览器解析javascript代码的时候会生成一个最大的全局对象,这个最大的全局对象就是window对象,例如alert方法就是window对象的方法
3,javascript中的作用域是由最底级的作用域一直向window作用域查找的过程
4,函数的参数
函数的参数在定义时和调用时的个数可以不一致,因为javascript处理参数的形式不是完全按照形式参数的方式处理,而是在调用函数的时候,形成了一个专门处理函数参数的对象,arguments对象,我们可以在函数内部通过使用这个对象获得函数真实的参数
5,函数的全局作用域 和 作用域链
首先,javascript是基于对象,是因为javascript没有类的概念,比如变量 , 函数,数组,都是某个对象的属性,这个最大的全局对象就是window对象
Alert();
Js中的作用域链就是从最底级的作用域向window作用域查找的一个过程
6,函数执行上下文,函数执行环境,谁调用的这个函数,例如alert方法就是window对象调用的,所以alert函数的执行上下文就是window对象
三、对象
1,获得对象(3种方法)
2,原型(prototype)
3,原型链
基于对象的语言,没有类的概念
Javascript中的对象就是一系列属性的集合
1,new Object()
2,定义对象的构造器,构造函数获得对象,其实构造器就是一个普通函数,通过new 函数名()调用这个函数的时候形成一个对象,这个函数就成为构造器或构造函数
3,通过json快捷语法获得{}
在javascript中对象的产生不适通过类的实例化来的,而是通过对象之间的复制得来的,最先的对象就是Object,但是我们通过构造器获得的对象不是由构造器这个对象获得的,
function f1(){
}
f1.name='admin';
var o1 = new f1();
alert(o1.name);
他是由构造器的原型复制来的,也就是构造器的prototype属性获得的
构造器的原型也是对象,他是怎么来的?他是从Object.prototype复制来的,是所有构造器原型的基础,他就是最定级的了
当我们查找一个对象的属性时,按照原型链依次查找,先判断当前对象是否有某个属性,再去判断这个对象的构造器是否有某个属性,最后再去判断Object对象的原型中是否有某个属性
function f1(){
//this.name = 'admin';
}
//f1.prototype.name='user';
Object.prototype.name = 'xiaohua';
var o1 = new f1();
alert(o1.name);
四、事件驱动
1,直接在元素上绑定事件
2,html 与 javascript 分离时
3,监听器
1,<input type="button" value="click" onclick="func1()">
2,document.getElementById('click2').onclick=function(){
alert('admin');
}
3,为同一个元素的同一个事件绑定多个操作,
document.getElementById('click2').addEventListener('click',func2,false);