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,即使它在函数内执行。

原文地址:https://www.cnblogs.com/yu011/p/13532197.html