变量的本质是一块有名字的内存空间。变量由变量名和变量值构成。变量名指的是内存空间的别名,通常位于赋值运算符的左边;而变量值指的是内存空间中的数据,通常位于赋值运算符的右边。例如:var balance =250;
其中balance为变量名,是内存空间的别名;250为变量值,为数据。bash
暂且可将声明理解为创造,当声明变量时,使用关键字 var。
第一种:单独声明函数
<script>
var a = 32; //声明一个变量,变量名为a,变量值为32;
var b = 45; //声明一个变量,变量名为b,变量值为45;
</script>
复制代码
第二种:一个var多个声明变量ui
<script>
var a = 32,b = 45,c = 57; //利用一个var来声明多个变量用逗号隔开
var x = 123,
y = 245,
z = 100; //此写法与上面意思同样写法不一样而已
</script>
复制代码
第三种:重复声明spa
<script>
var a = 120;
var a = 356; //这些指令代表使用同一变量名声明两次,形成重复
</script>
复制代码
第四种:遗漏声明code
<script>
var m = 12;
var n = 32;
alert(m) //可弹出m的值,却遗漏了下面n的值
</script>
复制代码
注意细节:
1.在JS中重复声明虽然是容许的,但在开发中,不要这样用;
2.在JS中遗漏声明也是容许,但在实际开发时, 也是要尽可能避免的;
3.在JS中,能够经过alert(),来弹出一个变量的值。ip
特征1:若是仅仅是声明变量,那么变量是有默认值内存
<script>
var a; // 若是你仅仅是声明一个变量,并不是赋值,那么它的默认值为undefined
console.log(a) // 打印出a的值
</script>
复制代码
特征2:使用var 声明的变量能够进行提高,提高就是把加var的变量提早最前面开发
解析:JS代码在执行以前有一个预编译,预编译作了两件事:
(1)把加var的变量提高,提高的仅仅是声明,而没有赋值部分;
(2)把函数提高到了代码段(一个script标签就是一个代码段)的最前面。 当预解析完后,才会执行JS代码;
(3)当函数与变量套用着,加var的变量虽然那个要提高,但因为此时的变量为局部变量,只会提高到函数体的最前面。string
例1.1:<script>
var a; //此时只有声明提高到前面而变量值没有
console.log(a) // 打印出的a的值为undefined
var a = 120; //这一步至关于没操做
</script>
复制代码
例1.2:<script>
var a; //此时只有声明提高到前面而变量值没有
console.log(a) // 打印出的a的值为undefined
var a = 120; //这一步至关于没操做
console.log(a) //打印出的a的值为120
</script>
复制代码
例2:<script>
g() //调用函数
function g(){
console.log("g....") //此时也能够打印出来g...,由于函数整个提高到了前面
} //声明定义变量
</script>
复制代码
例3:<script>
console.log("--------------------") //打印出----------
var a; //这是将局部变量提高到函数体最前面
function f(){
console.log(a) //要打印时会去寻找变量,即为undefined
a = 2;
}
f();
</script>
复制代码
1.局部变量
局部变量指在函数内声明的变量。它只能在函数内部访问,在函数外面是不能被访问;就好像是各个地方的方言同样。it
例子:<script>
function f(){
var name = "wangcai"; //局部变量,由于这个变量放在函数里面
console.log(name)
}
console.log("----"+name) //这里由于name是局部变量,因此只会显示----
// 函数声明完后,你要使用这个函数,那么你必定要调用这个函数
f()
</script>
复制代码
2.全局变量
全局指变量指在函数外声明的变量。它在函数内部和外部均可以访问;就如同标准普通话在任何地区均可以用。
例子:<script>
var age = 100; //全局变量声明定义了age
function f(){
console.log("在函数里面访问的全局变量"+age) //这里为局部变量只有调用函数后才会打印出来
}
console.log(age) //此为全局变量,在函数外声明的
f() // 函数调用,这里会将函数的第二行代码执行出来
</script>
复制代码
函数能够说成是个功能块,当你给它一个输入值时,在这个功能块中经过某种关系或者说映射,就能获得一个输出值。就像豆浆机,将准备的大豆放到机器中,经过榨汁获得一杯豆浆。
方式一:函数声明
用关键字function来声明函数,其中基本格式以下:function f(){ };其中有f为函数名;()是函数的特殊标志;{}叫函数体或者具体的功能
function f(){
console.log("函数声明")
}
复制代码
方式二:函数表达式
函数表达式本质上是一个变量;它指的是将以function声明的函数做为表达式放在赋值的右边,从新定义一个变量。
var g = function f(){
console.log("函数表达式")
}
f();
复制代码
区别:声明函数与函数表达式二者在提高阶段不同;函数声明能够将函数调用写到函数声明以前,而函数表达式则将函数调用提早会出错。
函数声明:
<script>
f();
function f(){
console.log("函数声明提高") //此时是能够打印出"函数声明提高"
}
</script>
函数表达式:
<script>
f();
var g = function f(){
console.log("函数表达式提高") //会报错,f没有定义
}
</script>
复制代码
1.函数在没有写return或者只写了return时,默认返回undefined。
(1) function f(){
//这是至关于默认的return undefined;
}
(2)function f(){
return; //同上,默认的return undefined;
}
复制代码
2.在一个函数中,执行过return语句后,下面的语句将再也不执行。
function f(){
console.log("caomeitai")
return thanks; //当执行过该语句,下面再也不执行
console.log("xiaoyuzhou") //并未执行
}
复制代码
在函数定义与函数调用时,有两个参数:形参与实参。形参即形式参数,表明着在定义函数时,小括号中的参数;实参即实际参数则表明在调用函数时,小括号中的参数。
function add(x,y){ //这里小括号中的x,y为形参
return x+y;
}
console.log(add(2,3)); //在调用了add函数时的2,3为实参
复制代码