javaScript概述
一般将javaScript简称为js,通常我们在使用js时一般是配合html一起来使用
js作用:是对事件的反应,一般我们使用html和css写出的页面是静态的,如果我们想使我们的网页有一些动态效果,这时我们就要结合js一起使用.
一 js的引入
放置位置:1.行内js代码 将中的js代码
3.放置在后的js代码 备注:一般我们将js代码放置在代码的最后面,因为这样可以使我们的代码看起来更加清晰,而且不会影响我们全面的代码.
3.外部引入js代码: 1.创建一个新的js文件夹,在里面创建我们需要写的js文件
2.在主html代码中通过 <script src(属性):(相对与绝对路径下的js文件)>
3.注意在内部js代码块中
写的任何代码将无效!!!(在js代码中写的代码是不会在网页中显示的需要进入开发者模式在控制台中才可以看到)
二 js中的变量
js中的变量类型分六种:
一 基本类型:
1. String(字符型)
2. Number(数值型):数值型包括整数与小数
3. Boolean(布尔型):true与false
4. Null:空;
5. Undefined:未定义
6. Nan:不属于任何一个类型
二 引用类型:
1. Object:对象类型(注意在js中一切皆对象)
2. 数组类
3. Function:函数型(注意函数型也为引用类型,但是为了区分通常会返回这个函数类型)
备注:js是弱类型语言,所有我们在声明时是不用定义变量的类型的,在赋值时我们写的是什么,就是什么类型,例如:var a = “你好js”; 这时的变量a就为String类型,如果在写一个var a = 10;这时的a就为Number类型,而且下一次的重新初始化会将上一次变量的值覆盖;
三 变量和函数声明的提升:
1.声明变量的时候可以写成这样:
a = 5;
var a;
这里我们先对a变量进行了初始化,然后才进行了声明,在js中会自动将变量的声明提升到最顶部,所以上面的代码在js中其实会写成这样:
var a;
a = 5;
注意!如果我们写成这样: console.log(a);
var a = 5;
这样控制台会输出a这个变量未定义,因为只有声明会自动提升,而初始化不会提升,所以这里会提示这个变量未定义;
三 js中的运算符
这里只写一个==与===的区别,==是比较两个变量中的值(也就是内容是否一致)比如说var a = 5; var b = '5';
console.log(a==b); 这里返回true
而===是比较值与类型是否都相等上面的代码如果写成这样:console.log(a===b);这里返回false:
四 js中的数组
一.数组声明的两种方式:
1.var a=[值1..............值n];
2.var arr=new Array(值1........值n);
注意:js中的数组是可变的,而且是可以放任意类型的,类型也可以不统一
二.遍历数组的三种方式:
1.普通for
2.for.....in
3.foeEach
三种遍历的区别:for遍历所有的元素,除属性外
for...in不遍历undefined
for......Each不遍历属性和undefined;
可以使用js提供的Arrays对象来操作数组,其中push();方法可以将新添加的元素放入数组最后,注意这种添加方式不会产生新的数组;而indexof();会返回此元素在数组中的索引;
五 js中的函数
在js中函数也是对象,但是为了和Object类型区分一般会直接返回这个函数 ,注意在js中函数没有重载,如果函数名一样会覆盖上一次的函数,js中函数的声明也和变量一样会自动提升,如果函数有返回值就可以用一个引用来接收这个函数,从而将这个函数写成表达式的形式,在传参的时候js不像java如果方法中有形参,在调用这个方法的时候必须传入实参,而在js中我们可以传一个,可以传多个,也可以不传,因为是弱类型语言.如果有返回值不接收会提示undefined
js中的作用域只在函数中体现例如:
function display(box){
var a = 5; //这时的a为局部变量 因为用var修饰的原因
b = 5
}
console.log(b); // 此时b=5 因为此时不用var 修饰的b为全局变量;
六 js中闭包
闭包的意思就是:如果我们在一个函数中声明一个变量,当这个函数执行完毕,这个变量就会被释放掉不会被保存,如果想继续使用这个变量,就需要用到闭包,闭包形成的条件:
1.外部函数嵌套内部函数
2.内部函数使用外部函数环境
3.外部函数返回内部函数
作用:1.可以读取函数内部的变量
2.避免了变量名冲突问题
七 js中的对象
json对象是一组有k和value组成的对象,其中k必须是字符串类型,而value可以是任意类型,也可以为多个
创建json对象的几种方式:
1. 字面量创建:var 对象名={键1:值1};
2. var 对象名= new Object();
3. 通过Object对象的create 方法创建:
var 对象名 = Object.create(null);
var obj = Object.create(null);
八 js中对象的序列化和反序列化
JSON.stringify(object) //将json对象转化为字符串
JSON.parse(jsonStr)//将json字符串转化为对象
九 js中的this
谁调用指向谁