日期:2014-05-16 浏览次数:20463 次
最近又重新再看了一遍《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>
??