在JavaScript中,变量在使用之前需要先声明。
声明变量是通过关键字var来实现的。如:
var i; //声明一个变量,变量名为i
var j; //声明一个变量,变量名为j
多个变量的声明可以这样:
var i,j; //同时声明变量名为i,j的两个变量
//同时声明多个变量时,变量名之间需要用逗号(,)隔开
在声明变量的同时也可以对变量进行赋值:
var i = 1; //声明一个变量名为i的变量,i的值为1
var j = 2; //声明一个变量名为j的变量,j的值为2
同时声明多个变量的时候也可以对变量进行赋值:
var i = 1, j = 2, k = 3;
//同时声明3个变量,变量名分别为i、 j、 k,i的值是1,j的值是2,k的值是3
如果在声明变量的同时没有给变量赋值,那么直接使用这个变量则会输出undefined:
var a;
a;
//输出undefined
如果直接调用没有声明过的变量,会报错。
全局变量与局部变量:
在JavaScript中,在函数体内部声明的变量是局部变量,只在函数体内部能使用,在函数体外部不能使用。
在函数体外部声明的变量是全局变量,在本JavaScript代码下可以都可以使用:
var xo = 'alex';
function Func(){
var xo = "seven";
console.log(xo);
}
Func();
//输出seven,因为打印是在Func()体内部的方法,所以它首先是在Func()体内查找变量xo
变量作用域
在函数体内部的作用域是局部作用域,在函数体外部的作用域是全局作用域
var ju = 1; //拥有全局作用域
function Func() {
var jh = 2; //拥有局部作用域
console.log(ju); //输出1
}
Func();
console.log(jh); //报错
在函数体内部声明的变量是局部变量,拥有局部作用域。
在函数体外部声明的变量是全局变量,拥有全局作用域。
局部作用域只在固定的代码片段中能访问到,最常见的是函数体内部,所以局部作用域也叫函数作用域。
没有使用var关键字但直接赋值的变量会被自动声明为拥有全局作用域:
function check() {
var scope = "local";
scopeglobal = "global";
alert(scope);
}
check(); //输出local
alert(scopeglobal); //输出global
alert(scope); //报错
原型链的基本概念:原型链是利用原型对象让一个类型继承另一个类型的属性和方法,然后层层递进,就构成了实例与原型对象的链条。
指针:指针只是指向内存的一个索引,使用不带圆括号的函数名是访问函数指针,不是调用函数。
原型对象:我们创建的每一个函数都有一个原型属性,这个属性是一个指针,指向一个对象,这个对象是包含可以由特定类型的所有示例共享的属性和方法。
数组,函数,和对象的基本使用:
1、命名:函数的命名需要用到function关键字,接着是函数名,必须以字母或者下划线开始,不能有空格和特殊字符($符可以有),函数名后面必须带有括号,括号里面填入参数,参数可以不填,多个参数要用逗号(,)隔开,括号后面跟着大括号,,大括号中是写函数代码的:
function Func(x) {
return x * x;
}
Func(5);
//输出25
//return用来返回函数的结果
//这就是一个简单地JavaScript函数
JavaScript的对象是一种基本数据类型。
对象中有很多值,每个属性都是一个名/值对,对象可以看做是属性的无序集合。
创建对象是通过关键字new来实现的:
var o = {}; //创建一个空对象
var i = new object(); //创建一个空对象,和{}一样
var j = {x: 1, y: 2}; //创建一个有两个成员的对象
//访问对象中的成员
j.x; //输出1
j.y; //输出2
JavaScript的数组是值的有序集合。
每一个值叫做一个元素,每个元素在数组中有一个位置,用数字表示,叫作索引(第一个索引为0)。
创建数组:
var em = []; //创建一个空数组
var en = [2, 3, 4, 5, 6]; //创建一个有5个数值的数组
var ev = [1.1, true, "a"]; //创建一个有3个不同类型的元素的数组
//读取数组中的元素
ev[0]; //输出1.1
//写入新元素
ev[4] = 3.14; //将第4个元素写为3.14
获取数组长度用.length属性:
var i = [1, 2, 3, 4, 5];
i.length; //输出5,表示有5个元素,数组长度为5