JS中的变量和函数
变量概述
1、变量是用于存储信息的"容器"。
2、变量必须以字母开头;变量也能以 $ 和 _ 符号开头(不推荐);变量名称对大小写敏感(y 和 Y 是不同的变量)。
怎么声明变量并赋值?
var 变量名;
变量名 = 值;
var i = 100;
i = false;
i= "abc";
i = new object();
弱类型语言
JavaScript是一种弱类型语言,没有编译阶段,一个变量可以随意赋值,赋什么类型的值都行。
一条语句,多个变量
1、在一条语句中可以声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可。
var lastname="yu", age=20, job="programmer";
2、声明也可横跨多行
var lastname="yu",
age=20,
job="programmer";
Value = undefined
1、在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是undefined。在执行过以下语句后,变量name的值将是undefined。
2、通俗点说:当一个变量没有手动赋值的时候,系统默认赋值undefined(这是一个具体的值)。
var i;
alert("i = "+i);
alert(undefined);
重新声明变量
如果重新声明 JavaScript 变量,该变量的值不会丢失。
在以下两条语句执行后,变量a的值依然是 "awqer"。
var a = "awqer";
var a;
alert(a);
没有声明变量直接访问
alert(x);
页面不会出现错误,在控制台会出现语法错误:
x is not defined
函数
JavaScript函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function。
第一种:
function functionname(argument1,argument2...)
{
执行代码
}
第二种:
functionname = function(argument1,argument2...){
执行代码
}
1、当调用该函数时,会执行函数内的代码。
2、可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
3、JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
4、function 中的花括号是必需的,即使函数体内只包含一条语句,仍然必须使用花括号将其括起来。
- JS中的函数有重载吗?
JS当中的函数在调用的时候,参数的类型和个数都没有限制,所以不存在重载(弱类型)。 - 函数名不能重名
当函数重名的时候,后声明的函数会将之前声明的同名函数覆盖。
带有返回值的函数
1、有时,我们会希望函数将值返回调用它的地方。通过使用return语句就可以实现。在使用return语句时,函数会停止执行(JS代码还是继续执行),并返回指定的值。
function myFunction()
{
var x=5;
return x;
}
2、仅仅希望退出函数时 ,也可使用 return 语句。
function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}
如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。
全局变量和局部变量
局部变量
1、在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
2、可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
3、局部变量比同名全局变量的优先级高,所以局部变量会隐藏同名的全局变量。
全局变量
1、在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
2、全局变量会一直在浏览器的内存当中,直到页面关闭,比较耗费内存空间。
变量的生存期
1、JavaScript 变量的生命期从它们被声明的时间开始。
2、局部变量会在函数运行以后被删除。
3、全局变量会在页面关闭后被删除。
向未声明的变量分配值
1、如果把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
2、这条语句:name="yu";
将声明一个全局变量name,即使它在函数内执行。