日期:2014-05-16  浏览次数:20463 次

JavaScript语言基础(一) 变量定义

最近又重新再看了一遍《javascript从入门到精通》整理一些学习笔记,从另一个侧面,从平时使用中经常遇到的概念和问题来学习一遍javascript


都知道变量定义统一都是var;变量命名也由相应规范:

? ?首先avaScript?是一种区分大小写的语言,因此将一个变量命名为?computer?和将其命名为?Computer是不一样的。

? ?另外,变量名称的长度是任意的,但必须遵循以下规则:?

? ?1.第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符?($)

? ?2.后续的字符可以是字母、数字、下划线或美元符。?

? ?3.变量名称不能是保留字。?


但这里不得不提一下变量作用域的概念。

作用域:编程语言通用概念,可以简单理解为定义的变量有效使用的范围

? 一、js里,如果变量定义在function里,如

<html>
<head>
<title>test</title>
<script type="text/javascript">
function test() {
var param = "hello world!";
alert(param);//页面弹出提示框显示"hello world!"
}
/*
 浏览器控制台会报错 ReferenceError: param is not defined;
 因为param超出了其作用域;即param只在function test内有效,
  	  在外部相当于不存在一样
 * */
alert(param);
</script>
</head>
<body onload="test()">
</body>
</html>

??二、如果在相同作用域中定义了2个名称一样的变量,那第二个变量将覆盖前一个,包括类型的覆盖。

<html>
<head>
<title>test</title>
<script type="text/javascript">
function test() {
var param = "hello world!";
alert(param);//页面弹出提示框显示"hello world!"
var param =100;
alert(param);//因为变量名称重复,因此会覆盖,显示"100"
}
</script>
</head>
<body onload="test()">
</body>
</html>

??此规则同样适用于方法名的定义,例如

<html>
<head>
<title>test</title>
<script type="text/javascript">
function test() {
var param = "hello world!";
alert(param);//页面弹出提示框显示"hello world!"
}
function test() {
var param =100;
alert(param);//方法的覆盖,最终执行的是这个方法,显示"100"
}
</script>
</head>
<body onload="test()">
</body>
</html>

??